大家知道在linux服務(wù)器大并發(fā)調(diào)優(yōu)時,往往需要預(yù)先調(diào)優(yōu)linux參數(shù),其中修改linux最大文件句柄數(shù)是最常修改的參數(shù)之一。
在linux中執(zhí)行ulimit -a 即可查詢linux相關(guān)的參數(shù),如下所示:
[root@mongodb11 ~]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling PRiority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 256324max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 10240cpu time (seconds, -t) unlimitedmax user processes (-u) 256324virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited
默認情況下,linux最大文件句柄數(shù)為1024個。當(dāng)你的服務(wù)器在大并發(fā)達到極限時,就會報出“too many open files”。
那么如何修改linux最大文件句柄數(shù)呢?其實很簡單:
1、ulimit -n 2048
這命令就可以修改linux最大文件句柄數(shù),修改以后使用ulimit -a 查看修改的狀態(tài),如:
[root@mongodb11 ~]# ulimit -n 2048[root@mongodb11 ~]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 256324max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 2048pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 10240cpu time (seconds, -t) unlimitedmax user processes (-u) 256324virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited
但是,這種方法只針對當(dāng)前進程有效。重新打開一個shell或者開啟一個進程,你就會發(fā)現(xiàn)參數(shù)還是ulimit -n xx修改之前的數(shù)字。那么有沒有一勞永逸的方法呢?
當(dāng)然有!那就是修改系統(tǒng)參數(shù)。
2、修改linux系統(tǒng)參數(shù)。vi /etc/security/limits.conf 添加
* soft nofile 65536
* hard nofile 65536
修改以后保存,注銷當(dāng)前用戶,重新登錄,執(zhí)行ulimit -a ,ok,參數(shù)生效了:
[root@localhost ~]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 256600max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files (-n) 65536pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 10240cpu time (seconds, -t) unlimitedmax user processes (-u) 256600virtual memory (kbytes, -v) unlimitedfile locks (-x) unlimited
文章轉(zhuǎn)載請注明出處:http://www.CUOXin.com/likehua/p/3831331.html
新聞熱點
疑難解答
圖片精選