導航:首頁 > 編程系統 > linux系統進程數

linux系統進程數

發布時間:2024-10-17 20:10:37

A. 如何查看當前linux系統的狀態,如CPU使用,內存使用,負載情況等.

可以用TOP工具查看實時狀態。

top進入視圖:

第一行:
10:01:23 當前系統時間
126 days, 14:29 系統已經運行了126天14小時29分鍾(在這期間沒有重啟過)
2 users 當前有2個用戶登錄系統
load average: 1.15, 1.42, 1.44 load average後面的三個數分別是1分鍾、5分鍾、15分鍾的負載情況。

load average數據是每隔5秒鍾檢查一次活躍的進程數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。
第二行:
Tasks 任務(進程),系統現在共有183個進程,其中處於運行中的有1個,182個在休眠(sleep),stoped狀態的有0個,zombie狀態(僵屍)的有0個。
第三行:cpu狀態
6.7% us 用戶空間佔用CPU的百分比。
0.4% sy 內核空間佔用CPU的百分比。
0.0% ni 改變過優先順序的進程佔用CPU的百分比
92.9% id 空閑CPU百分比
0.0% wa IO等待佔用CPU的百分比
0.0% hi 硬中斷(Hardware IRQ)佔用CPU的百分比
0.0% si 軟中斷(Software Interrupts)佔用CPU的百分比

第四行:內存狀態
8306544k total 物理內存總量(8GB)
7775876k used 使用中的內存總量(7.7GB)
530668k free 空閑內存總量(530M)
79236k buffers 緩存的內存量 (79M)
第五行:swap交換分區
2031608k total 交換區總量(2GB)
2556k used 使用的交換區總量(2.5M)
2029052k free 空閑交換區總量(2GB)
4231276k cached 緩沖的交換區總量(4GB)

B. linux正常進程數是多少.

不同發行版是不同的,而且同一發行版的不同安裝(工作站、伺服器、自定義等)默認啟動的進程數也是不同的。

linux 系統中單個進程的最大線程數有其最大的限制 PTHREAD_THREADS_MAX
這個限制可以在 /usr/include/bits/local_lim.h 中查看
對 linuxthreads 這個值一般是 1024,對於 nptl 則沒有硬性的限制,僅僅受限於系統的資源。
這個系統的資源主要就是線程的 stack 所佔用的內存,用 ulimit -s 可以查看默認的線程棧大小,一般情況下,這個值是 8M。
可以寫一段簡單的代碼驗證最多可以創建多少個線程。

試驗顯示,在 linuxthreads 上最多可以創建 381 個線程,之後就會返回 EAGAIN
在 nptl 上最多可以創建 382 個線程,之後就會返回 ENOMEM
這個值和理論完全相符,因為 32 位 linux 下的進程用戶空間是 3G 的大小,也就是 3072M,用 3072M 除以 8M 得 384,但是實際上代碼段和數據段等還要佔用一些空間,這個值應該向下取整到 383,再減去主線程,得到 382。
那為什麼 linuxthreads 上還要少一個線程呢?這可太對了,因為 linuxthreads 還需要一個管理線程。
為了突破內存的限制,可以有兩種方法:
1) 用 ulimit -s 1024 減小默認的棧大小
2) 調用 pthread_create 的時候用 pthread_attr_getstacksize 設置一個較小的棧大小
要注意的是,即使這樣的也無法突破 1024 個線程的硬限制,除非重新編譯 C 庫<=此處值得討論,我在ubuntu 7.04+3G內存上用ulimit -s 1024,則可以得到3054個線程。

C. 淺談linux下進程最大數、最大線程數、進程打開的文件

Linux系統中進程、線程和文件描述符的數量都有其限制。理論上,每個進程在全局段描述表GDT中佔用兩個表項,使得最大進程數理論上為8180除以2,大約4090個。然而,PID值的限制默認設置為32768,意味著用戶創建進程的上限實際是這個值,即使root用戶不修改內核參數也只能達到32768個進程。

單個進程的線程數受線程庫限制,Linuxthreads限制為1024,NPTL則受限於系統資源,特別是線程棧內存。在Ubuntu-14.04-LTS-64bit系統上,Linuxthreads最多創建381個線程。32位系統中,由於內存限制,實際線程數略少於理論值。

打開文件描述符數(file-max)和nr_open參數控制了系統范圍內進程能打開的文件數。默認情況下,file-max為186405,而nr_open則限制了單進程的最大文件數。為了提高上限,可以增大這兩個值,但需要注意hard limit和soft limit的關系,以及與inode-max(2.2內核時)的兼容性。

對於非root用戶,修改hard limit有限制,需要在/etc/security/limits.conf中永久設置。而nofile參數,盡管可以設置為unlimited,但實際操作中會遇到無法登錄的限制,其上限由nr_open決定,通常為1048576。

2.4和2.6內核在處理線程和內存管理上有所不同,2.6內核在高並發場景下表現更好,但需要確保線程安全和內存管理。單進程伺服器的並發線程數受內存和ulimit參數影響,64位系統上的具體限制需視硬體配置而定。

總的來說,理解並調整這些限制對於優化Linux系統性能和資源管理至關重要。

D. Linux系統中查看執行中的進程佔用內存量的方法

Linux中查看某個進程佔用內存的情況,執行如下命令即可,將其中的[pid]替換成相應進程的PID號:

復制代碼

代碼如下:

cat /proc/[pid]/status

說明
/proc/[pid]/status中所保存的信息除了內存信息,還包括進程IDs、信號等信息,此處暫時只介紹內存相關的信息。

