導航:首頁 > 操作系統 > linux線程內存佔用

linux線程內存佔用

發布時間:2022-06-12 12:10:03

linux查看伺服器cpu,內存使用情況

第一種:用 top 命令 中的cpu 信息觀察
Top可以看到的cpu信息有:
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
具體的解釋如下:
Tasks: 29 total 進程總數
1 running 正在運行的進程數
28 sleeping 睡眠的進程數
0 stopped 停止的進程數
0 zombie 僵屍進程數
Cpu(s):
0.3% us 用戶空間佔用CPU百分比
1.0% sy 內核空間佔用CPU百分比
0.0% ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
0.0% wa 的百分比可以大致的體現出當前的磁碟io請求是否頻繁。如果 wa的數量比較大,說明等待輸入輸出的的io比較多。
第二種:用vmstat
vmstat 命令報告關於線程、虛擬內存、磁碟、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用於平衡系統負載活動。系統范圍內的這些統計信息(所有的處理器中)都計算出以百分比表示的平均值,或者計算其總和。
輸入命令:
vmstat 2 5
如果發現等待的進程和處在非中斷睡眠狀態的進程數非常多,並且發送到塊設備的塊數和從塊設備接收到的塊數非常大,那就說明磁碟io比較多。
vmstat參數解釋:
Procs
r: 等待運行的進程數 b: 處在非中斷睡眠狀態的進程數 w: 被交換出去的可運行的進程數。此數由 linux 計算得出,但 linux 並不耗盡交換空間
Memory
swpd: 虛擬內存使用情況,單位:KB
free: 空閑的內存,單位KB
buff: 被用來做為緩存的內存數,單位:KB
Swap
si: 從磁碟交換到內存的交換頁數量,單位:KB/秒
so: 從內存交換到磁碟的交換頁數量,單位:KB/秒
IO
bi: 發送到塊設備的塊數,單位:塊/秒
bo: 從塊設備接收到的塊數,單位:塊/秒
System
in: 每秒的中斷數,包括時鍾中斷
cs: 每秒的環境(上下文)切換次數
CPU
按 CPU 的總使用百分比來顯示
us: CPU 使用時間
sy: CPU 系統使用時間
id: 閑置時間

② 為什麼linux下多線程程序如此消耗虛擬內存

為什麼linux下多線程程序如此消耗虛擬內存,解答如下

③ Linux 內存 為什麼會一直被占滿

Linux的內存管理機制跟Windows是不同的!

Windows在用內存的時候同時會用硬碟上的虛擬內存,而且對程序的內存管理不夠好…有些程序雖然關掉,但是會有碎片占據部分內存而且不會被自動清理,所以越用越卡…

Linux是盡量把內存全部利用起來盡量不用交換空間(所以一旦用到交換空間意味著配置低了該加內存了),而且內存管理是用過的程序暫時放在內存裡面等需要再用的時候直接從內存讀取,這樣速度快很多!

當然如果內存滿又要運行新的程序,系統會自動按照程序的重要性進行內存清理,關掉部分不重要的程序把部分內存資源交給需要運行的新程序…

④ 如何在Linux系統中,查看某個進程中線程佔用cpu或內存等信息

