系統配置
- Intel(R) Xeon(TM) CPU 3.00GHz
- Memory 4G
- Ethernet adapter 1000M
查看 ulimit
ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals (-i) 1024 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 stack size (kbytes, -s) 2048 cpu time (seconds, -t) unlimited max user processes (-u) 77824 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
對于linux系統,所有設備都以映射為設備文件的方式存在,包括硬件(鍵盤,鼠標,打印機,顯示器,串口,并口,USB,硬盤,內存,網卡,聲卡,顯卡,等等....),還有軟件(管道,socket),訪問這些資源,就相當與打開一個文件,
所以"open files"文件數限制很重要,默認值根本不能滿足我們。
查看文件打開數
$ cat /proc/sys/fs/file-nr3200 0 197957 已分配文件句柄的數目 已使用文件句柄的數目 文件句柄的最大數目查看所有進程的文件打開數lsof |wc -l 查看某個進程打開的文件數lsof -p pid |wc -l
臨時更改
# ulimit -n 65536 or # ulimit -SHn 65536 or # echo "65535" > /proc/sys/fs/file-max
永久更改
/etc/security/limits.conf
nobody soft nofile 40960 root soft nofile 40960 nobody hard nofile 40960 root hard nofile 40960 daemon soft nofile 40960 daemon hard nofile 40960
更省事的方法
* soft nofile 40960 * hard nofile 40960
最大線程數限制 threads-max
查看當前值
# cat /proc/sys/kernel/threads-max 32624
設置
有多種方法加大Linux的threads數,下買是臨時更改
sysctl -w kernel.threads-max=65536 echo 65536 > /proc/sys/kernel/threads-max
永久修改
編輯/etc/sysctl.conf 增加 kernel.threads-max = 65536 #sysctl -p 馬上生效
以上數值僅供參考,隨著計算機發展,上面的值已經不太適合,當前流行的服務器。
原文出處:Netkiller 系列 手札
本文作者:陳景峯
轉載請與作者聯系,同時請務必標明文章原始出處和作者信息及本聲明。