欄位說明VmPeak進程所使用的虛擬內存的峰值VmSize進程當前使用的虛擬內存的大小VmLck已經鎖住的物理內存的大小(鎖住的物理內存不能交換到硬碟)VmHWM進程所使用的物理內存的峰值VmRSS進程當前使用的物理內存的大小VmData進程佔用的數據段大小VmStk進程佔用的棧大小VmExe進程佔用的代碼段大小(不包括庫)VmLib進程所載入的動態庫所佔用的內存大小(可能與其它進程共享)VmPTE進程佔用的頁表大小(交換表項數量)VmSwap進程所使用的交換區的大小

舉例
顯示進程cron的內存信息,通過pidof cron獲取進程ID,或者通過ps -aux | grep cron查找進程ID。

復制代碼

代碼如下:

$ cat /proc/1161/status

Name: cron
State: S (sleeping)
Tgid: 1161
Ngid: 0
Pid: 1161
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups: 0
VmPeak: 23792 kB
VmSize: 23656 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 1040 kB
VmRSS: 1004 kB
VmData: 260 kB
VmStk: 136 kB
VmExe: 40 kB
VmLib: 2668 kB
VmPTE: 72 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/15442
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000010001
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 151
nonvoluntary_ctxt_switches: 0

E. linux中如何查看進程總數

|

方法一:

  1. pstree -p 14686(PID),可獲取到nginx的四個子進程(或 ps -ef |grep nginx)

方法二:ps -eL -o pid,%cpu,lwp|grep -i pid

F. 如何查看linux資源使用情況

Linux查看系統資源佔用
在系統維護的過程中,隨時可能有需要查看 CPU和內存的使用率,並根據相應信息分析系統狀況的需求。本文介紹一下幾種常見的Linux系統資源查看命令。
1、總體內存佔用的查看
命令:free

圖1 free命令查看內存佔用
(1) free命令默認是以kb為單位顯示的,可以用free -m 用Mb單位來顯示。
(2) Mem行 : total = used + free 其中buffers和cached雖然計算在used內, 但其實為可用內存。
(3) Mem下一行:used為真實已佔內存,free為真實可用內存。
(4)Swap:內存交換區的使用情況。

2、查看內存佔用前五的進程
命令:ps auxw | head -1;ps auxw|sort -rn -k4|head -5

圖 2.1查看內存佔用前5的進程
如圖2.1所示, 內存的單位是kb,VSZ是虛擬內存的佔用,RSS是真實的內存的佔用。
命令分解:
ps auxw顯示系統資源佔用情況;
head -1表示顯示第一列,即標題列;
sort -r 表示反向排序,-n表示按數字排序,-k4表示列的第4個字元。

3、查看CPU佔用前三的進程
命令:ps auxw|head -1;ps auxw|sort -rn -k3|head -3

圖3.1 查看cpu佔用前三的進程
該命令與圖2.1相仿,只是選擇的資源佔用情況的第3列(即cpu),用「-k3」表示。

4、查看系統整體的負載
命令:top

圖4.1 top顯示系統整體負載
(1)第一行: 系統時間 + 系統運行時間 + 幾個用戶 + 1/5/15分鍾系統平均負載
(2)第二行:進程總數(total) + 正在運行進程數(running) + 睡眠進程數(sleeping) + 停止的進程數(stopped)+ 僵屍進程數(zombie)
(3)第三行:用戶空間CPU佔比(us) + 內核空間CPU佔比(sy)+ CPU空置率(id)

圖4.2 各個任務佔用資源情況
註解:
PID :進程ID
USER :用戶名
PR :優先順序
NI :負值表示高優先順序,正值表示低優先順序。
VIRT :虛擬內存
RES : 真實內存
SHR :共享內存
S :進程狀態 D=不可中斷的睡眠狀態; R=運行; S=睡眠 ;T=跟蹤/停止; Z=僵屍進程
參數:
top -d 2 :每隔2秒顯式所有進程的資源佔用情況
top -c :每隔5秒顯式進程的資源佔用情況,並顯示進程的命令行參數(默認只有進程名)
top -p 12345 -p 6789:每隔5秒顯示pid是12345和pid是6789的兩個進程的資源佔用情況
top -d 2 -c -p 123456 :每隔2秒顯示pid是12345的進程的資源使用情況,並顯式該進程啟動的命令行參數

閱讀全文

與linux系統進程數相關的資料

熱點內容
每次都要到多個平台更改配置文件 瀏覽:495
RAM讀取數據和地址有什麼關系 瀏覽:494
小情歌哪個版本好聽 瀏覽:289
ios游戲在哪個文件夾 瀏覽:475
linux怎樣打開鏈接文件 瀏覽:48
ug6加工配置文件下載 瀏覽:308
方糖app如何下載 瀏覽:82
win10無法記憶桌面圖標 瀏覽:577
更新代碼 瀏覽:56
bde的配置文件 瀏覽:66
mac和windows系統哪個更適合編程 瀏覽:162
小米11手機桌面文件夾改名 瀏覽:481
文件壓縮方法 瀏覽:893
換購手機怎麼克隆數據 瀏覽:203
什麼是字元串數據 瀏覽:666
linux文件另存為 瀏覽:688
win10ssd激活工具 瀏覽:961
qq活躍數據怎麼看 瀏覽:435
為什麼編程機構進入不了學校 瀏覽:514
壓縮文件打開有臨時文件 瀏覽:824

友情鏈接