1、查看物理CPU的個數
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
1
2、查看邏輯CPU的個數
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "processor"|wc -l
4
3、查看CPU是幾核(即,核心數)
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
4、查看CPU的主頻
[root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep MHz|uniq
cpu MHz : 2499.982
5、當前操作系統內核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
6、當前操作系統發行版信息
[root@MysqlCluster01 ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
7、內存使用情況
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem: 7863 2738 5125 0 141 835
-/+ buffers/cache: 1761 6102
Swap: 3967 0 3967

⑤ linux查看什麼線程佔用內存

:14;m
7: 4
4;cpuinfo |grep "cpuinfo |grep "cache;etc/.982
5.3:45 UTC 2014 x86_64 x86_64 x86_64 GNU/.20,核心數)
[root@MysqlCluster01 ~]# cat /、當前操作系統內核信息
[root@MysqlCluster01 ~]# uname -a
Linux MysqlCluster01 2;|uniq
cpu cores : 1761 6102
Swap;issue
CentOS release 6、查看物理CPU的個數
[root@MysqlCluster01 ~]# cat /proc/、查看邏輯CPU的個數
[root@MysqlCluster01 ~]# cat /.el6;cpuinfo |grep ".4 (Final)
Kernel \proc/.32-431;physical id"、查看CPU的主頻
[root@MysqlCluster01 ~]# cat /proc/.6;cpuinfo |grep MHz|uniq
cpu MHz : 7863 2738 5125 0 141 835
-/、內存使用情況
[root@MysqlCluster01 ~]# free -m
total used free shared buffers cached
Mem;|sort |uniq|wc -l
1
2.x86_64 #1 SMP Thu Jun 19 21、查看CPU是幾核(即;proc/、當前操作系統發行版信息
[root@MysqlCluster01 ~]# cat /cores"|wc -l
4
3: 2499;Linux
6;r on an \+ buffers/processor"

⑥ linux 下怎麼查看一個進程佔用內存大小

這里介紹下查看一個進程佔用內存大小的方法。

1、首先單擊桌面左上角的應用程序,選擇系統工具選項,如下圖所示。

⑦ Linux進程的內存使用解析

進程XXX佔用了多少內存?這是個經常被問到,也經常被答錯的問題。linux進程的內存分配是個比較復雜的話題,而linux上的工具往往把這個問題過分簡單化,因此引出不少誤解和困惑。首先把ps,
top這類工具扔掉,然後看這么一個簡單程序:[root@pczou
pczou]#
cat
./prog.c#i
nclude#i
nclude#i
nclude#i
nclude#define
ONEM
(1024*1024)
www.shiwu.com
int
func(){char
s[16*ONEM];char*
p;p
=
malloc(32*ONEM);pause();return
0;}int
main(){printf(pid:
%d/n,
getpid());func();return
0;}其中func()這個函數分配了32MB的內存,以及16MB的堆棧。運行一下這個prog程序,prog會停在pause()的位置,看看ps怎麼說:USER
PID
%CPU
%MEM
VSZ
RSS
TTY
STAT
START
TIME
COMMANDroot
4238
0.0
0.0
52396
352
pts/0
S
21:29
0:00
./progVSZ指的是進程內存空間的大小,這里是52396KB;RSS指的是駐留物理內存中的內存大小,這里是352KB。一般系統管理員知道VSZ並不代表進程真正用到的內存,因為有些空間會僅在頁表中掛個名,也就是說只是虛擬存在著,只有真正用到的時候內核才會把虛擬頁面和真正的物理頁面映射起來。比如,prog.c中用malloc()分配的32MB內存,由於程序中並沒有用到這些內存,沒有物理內存被分配,也就不應算到進程的帳上。
www.shiwu.com
進程的內存使用情況比較復雜,這是因為:進程所申請的內存不一定真正會被用到真正用到了的內存也不一定是只有該進程自己在用
(比如動態共享庫)所以酒足飯飽結帳的時候,飯館打出的帳單中往往漏洞百出,不是計入了沒上的菜,就是一個菜算了兩份錢。而ps給出的就是這樣的糊塗帳單,不足為憑。算清楚帳的唯一辦法是把每個菜都仔細過一遍,看看有沒有上,有沒有重復。下面的帳單要清楚多了:Virtual
memory
:
52396
KBEffective
VM
:
52120
KBMapped
:
352
KBEffective
mapped:
76.6
KBSole
use
:
72
KBPer
file
memory
useld-2.3.4.so
:
VM
94208
B,
M
90112
B,
S
8192
Bprog
:
VM
8192
B,
M
8192
B,
S
8192
Blibc-2.3.4.so
:
VM
1180
KB,
M
221184
B,
S
16384
B可以看出,雖然虛擬地址空間是52396KB,實際映射(a.k.a.
分配)的空間是352KB,這和ps給出的結果一致。再看Effective
Mapped這個值,僅為76.6
KB。這個值的計算方法是:有效的實際使用內存
=
該進程獨占的內存
+
共享的內存A
/共享A的進程數目
+
共享的內存B
/共享B的進程數目
+
...比如對於一個kde應用程序kontact,它用的Qt庫的虛擬地址空間為
7M,而實際映射的空間有4.5M,也就是說真正給
Qt分配物理內存大小為4.5M。假設有10個KDE應用正在運行,那麼記到kontact帳上的就不應該是4.5M,而是A-A之後的0.45M。這么算帳雖然並不十分准確,但Effective
Mapped已經足以說明進程所佔用內存的實際大小了。
www.shiwu.com
OK,最後用這個方法給系統中所有進程都結下帳:從上面的統計結果可以看出:雖然firefox的佔用虛擬空間是最大的,但其實際佔用的內存卻比X
Server要少。firefox
的實際佔用的內存和其RSS
(a.k.a.
mapped)差別不大,佔RSS的99%;而kontact的實際佔用內存卻僅佔RSS的63%,有27%的內存是共享的。由此可以粗略看出我用的窗口管理器是KDE而非Gnome,why?
因為Qt之類的共享庫被很多KDE進程分擔了。sole值可以理解為private
mapped,也就是這個進程退出後可能被釋放的內存
(對於非匿名的映射頁面可能還會存留一段時間)。作者
railon

⑧ linux 怎麼查看進程 內存佔用

ps
aux
USER
PID
%CPU
%MEM
VSZ
RSS
TTY
STAT
START
TIME
COMMAND

USER,進程所有者的用戶名。

PID,進程號,可以唯一標識該進程。

%CPU,進程自最近一次刷新以來所佔用的CPU時間和總時間的百分比。

%MEM,進程使用內存的百分比。

VSZ,進程使用的虛擬內存大小,以K為單位。

RSS,進程佔用的物理內存的總數量,以K為單位。

TTY,進程相關的終端名。

STAT,進程狀態,用(R--運行或准備運行;S--睡眠狀態;I--空閑;Z--凍結;D--不間斷睡眠;W-進程沒有駐留頁;T停止或跟蹤。)這些字母來表示。

START,進程開始運行時間。

TIME,進程使用的總CPU時間。

COMMAND,被執行的命令行。

⑨ linux下,內存佔用太高,需要查看哪個進程佔用,查看命令是哪個

在LINUX下,內存佔用太高,如果想進行查看的話,可以打開任務管理器,然後點擊內存的選項,這樣就可以看到當前運行的程序具體的佔用空間情況

⑩ linux查看內存使用情況

linux查看內存使用情況的方法是,1,proc。meminfo,查看 RAM 使用情況最簡單的方法是通過 ,procmeminfo。這個動態更新的虛擬文件實際上是許多其他內存相關工具 free ,ps ,top的組合顯示。

2,atop。atop 命令是一個終端環境的監控命令。它顯示的是各種系統資源,CPU, memory, network, IOkernel的綜合,並且在高負載的情況下進行了彩色標注。

3,free。free 命令是一個快速查看內存使用情況的方法,它是對 ,proc,meminfo 收集到的信息的一個概述。

4,GNOME System Monitor。GNOME System Monitor 是一個顯示最近一段時間內的 CPU內存交換區及網路的使用情況的視圖工具。它還提供了一種查看 CPU 及內存使用情況的方法。

5,htop。htop 命令顯示了每個進程的內存實時使用率。它提供了所有進程的常駐內存大小,程序總內存大小,共享庫大小等的報告,列表可以水平及垂直滾動。6,KDE System Monitor功能同 4 中介紹的 GENOME 版本。

閱讀全文

與linux線程內存佔用相關的資料

熱點內容
常用cmd網路命令 瀏覽:676
hashmap7源碼分析 瀏覽:896
搜索引擎原理技術與系統pdf 瀏覽:359
運動估計演算法python 瀏覽:858
java正則1 瀏覽:536
redhatlinux最新 瀏覽:177
python字典編程詞彙 瀏覽:144
微信和伺服器如何通訊 瀏覽:10
百家號伺服器配置有什麼用 瀏覽:598
怎麼為電腦加密 瀏覽:58
伺服器出現差錯是什麼意思 瀏覽:616
蘋果app移到商店裡怎麼刪掉 瀏覽:254
phpjsphtml 瀏覽:63
吃雞手機國際服伺服器超時怎麼辦 瀏覽:68
努比亞Z5無命令 瀏覽:642
展示網站雲伺服器 瀏覽:872
代碼混淆器php 瀏覽:367
貝恩pdf 瀏覽:209
丙烯pdf 瀏覽:368
雲伺服器華碩 瀏覽:713