導航:首頁 > 文件類型 > linux進程打開的文件數

linux進程打開的文件數

發布時間:2023-01-22 04:53:42

linux系統中如何查看真實的可支持的最大文件打開數

在Linux下,我們使用ulimit -n 命令可以看到單個進程能夠打開的最大文件句柄數量(socket連接也算在裡面)。系統默認值1024。
對於一般的應用來說(象Apache、系統進程)1024完全足夠使用。但是如何象squid、mysql、java等單進程處理大量請求的應用來說就有 點捉襟見肘了。如果單個進程打開的文件句柄數量超過了系統定義的值,就會提到「too many files open」的錯誤提示。如何知道當前進程打開了多少個文件句柄呢?下面一段小腳本可以幫你查看:
lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
在系統訪問高峰時間以root用戶執行上面的腳本,可能出現的結果如下:
# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
131 24204
57 24244
57 24231
56 24264
其中第一行是打開的文件句柄數量,第二行是進程號。得到進程號後,我們可以通過ps命令得到進程的詳細內容。
ps -aef |grep 24204
mysql 24204 24162 99 16:15 ? 00:24:25 /usr/sbin/mysqld
哦,原來是mysql進程打開最多文件句柄數量。但是他目前只打開了131個文件句柄數量,遠遠底於系統默認值1024。
但是如果系統並發特別大,尤其是squid伺服器,很有可能會超過1024。這時候就必須要調整系統參數,以適應應用變化。Linux有硬性限制和軟性限制。可以通過ulimit來設定這兩個參數。方法如下,以root用戶運行以下命令:
ulimit -HSn 4096
以上命令中,H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量。個人覺得最好不要超過4096,畢竟打開的文件句柄 數越多響應時間肯定會越慢。設定句柄數量後,系統重啟後,又會恢復默認值。如果想永久保存下來,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最後。

⑵ linux 一個進程最多打開多少個文件

1、在linux系統中,理論上一個進程可以打開的文件數可以通過如下命令查找到。在終端執行:ulimit -a命令,找到open files一行即可。

2、這個值只是一個理論值,隨著你的系統硬體資源而變化,如果配置低,可能遠達不到這個值,如果系統配置很高級,也可以設置增加這個值。

⑶ Linux查看進程打開多少文件描述符命令

1、當linux打開一個文抄件的時候,Linux內核會為每一個進程在/proc/ 建立一個以其pid
為名的目錄用來保存進程的相關信息,而其子目錄fd保存的是該進程打開的所有文件的fd(fd:file descriptor)。
2、例如/proc/13844/fd/目錄(13844為pid)
3、ps -ef|grep java
root 13884 1 0 Aug15 ? 08:51:38 /doyoo/jdk1.8/bin/java
4、ll /proc/13884/fd

⑷ linux默認情況下,一個進程最多能打開多少文件

現在一般能打開64個。
文件描述符的范圍是0 ~ O P E N _ M A X 。早期的U N I X版本採用的上限值是1 9 (允許每個進程打開2 0個文件),現在很多系統則將其增加至6 3。

⑸ 怎樣查看linux進程打開的文件數

Linux文件數打開數復
查看當前系統最大的制文件打開數,
在linux終端中輸入ulimit -a
「open files」參數選項後面的數值就是當前系統支持的最大打開文件數

修改linux最大文件打開數
如果要修改linux最大文件打開數,可以通過參數命令 unlimit -n 後面接需要設置的文件數量。
設置好之後,再次查看 unlimit -a 你會發現已經設置為新的數量了

設置好之後,再次編輯修改重啟設置的服務,已經沒有剛剛那個1024文件數限制的報錯提示

其他修改方法
除此之外,如果針對不同的用戶。也可以通過編輯修改 /etc/rc.local文件設置環境變數,添加 unlimit -n
,重啟之後一般就自動設置好了

查看系統句柄文件數
當前系統文件句柄的最大數目,只用於查看,不能設置修改
cat /proc/sys/fs/file-max

查看進程打開文件數
如果需要查看所有進程的文件打開數,命令lsof |wc -l

⑹ linux 系統統計進程打開文件數方法

1 打開文件數各參數含義

參考  https://blog.csdn.net/xifeijian/article/details/9088137

查看某進程打開文件數

need-to-insert-img

2 統計文件所有進程文件數

lsof | awk '{print $2,$1}' | sort | uniq -c | sort -rn >> b.txt

need-to-insert-img

3 統計pid 進程打開的文件數

lsof -p pid

need-to-insert-img

4 統計pid 進程打開所有的文件數

lsof  |  awk "{print $NF}" | grep 10555  > proct.txt

need-to-insert-img

5 分析pid 進程打開文件數連接  排序 和 統計

awk '{print $NF}' proct.txt |sort |uniq -c |sort -nr > sort2.txt

need-to-insert-img

⑺ linux默認情況下,一個進程最多能打開多少文件

