A. linux查看當前進程的nofile
您好,在Linux操作系統中,nofile是指當前進程打開的最大文件描述符數量。要查看當前進程的nofile,可以使用以下命令:
1. 使用命令「ulimit -n」可以查看當前用戶的nofile限制。如果該值不夠大,可以使用「ulimit -n <number>」來塵改增加nofile限制。
2. 使用命令「cat /proc/<pid>/limits」可以查看指定進程的nofile限制。其中,<pid>為要查看的進程的進程ID。
3. 使用命令「cat /proc/<pid>/status | grep Nofiles」可以查看指定進程打開的文件描述符數量。其中,<pid>為要查看的進程的進程ID。
4. 使用命令「lsof -p <pid> | wc -l」可以查看指定進程叢李打開的文件數量。其中,<pid>為要查看的進程的進程ID。
以上是查看當前進程派鄭判的nofile的幾種方法,可以根據實際情況選擇合適的方法進行查看。
B. linux中查看系統當前所有進程的命令是
ps aux為查看系統當前所有進程命令。
工具/原料
VMware Linux 電腦
方法/步驟
1、打開VMware虛擬機,打開終端命令行,通過」su「命令切換到root用戶下。
C. 如何統計Linux的進程數
統計有多少行用wc命令的-l參數,wc命令可以統計出多少字、行、字元數,它的-l參數表示僅僅統計出行數。這個命令一般是和管道符結合使用,比如想知道一個文件有多少行可以這樣用:
cat /etc/passwd |wc -l
而查看Linux當前的所有進程用ps aux命令,結果中一行是一個進程,所以,統計Linux系統的進程總數的命令應該是:
ps aux | wc -l
D. linux中如何查看進程總數
方法一:
pstree -p 14686(PID),可獲取到nginx的四個子進程(或 ps -ef |grep nginx)
方法二:ps -eL -o pid,%cpu,lwp|grep -i pid
E. 如何在Linux中查看所有正在運行的進程
可以使用top命令。
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的百分比
在這里CPU的使用比率和windows概念不同,如果你不理解用戶空間和內核空間,需要充充電了。
第四行:內存狀態
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)
F. 怎麼能得到當前linux系統所能創建的最大進程數量
1、Linux 系統的最大進程數和最大文件打開數限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
2、說明:* 代表針對所有用戶
noproc 是代表最大進程數
nofile 是代表最大文件打開數
# - "soft" for enforcing the soft limits
# - "hard" for enforcing hard limits
3、重新登錄
ulimit -a查看配置結果
4、為立刻生效,可以執行
ulimit -n 10240
ulimit -n 10240
G. Linux最大線程數限制及當前線程數查詢
查看系統允許的最大線程數:
Linux無法直接控制單個進程可擁有的線程數,但有參考公式max = VM/stack_size,默認stack為8k,可通過降低stack大小或增加虛擬內存來調大每個進程可擁有的最大線程數;
對於支持多線程的程序如Java,有可能會遇到一個進程無法創建更多線程的情形,其原因多種多樣,而OS端可能由此參數造成.
查看系統允許的最大進程數:
ulimit -a 顯示當前所有的資源限制
root用戶下執行 ulimit -a 然後查看 max user processes 這個值通常是系統最大線程數的一半:/proc/sys/kernel/threads-max/2
普通用戶下 ulimit -u 出現的max user processes的值 默認是 /etc/security/limits.d/20-nproc.conf(centos6 是90-nproc.conf) 文件中的
普通用戶默認是1024
打開/etc/security/limits.conf (部分的系統是在/etc/security/limits.d/90-nproc.conf)
設置限制數量,第一列表示用戶,* 表示所有用戶
soft nproc :單個用戶可用的最大進程數量(超過會警告);
hard nproc:單個用戶可用的最大進程數量(超過會報錯);
soft nofile :可打開的文件描述符的最大數(超過會警告);
hard nofile :可打開的文件描述符的最大數(超過會報錯);
重啟後生效
reboot
查詢當前某程序的線程數
pstree -p 進程號 | wc -l
管道符號"|"左邊命令的輸出作為右邊命令的輸入
直接修改/etc/security/limits.conf 文件中的 * soft nproc 65535 值後,普通用戶最大進程數無法達到65535 ,因為用戶的max user processes的值,最後是受全局的kernel.pid_max的值限制。也就是說kernel.pid_max=1024 ,那麼你用戶的max user processes的值是127426 ,用戶能打開的最大進程數還是1024。
永久修改系統最高進程數的方法
在/etc/sysctl.conf中添加kernel.pid_max = 65535
vim /etc/sysctl.conf
kernel.pid_max = 65535
或者:
echo "kernel.pid_max = 65535" >> /etc/sysctl.conf
然後重啟機器。
臨時修改的方法:
echo 65535 > /proc/sys/kernel/pid_max
所以以上都操作完成後,才算是正確修改了max user processes 的值