動態修改程序最大檔案開啟數

2021-10-24 08:05:55 字數 2416 閱讀 8162

有些生產環境的服務不能隨便重啟,最大檔案開啟數受到限制。

本文利用prlimit動態修改正在執行程序最大檔案開啟數。

本文以修改nginx最大檔案開啟數為例。

# 當前系統最大檔案開啟數

[root@vm-centos750221 ~]

# ulimit -a|grep open

open files (-n) 2048

# 檢視nginx的pid

[root@vm-centos750221 ~]

# ps -ef|grep nginx

nobody 22183 32546 0 09:30 ? 00:00:00 nginx: worker process

nobody 22184 32546 0 09:30 ? 00:00:00 nginx: worker process

root 32546 1 0 9月03 ? 00:00:00 nginx: master process ../sbin/nginx

# 檢視nginx的最大檔案開啟數

[root@vm-centos750221 ~]

# cat /proc/32546/limits |grep open

max open files 2048 65536 files

# 檢視指定程序限制

[root@vm-centos750221 ~]

# prlimit --pid 32546

resource description soft hard units

as address space limit unlimited unlimited 位元組

core max core file size 0 unlimited 塊

cpu cpu time unlimited unlimited 秒數

data max data size unlimited unlimited 位元組

fsize max file size unlimited unlimited 塊

locks max number of file locks held unlimited unlimited

memlock max locked-in-memory address space 65536 65536 位元組

msgqueue max bytes in posix mqueues 819200 819200 位元組

nice max nice prio allowed to raise 0 0

nofile max number of open files 65536 65536

nproc max number of processes 63458 63458

rss max resident set size unlimited unlimited 頁數

rtprio max real-time priority 0 0

rttime timeout

for real-time tasks unlimited unlimited 毫秒數

sigpending max number of pending signals 63458 63458

stack max stack size 8388608 unlimited 位元組

# 修改指定程序的最大檔案開啟數

[root@vm-centos750221 ~]

# prlimit --pid 32546 --nofile=65535

# 驗證是否成功

[root@vm-centos750221 ~]

# prlimit --pid 32546 |grep nofile

nofile max number of open files 65535 65535

mac修改程序能開啟的最大檔案數

mac程序能開啟的最大檔案數,預設只有256 ulimit n 256這會導致go的服務端執行的時候,如果同時連線的客戶端太多,會報錯 解決辦法 mac修改程序能開啟的最大檔案數 1.su 切換到root賬戶 launchctl limit maxfiles 99999 99999 ulimit n...

最大檔案開啟數

有些機器上,服務的tcp連線特別多,可能上100k 這時如果系統沒有優化好,就會出現too many open file的報錯 file max是核心可分配的最大檔案數 一般系統預設核心可分配的最大檔案數是記憶體 kb為單位 的10 左右 下面就是乙個4g的機器的資訊。cat proc sys fs...

Linux最大檔案開啟數

在linux下有時會遇到socket file can t open so many files的問題。其實linux是有檔案控制代碼限制的,而且linux預設一般都是1024 阿里雲主機預設是65535 在生產環境中很容易到達這個值,因此這裡就會成為系統的瓶頸。使用ulimit a 或者 ulim...