阿里雲服務器上的Service文件句柄限制修改

有個服務程序,老是報文件無法打開,肯定是文件句柄打開太多了,需要修改一下

文件打開句柄限制可以通過命令查看:

ulimit -n

65535

65535看起來還不錯,不至於這麼少。所以我們看看我們的服務程序進程怎樣。查看單獨某個已經啓動的進程,想查看它的文件打開句柄限制如下,(看起來有點少):

cat /proc/9481/limits

Limit                     Soft Limit           Hard Limit           Units    

Max cpu time              unlimited            unlimited            seconds  

Max file size             unlimited            unlimited            bytes    

Max data size             unlimited            unlimited            bytes    

Max stack size            8388608              unlimited            bytes    

Max core file size        0                    unlimited            bytes    

Max resident set          unlimited            unlimited            bytes    

Max processes             127582               127582               processes

Max open files            1024                 1048576              files    

Max locked memory         65536                65536                bytes    

Max address space         unlimited            unlimited            bytes    

Max file locks            unlimited            unlimited            locks    

Max pending signals       127582               127582               signals  

Max msgqueue size         819200               819200               bytes    

Max nice priority         0                    0                   

Max realtime priority     0                    0                   

Max realtime timeout      unlimited            unlimited            us

如果想修改登錄用戶的限制,則可以直接執行命令

ulimit -n 1000

ulimit -n

1000

當然這只是臨時修改,如果想重啓還生效可以修改配置文件:

/etc/security/limits.conf

其中:root說明針對root用戶,*表示針對所有用戶。

root soft nofile 65535

root hard nofile 65535

* soft nofile 65535

* hard nofile 65535

 

這麼修改後,重啓服務,看看服務進程的打開句柄數,結果還是沒有生效,原來這個修改只是針對登錄用戶的shell環境。我們在阿里雲的操作系統中如果選擇的是centos7操作系統鏡像,是使用的systemd來啓動的service,這個環境的打開句柄限制在另一個地方。

/etc/systemd/system.conf

其中修改的項目爲:

DefaultLimitNOFILE=65000

修改後,重啓機器就生效了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章