linux
系統中單個進程的最大線程數有其最大的限制
pthread_threads_max
這個限制可以在
/usr/include/bits/local_lim.h
中查看

linuxthreads
這個值一般專是
1024,對於
nptl
則沒有屬硬性的限制,僅僅受限於系統的資源
1024,是系統默認的能打開fd的最大值
修改的話需要重新編譯內核

⑻ Linux的too many open files解析

Linux中如果一個進程打開文件或者socket連接過多,有沒有及時處理和關閉掉文件或連接,當該進程打開文件的數量超過open files的數量時候,就會報too many open files的錯誤

Linux 的open files 是在一個同一個進程里限制的,當然也有全局的限制(查看/proc/sys/fs/file-max文件),ulimit -a pid命令可以看到open files進程級別限制的大小。

如果當前open files配置的是1024,則這個進程最多隻能打開1024個文件,/proc/PID/fd 目錄下的打開文件描述符的數量不會超過1024, 使用 lsof -p PId | wc -l 來查看進程打開的文件數, 超過1024則報too many open files的錯誤,這時候其他進程仍然可以打開文件,進程之間互不影響。

可以臨時通過 ulimit -n 4096 這樣設置 open files為4096,然後在同一個用戶session下重新啟動程序。這樣的設置只能在Session級別生效,如果切換用戶或者切換shell session就失效了。如果要永久生效,需要修改/etc/security/limits.conf文件,在文件末尾添加下列參數並重啟機器:

noproc 是代表最大進程數

Golang等動態GC的語言,會通過GC來回收沒有正確關閉的文件(比如使用完文件後沒有調用Close()去關閉釋放資源),這樣就導致一些已經打開的文件又被GC關閉掉,然後此進程又可以打開另外的文件,從而會使/proc/PID/fd目錄下文件描述符會指向不同的文件,可能鏈接到不同的文件。

通過設置GOGC=off環境變數關閉GO GC, 再執行go程序,此問題解決, /proc/PID/fd目錄下的文件描述符一直保持在max open files 數量 1024,同時lsof -p pid|grep REG|wc -l 為1024.

打開文件後一定要記得f.Close()關閉,這樣就能避免產生too many open files的報錯。

⑼ 怎樣查看linux進程打開的文件數

linux系統下查看進程打開文件在/proc下,對應每個進程有一個以進程號命名的目錄,該目錄下有一個fd目錄,該目錄下面的每個文件是一個符號連接,其文件名對應該進程佔用的一個文件描述符,而連接指向的內容表示文件描述符對應的實際文件,有多少個文件描述符表示該進程打開了多少文件。
另外Linux
默認的進程打開文件上限是1024個,可以通過ulimit
-n查看。很多系統上限可以通過修改/etc/security/limits.conf文件改變,這個文件有詳細的注釋,對如何修改做了說明。如果希望
把所有用戶的進程打開文件上限改為65536,可以加入下面兩行

* soft nofile 65535
* hard nofile 65535

還可以只真對某個用戶或某個組做修改,具體方法參見文件注釋。修改後需要重新啟動系統才能生效。學習linux基本命令,推薦《linux就該這么學》!

⑽ Linux操作系統中打開文件數量的查看方法

ulimit -a  查看系統文件打開數

查看所有進程的文件打開數

lsof |wc -l

指定查看某個進程打開的文件數

lsof -p pid |wc -l

修改Linux文件數和進程數 

vim /etc/security/limits.conf

* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535

*             代表針對所有用戶   

noproc     是代表最大進程數   

nofile     是代表最大文件打開數

ulimit -a   

最大進程數

max user processes (-u) 4096

修改許可權

vim /etc/security/limits.d/20-nproc.conf

*          soft    nproc    unlimited

root      soft    nproc    unlimited

閱讀全文

與linux進程打開的文件數相關的資料

熱點內容
linux文件只讀不能復制 瀏覽:597
開關代碼 瀏覽:91
word繪圖板 瀏覽:359
蘋果minecraftpe注冊 瀏覽:775
ps怎麼存儲文件卡 瀏覽:728
微信清除緩存圖片恢復 瀏覽:305
安卓app會閃退怎麼解決 瀏覽:429
哪些app背單詞是免費的 瀏覽:889
cf擊殺圖標放哪個文件夾 瀏覽:208
為什麼我的爐石不能查看完整數據 瀏覽:179
蘋果7音量按鍵不回彈 瀏覽:296
u盤兩個系統可以放一個文件夾嗎 瀏覽:538
linuxshell變數累加 瀏覽:386
win10控制面板怎麼看 瀏覽:574
如何編程換裝游戲程序 瀏覽:269
怎麼登錄沭陽縣民政局網站 瀏覽:451
iphone6降級ios7 瀏覽:92
怎麼隱藏三星應用程序圖標不見了 瀏覽:203
可以兼職的app 瀏覽:493
iphone圓角圖標製作 瀏覽:659

友情鏈接