top,free,cat?/proc/meminfo,cat?/proc/cpuinfo。
成都創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、成都全網(wǎng)營(yíng)銷、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)、成都手機(jī)網(wǎng)站制作、微商城、網(wǎng)站托管及企業(yè)網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為格柵板行業(yè)客戶提供了網(wǎng)站設(shè)計(jì)服務(wù)。
[root@centerlisdb?proc]#?dmidecode?|grep?-A16?"Memory?Device"?|?more?[object?Object]。
查看內(nèi)存使用情況:cat?/proc/meminfo,查看CPU使用情況:cat /proc/cpuinfo。
在系統(tǒng)維護(hù)的過程中,隨時(shí)可能有需要查看 CPU 使用率,并根據(jù)相應(yīng)信息分析系統(tǒng)狀況的需要。在 CentOS 中,可以通過 top 命令來查看 CPU 使用狀況。
運(yùn)行 top 命令后,CPU 使用狀態(tài)會(huì)以全屏的方式顯示,并且會(huì)處在對(duì)話的模式 -- 用基于 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運(yùn)行中敲 q 鍵一次)。
top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。
可以直接使用top命令后,查看%MEM的內(nèi)容??梢赃x擇按進(jìn)程查看或者按用戶查看,如想查看oracle用戶的進(jìn)程內(nèi)存使用情況的話可以使用如下的命令:$ top -u oracle。
擴(kuò)展資料:
一、查看內(nèi)存占用:
1、free
# free -m。
以MB為單位顯示內(nèi)存使用情況。
# free -h。
以GB為單位顯示內(nèi)存使用情況。
# free -t。
以總和的形式查詢內(nèi)存的使用信息。
# free -s 5。
周期性的查詢內(nèi)存使用信息。
每5秒執(zhí)行一次命令。
二、查看CPU使用情況:
1、top。
top后鍵入P看一下誰(shuí)占用最大。
# top -d 5。
周期性的查詢CPU使用信息。
每5秒刷新一次。
2、ps auxw(查看本機(jī)的進(jìn)程所占cpu和mem的百分比情況)。
使用"ps auxw" 可以查看到本機(jī)的進(jìn)程所占cpu和mem的百分比情況。
# ps auxw | head -1
%CPU 進(jìn)程的cpu占用率。
%MEM 進(jìn)程的內(nèi)存占用率。
3、查看本機(jī)所有進(jìn)程的CPU占比之和。
# cat cpu_per.sh
三、查看cpu信息(信息記錄在/proc/cpuinfo中)
# 總核數(shù) = 物理CPU個(gè)數(shù) X 每顆物理CPU的核數(shù)。
# 總邏輯CPU數(shù) = 物理CPU個(gè)數(shù) X 每顆物理CPU的核數(shù) X 超線程數(shù)。
內(nèi)存是Linux內(nèi)核所管理的最重要的資源之一。內(nèi)存管理系統(tǒng)是操作系統(tǒng)中最為重要的部分,因?yàn)橄到y(tǒng)的物理內(nèi)存總是少于系統(tǒng)所需要的內(nèi)存數(shù)量。虛擬內(nèi)存就是為了克服這個(gè)矛盾而采用的策略。系統(tǒng)的虛擬內(nèi)存通過在各個(gè)進(jìn)程之間共享內(nèi)存而使系統(tǒng)看起來有多于實(shí)際內(nèi)存的內(nèi)存容量。Linux支持虛擬內(nèi)存, 就是使用磁盤作為RAM的擴(kuò)展,使可用內(nèi)存相應(yīng)地有效擴(kuò)大。核心把當(dāng)前不用的內(nèi)存塊存到硬盤,騰出內(nèi)存給其他目的。當(dāng)原來的內(nèi)容又要使用時(shí),再讀回內(nèi)存。以下就是我為大家整理到的詳細(xì)LINUX系統(tǒng)內(nèi)存管理的知識(shí),歡迎大家閱讀!!!
LINUX系統(tǒng)教程:內(nèi)存管理的知識(shí)詳解
一、內(nèi)存使用情況監(jiān)測(cè)
(1)實(shí)時(shí)監(jiān)控內(nèi)存使用情況
在命令行使用“Free”命令可以監(jiān)控內(nèi)存使用情況
代碼如下:
#free
total used free shared buffers cached
Mem: 256024 192284 63740 0 10676 101004
-/+ buffers/cache: 80604 175420
Swap: 522072 0 522072
上面給出了一個(gè)256兆的RAM和512兆交換空間的系統(tǒng)情況。第三行輸出(Mem:)顯示物理內(nèi)存。total列不顯示核心使用的物理內(nèi)存(通常大約1MB)。used列顯示被使用的內(nèi)存總額(第二行不計(jì)緩沖)。 free列顯示全部沒使用的內(nèi)存。Shared列顯示多個(gè)進(jìn)程共享的內(nèi)存總額。Buffers列顯示磁盤緩存的當(dāng)前大小。第五行(Swap:)對(duì)對(duì)換空間,顯示的信息類似上面。如果這行為全0,那么沒使用對(duì)換空間。在缺省的狀態(tài)下,free命令以千字節(jié)(也就是1024字節(jié)為單位)來顯示內(nèi)存使用情況??梢允褂谩猦參數(shù)以字節(jié)為單位顯示內(nèi)存使用情況,或者可以使用—m參數(shù)以兆字節(jié)為單位顯示內(nèi)存使用情況。還可以通過—s參數(shù)使用命令來不間斷地監(jiān)視內(nèi)存使用情況:
#free –b –s2
這個(gè)命令將會(huì)在終端窗口中連續(xù)不斷地報(bào)告內(nèi)存的使用情況,每2秒鐘更新一次。
(2)組合watch與 free命令用來實(shí)時(shí)監(jiān)控內(nèi)存使用情況:
代碼如下:
#watch -n 2 -d free
Every 2.0s: free Fri Jul 6 06:06:12 2007
total used free shared buffers cached
Mem: 233356 218616 14740 0 5560 64784
-/+ buffers/cache: 148272 85084
Swap: 622584 6656 615928
watch命令會(huì)每?jī)擅雸?zhí)行 free一次,執(zhí)行前會(huì)清除屏幕,在同樣位置顯示數(shù)據(jù)。因?yàn)?watch命令不會(huì)卷動(dòng)屏幕,所以適合出長(zhǎng)時(shí)間的監(jiān)測(cè)內(nèi)存使用率??梢允褂?-n選項(xiàng),控制執(zhí)行的頻率;也可以利用 -d選項(xiàng),讓命令將每次不同的地方顯示出來。Watch命令會(huì)一直執(zhí)行,直到您按下 [Ctrl]-[C] 為止。
二、虛擬內(nèi)存的概念
(1)Linux虛擬內(nèi)存實(shí)現(xiàn)機(jī)制
Linux虛擬內(nèi)存的實(shí)現(xiàn)需要六種機(jī)制的支持:地址映射機(jī)制、內(nèi)存分配回收機(jī)制、緩存和刷新機(jī)制、請(qǐng)求頁(yè)機(jī)制、交換機(jī)制、內(nèi)存共享機(jī)制。
首先內(nèi)存管理程序通過映射機(jī)制把用戶程序的邏輯地址映射到物理地址,在用戶程序運(yùn)行時(shí)如果發(fā)現(xiàn)程序中要用的虛地址沒有對(duì)應(yīng)的物理內(nèi)存時(shí),就發(fā)出了請(qǐng)求頁(yè)要求;如果有空閑的內(nèi)存可供分配,就請(qǐng)求分配內(nèi)存(于是用到了內(nèi)存的分配和回收),并把正在使用的物理頁(yè)記錄在緩存中(使用了緩存機(jī)制)。 如果沒有足夠的內(nèi)存可供分配,那么就調(diào)用交換機(jī)制,騰出一部分內(nèi)存。另外在地址映射中要通過TLB(翻譯后援存儲(chǔ)器)來尋找物理頁(yè);交換機(jī)制中也要用到交換緩存,并且把物理頁(yè)內(nèi)容交換到交換文件中后也要修改頁(yè)表來映射文件地址。
(2)虛擬內(nèi)存容量設(shè)定
也許有人告訴你,應(yīng)該分配2倍于物理內(nèi)存的虛擬內(nèi)存,但這是個(gè)不固定的規(guī)律。如果你的物理保存比較小,可以這樣設(shè)定。如果你有1G物理內(nèi)存或更多的話,可以縮小一下虛擬內(nèi)存。Linux會(huì)把大量的內(nèi)存用做Cache的,但在資源緊張時(shí)回收回.。你只要看到swap為0或者很小就可以放心了,因?yàn)閮?nèi)存放著不用才是最大的浪費(fèi)。
三、使甩vmstat命令監(jiān)視虛擬內(nèi)存使用情況
vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計(jì))的縮寫,可對(duì)操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU活動(dòng)進(jìn)行監(jiān)視。它是對(duì)系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),不足之處是無(wú)法對(duì)某個(gè)進(jìn)程進(jìn)行深入分析。通常使用vmstat 5 5(表示在5秒時(shí)間內(nèi)進(jìn)行5次采樣)命令測(cè)試。將得到一個(gè)數(shù)據(jù)匯總它可以反映真正的系統(tǒng)情況。
代碼如下:
#vmstat 5 5
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 62792 3460 9116 88092 6 30 189 89 1061 569 17 28 54 2
0 0 62792 3400 9124 88092 0 0 0 14 884 434 4 14 81 0
0 0 62792 3400 9132 88092 0 0 0 14 877 424 4 15 81 0
1 0 62792 3400 9140 88092 0 0 0 14 868 418 6 20 74 0
1 0 62792 3400 9148 88092 0 0 0 15 847 400 9 25 67 0
vmstat命令輸出分成六個(gè)部分:
(1)進(jìn)程procs:
r:在運(yùn)行隊(duì)列中等待的進(jìn)程數(shù) 。
b:在等待io的進(jìn)程數(shù) 。
(2)內(nèi)存memoy:
swpd:現(xiàn)時(shí)可用的交換內(nèi)存(單位KB)。
free:空閑的內(nèi)存(單位KB)。
buff: 緩沖去中的內(nèi)存數(shù)(單位:KB)。
cache:被用來做為高速緩存的內(nèi)存數(shù)(單位:KB)。
(3) swap交換頁(yè)面
si: 從磁盤交換到內(nèi)存的交換頁(yè)數(shù)量,單位:KB/秒。
so: 從內(nèi)存交換到磁盤的交換頁(yè)數(shù)量,單位:KB/秒。
(4) io塊設(shè)備:
bi: 發(fā)送到塊設(shè)備的塊數(shù),單位:塊/秒。
bo: 從塊設(shè)備接收到的塊數(shù),單位:塊/秒。
(5)system系統(tǒng):
in: 每秒的中斷數(shù),包括時(shí)鐘中斷。
cs: 每秒的環(huán)境(上下文)切換次數(shù)。
(6)cpu中央處理器:
cs:用戶進(jìn)程使用的時(shí)間 。以百分比表示。
sy:系統(tǒng)進(jìn)程使用的時(shí)間。 以百分比表示。
id:中央處理器的空閑時(shí)間 。以百分比表示。
如果 r經(jīng)常大于 4 ,且id經(jīng)常小于40,表示中央處理器的負(fù)荷很重。 如果bi,bo 長(zhǎng)期不等于0,表示物理內(nèi)存容量太小。
四、Linux 服務(wù)器的內(nèi)存泄露和回收內(nèi)存的方法
1、內(nèi)存泄漏的定義:
一般我們常說的內(nèi)存泄漏是指堆內(nèi)存的泄漏。堆內(nèi)存是指程序從堆中分配的,大小任意的(內(nèi)存塊的大小可以在程序運(yùn)行期決定),使用完后必須顯示釋放的內(nèi)存。應(yīng)用程序一般使用malloc,realloc,new等函數(shù)從堆中分配到一塊內(nèi)存,使用完后,程序必須負(fù)責(zé)相應(yīng)的調(diào)用free或釋放該內(nèi)存塊,否則,這塊內(nèi)存就不能被再次使用,我們就說這塊內(nèi)存泄漏了。
2、內(nèi)存泄露的危害
從用戶使用程序的角度來看,內(nèi)存泄漏本身不會(huì)產(chǎn)生什么危害,作為一般的用戶,根本感覺不到內(nèi)存泄漏的存在。真正有危害的`是內(nèi)存泄漏的堆積,這會(huì)最終消耗盡系統(tǒng)所有的內(nèi)存。從這個(gè)角度來說,一次性內(nèi)存泄漏并沒有什么危害,因?yàn)樗粫?huì)堆積,而隱式內(nèi)存泄漏危害性則非常大,因?yàn)檩^之于常發(fā)性和偶發(fā)性內(nèi)存泄漏它更難被檢測(cè)到。存在內(nèi)存泄漏問題的程序除了會(huì)占用更多的內(nèi)存外,還會(huì)使程序的性能急劇下降。對(duì)于服務(wù)器而言,如果出現(xiàn)這種情況,即使系統(tǒng)不崩潰,也會(huì)嚴(yán)重影響使用。
3、內(nèi)存泄露的檢測(cè)和回收
對(duì)于內(nèi)存溢出之類的麻煩可能大家在編寫指針比較多的復(fù)雜的程序的時(shí)候就會(huì)遇到。在 Linux 或者 unix 下,C、C++語(yǔ)言是最使用工具。但是我們的 C++ 程序缺乏相應(yīng)的手段來檢測(cè)內(nèi)存信息,而只能使用 top 指令觀察進(jìn)程的動(dòng)態(tài)內(nèi)存總額。而且程序退出時(shí),我們無(wú)法獲知任何內(nèi)存泄漏信息。
使用kill命令
使用Linux命令回收內(nèi)存,我們可以使用Ps、Kill兩個(gè)命令檢測(cè)內(nèi)存使用情況和進(jìn)行回收。在使用超級(jí)用戶權(quán)限時(shí)使用命令“Ps”,它會(huì)列出所有正在運(yùn)行的程序名稱,和對(duì)應(yīng)的進(jìn)程號(hào)(PID)。Kill命令的工作原理是:向Linux操作系統(tǒng)的內(nèi)核送出一個(gè)系統(tǒng)操作信號(hào)和程序的進(jìn)程號(hào)(PID)。
應(yīng)用例子:
為了高效率回收內(nèi)存可以使用命令ps 參數(shù)v:
代碼如下:
[root@www ~]# ps v
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
2542 tty1 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty1
2543 tty2 Ss+ 0:00 0 8 1631 428 0.1 /sbin/mingetty tty2
2547 tty3 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty3
2548 tty4 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty4
2574 tty5 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty5
2587 tty6 Ss+ 0:00 0 8 1627 424 0.1 /sbin/mingetty tty6
2657 tty7 Ss+ 1:18 12 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a
2670 pts/2 Ss 0:01 2 682 6213 1496 0.6 -bash
3008 pts/4 Ss 0:00 2 682 6221 1472 0.6 /bin/bash
3029 pts/4 S+ 0:00 2 32 1783 548 0.2 ping 192.168.1.12
3030 pts/2 R+ 0:00 2 73 5134 768 0.3 ps v
然后如果想回收Ping命令的內(nèi)存的話,使用命令:
代碼如下:
# Kill -9 3029
使用工具軟件
Memprof是一個(gè)非常具有吸引力且非常易于使用的軟件,它由Red Hat的Owen Talyor創(chuàng)立。這個(gè)工具是用于GNOME前端的Boehm-Demers-Weiser垃圾回收器。這個(gè)工具直接就可以執(zhí)行,并且其工作起來無(wú)需對(duì)源代碼進(jìn)行任何修改。在程序執(zhí)行時(shí),這個(gè)工具會(huì)以圖形化的方式顯示內(nèi)存的使用情況。
相關(guān)介紹:Linux
嚴(yán)格來講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但人們已經(jīng)習(xí)慣了用Linux來形容整個(gè)基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫(kù)的操作系統(tǒng)。
Linux擁有以下特性:類似于Unix的基本思想,支持完全免費(fèi)與自由傳播,完全兼容POSIX1.0標(biāo)準(zhǔn),支持多用戶、多任務(wù)、有著良好的界面、支持多種平臺(tái)。Linux 能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
Linux有著許多不同的版本,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺(tái)、臺(tái)式計(jì)算機(jī)、大型機(jī)和超級(jí)計(jì)算機(jī)。
用 'top -i' 看看有多少進(jìn)程處于 Running 狀態(tài),可能系統(tǒng)存在內(nèi)存或 I/O 瓶頸,用 free 看看系統(tǒng)內(nèi)存使用情況,swap 是否被占用很多,用 iostat 看看 I/O 負(fù)載情況...
還有一種辦法是 ps -ef | sort -k7 ,將進(jìn)程按運(yùn)行時(shí)間排序,看哪個(gè)進(jìn)程消耗的cpu時(shí)間最多。
top:
主要參數(shù) :
free
1.作用
free命令用來顯示內(nèi)存的使用情況,使用權(quán)限是所有用戶。
**2.格式 **
**3.主要參數(shù) **
uptime
vmstat
**1 觀察磁盤活動(dòng)情況 **
磁盤活動(dòng)情況主要從以下幾個(gè)指標(biāo)了解:
**2 觀察cpu活動(dòng)情況 **
vmstat比top更能反映出cpu的使用情況:
iostat
用于統(tǒng)計(jì)CPU的使用情況及tty設(shè)備、硬盤和CD-ROM的I/0量
即使爬到最高的山上,一次也只能腳踏實(shí)地地邁一步。
Linux查看CPU和內(nèi)存使用情況:
在做Linux系統(tǒng)優(yōu)化的時(shí)候,物理內(nèi)存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監(jiān)控寶貴的內(nèi)存資源的使用情況。下面的清單詳細(xì)的列出了Linux系統(tǒng)下通過視圖工具或命令行來查看內(nèi)存使用情況的各種方法。
1. /proc/meminfo
查看RAM使用情況最簡(jiǎn)單的方法是通過 /proc/meminfo 。這個(gè)動(dòng)態(tài)更新的虛擬文件實(shí)際上是許多其他內(nèi)存相關(guān)工具(如:free / ps / top)等的組合顯示。 /proc/meminfo 列出了所有你想了解的內(nèi)存的使用情況。進(jìn)程的內(nèi)存使用信息也可以通過/proc/pid/statm 和 /proc/pid/status 來查看。
atop命令是一個(gè)終端環(huán)境的監(jiān)控命令。它顯示的是各種系統(tǒng)資源(CPU, memory, network, I/O, kernel)的綜合,并且在高負(fù)載的情況下進(jìn)行了彩色標(biāo)注。
free命令是一個(gè)快速查看內(nèi)存使用情況的方法,它是對(duì) /proc/meminfo 收集到的信息的一個(gè)概述。
GNOME System Monitor 是一個(gè)顯示最近一段時(shí)間內(nèi)的CPU、內(nèi)存、交換區(qū)及網(wǎng)絡(luò)的使用情況的視圖工具。它還提供了一種查看CPU及內(nèi)存使用情況的方法。
htop命令顯示了每個(gè)進(jìn)程的內(nèi)存實(shí)時(shí)使用率。它提供了所有進(jìn)程的常駐內(nèi)存大小、程序總內(nèi)存大小、共享庫(kù)大小等的報(bào)告。列表可以水平及垂直滾動(dòng)。
功能同 4 中介紹的GENOME版本。
memstat是一個(gè)有效識(shí)別executable(s), process(es) and shared libraries使用虛擬內(nèi)存情況的命令。給定一個(gè)進(jìn)程ID,memstat可以列出這個(gè)進(jìn)程相關(guān)的可執(zhí)行文件、數(shù)據(jù)和共享庫(kù)。
nmon是一個(gè)基于ncurses的系統(tǒng)基準(zhǔn)測(cè)試工具,它可以監(jiān)控CPU、內(nèi)存、I/O、文件系統(tǒng)及網(wǎng)絡(luò)資源等的互動(dòng)模式。對(duì)于內(nèi)存的使用,它可以實(shí)時(shí)的顯示 總/剩余內(nèi)存、交換空間等信息。
ps命令可以實(shí)時(shí)的顯示各個(gè)進(jìn)程的內(nèi)存使用情況。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”選項(xiàng)對(duì)進(jìn)程進(jìn)行排序,例如按RSS進(jìn)行排序:
smem命令允許你統(tǒng)計(jì)基于/proc信息的不同進(jìn)程和用戶的內(nèi)存使用情況。內(nèi)存使用情況的分析可以導(dǎo)出圖表(如條形圖和餅圖)。
top命令提供了實(shí)時(shí)的運(yùn)行中的程序的資源使用統(tǒng)計(jì)。你可以根據(jù)內(nèi)存的使用和大小來進(jìn)行排序。
vmstat命令顯示實(shí)時(shí)的和平均的統(tǒng)計(jì),覆蓋CPU、內(nèi)存、I/O等內(nèi)容。例如內(nèi)存情況,不僅顯示物理內(nèi)存,也統(tǒng)計(jì)虛擬內(nèi)存。