❶ linux 句柄數是什麼
一個進程在運行中會打開很多資源,包括文件file、通訊連接socket、正在監聽的埠等,我們把這些統稱為句柄(handle)。
❷ Linux之文件句柄
ulimit:
1,查看進程允許打開的最大文件句柄數
ulimit -n
2,設置進程能打開的最大文件句柄數
ulimit -n xxx
-H 指定資源的硬限制
-S 指定資源的軟限制
hard 代表當前硬限制
soft 代表當前軟體限制
unlimited 代表不限制.
3, 文件限制配置文件
/etc/security/limits.conf
4,文件句柄最大數據配置
配置文件:/proc/sys/fs/file-max
這個參數的默認值和內存大小有關系,可以使用公式:file-max 內存大小/ 10k.
4.1 建議將整個系統的文件句柄值至少設置為 65536
4.2 echo "65536" > /proc/sys/fs/file-max
4.3 sysctl -w fs.file-max=65536
4.4 echo "fs.file-max=65536" >> /etc/sysctl.conf
5,文件句柄使用情況配置文件:/proc/sys/fs/file-nr
這三個值分別指:系統已經分配出去的句柄數、已經分配但是還沒有使用的句柄數以及系統最大的句柄數(和file-max一樣)。
6,查看進程打開的文件句柄數
lsof:列出當前系統打開文件的工具。
❸ Linux文件句柄佔用數量查看與設置
安裝lsof
yum install lsof
查看線程占句柄數
ulimit -a
查看系統打開句柄最大數量
more /proc/sys/fs/file-max
1
查看打開句柄總數
lsof|awk '{print $2}'|wc -l
1
根據打開文件句柄的數量降序排列,其中第二列為進程ID:
lsof|awk '{print $2}'|sort|uniq -c|sort -nr|more
1
根據獲取的進程ID查看進程的詳情
ps -ef |grep
1
修改linux單進程最大文件連接數
修改linux系統參數。vi /etc/security/limits.conf 添加
softnofile65536
hardnofile65536
修改以後保存,注銷當前用戶,重新登錄,執行ulimit -a ,ok ,參數生效了:
❹ linux如何獲取磁碟的繁忙程度和打開的文件句柄數
磁碟繁忙程度一般用iostat看
可以從 /proc/sys/fs/file-nr,看到整個系統目前使用的文件句柄數量回
查找文件句柄問題的時候,還答有一個很實用的程序lsof.可以很方便看到某個進程開了那些句柄.也可以看到某個文件/目錄被什麼進程佔用了
❺ ulimitlinux
Linux查看進程打開多少文件描述符命令?
linux系統下查看進程打開文件在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件,有多少個文件描述符表示該進程打開了多少文件。
另外Linux默認的進程打開文件上限是1024個,可以通過ulimit-n查看。很多系統上限可以通過修改/etc/security/limits.conf文件改變,這個文件有詳細的注釋,對如何修改做了說明。
如果希望把所有用戶的進程打開文件上限改為65536,可以加入下面兩行*softnofile65535*hardnofile65535還可以只真對某個用戶或某個組做修改,具體方法參見文件注釋。
修改後需要重新啟動系統才能生效。
Linux下如何查看進程打開的文件以及修改進程打開文件數上限?
1.查看進程打開文件r在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件。r2.修改進程打開文件數上限Linux默認的進程打開文件上限是1024個,可以通過ulimitr把所有用戶的進程打開文件上限改為65536,可以加入下面兩行r*softnofile65535r還可以只真對某個用戶或某個組做修改,具體方法參見文件注釋。修改後需要重新啟動系統才能生效。
Linux程序本身是否限制大小?
命令行用ulimit-m最大佔用內存(K)ulimit-t最大實際佔用cpu時間(秒)執行以上兩個命令後再在同一個shell進程里執行你的程序。代碼里可以用setrlimit函數做限制,頭文件大概是sys/resource.h。
linux查看文件句柄使用情況?
Linux查看文件句柄使用情況的方法:
1.查看當前系統的最大句柄數
ulimit-n
2.lsof命令查看有關文件句柄的詳細信息,如當前系統打開的文件數量,哪些進程在使用這些文件句柄等等
查看進程PID打開的文件句柄詳細信息:
lsof-ppid>
查看當前進程打開了多少句柄數:
lsof-n|awk{print$2}|sort|uniq-c|sort-nr|more
linux普通用戶如何修改最大進程數限制求?
#su-xxx(普通用戶)
su:無法設置用戶ID:資源暫時不可用
#ulimit-u
1024
由此可以看出最大線程數為1024
修改最大線程數的配置
#vi/etc/security/limits.d/90-nproc.conf
內容如下:
*softnproc1024
rootsoftnprocunlimited
上面可以看除了root用戶外的所有用戶均限制為1024,因此通過可以注釋此行或者將值改大來解決該問題修改完成後保存退出,這樣的修改是立馬生效的
❻ linux 句柄數代表打開文件數嗎
修改文件句柄數在Linux下,我們使用ulimit -n命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。
對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「too many filesopen」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
13124204
5724244
5724231
5624264
其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。
ps -aef|grep 24204
mysql 2420424162 99 16:15? 00:24:25/usr/sbin/mysqld