1. 打開文件數量限制
系統總共能夠打開的文件數
由於服務器的資源是有限的,因此Linux對打開的文件數作了限制;包括系統總共能夠打開的文件數,單個用戶/組別能夠打開的文件數,單個進程能夠打開的文件數等
對於系統總共能夠打開的文件數,應該是系統根據系統硬件資源自動計算出來的,查看幾個系統值都很大,通常不須要咱們操心了,若是實在要改,請在/etc/sysctl.conf文件下面加上:
# Controls the maximum number of open-files by whole system
fs.file-max = 6550236
而後執行sysctl -p命令
cat /proc/sys/fs/file-max
6550236
此時整個系統所能夠打開的文件總數爲6550236服務器
單個進程能夠打開的文件數
當前單個進程能夠打開的文件數能夠經過ulimit -n [N]進行顯示/設置
許多系統默認爲1024,若是你的應用程序爲高併發網絡服務就頗有可能超過1024個鏈接(還不包括已經打開的其餘文件)
因此你可使用ulimit -n 10240來臨時改變最大文件打開數;
可是記住,這個命令只是臨時性的,不但重啓後無效,並且對於另一個會話也是無效的;因此咱們通常有兩種方式對這個限制進行處理:
1. 將上面命令放到某個啓動腳本使其在本身的服務程序前開啓
2. 修改/etc/security/limits.conf(通常都在這個位置),在尾部增長下面內容
* soft nofile 10240
* hard nofile 10240
記住這個是須要重啓系統的markdown
2. socket等待隊列數量限制
somaxconn參數控制的是socket監聽隊列中的socket數量,在Centos6.5是128,對於要運行大併發服務程序的服務器而言每每是不夠的,將他修改爲2048或者更多
sysctl配置與顯示在/proc/sys目錄中的內核參數.用戶只須要編輯/etc/sysctl.conf文件,便可手工或自動執行由sysctl控制的功能。
命令格式:
sysctl [-n] [-e] -w variable=value
sysctl [-n] [-e] -p (default /etc/sysctl.conf)
sysctl [-n] [-e] -a
經常使用參數的意義:
-w 臨時改變某個指定參數的值,系統重啓將失效,如
sysctl -w net.core.somaxconn=2048
PS: echo 2048 > /proc/sys/net/core/somaxconn跟上面的命令完成了一樣的功能
-a 顯示全部的系統參數
-p 從指定的文件加載系統參數,如不指定即從/etc/sysctl.conf中加載
好比在/etc/sysctl.conf中加入: net.core.somaxconn=2048,再執行sysctl -p網絡