掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流
眾所周知在默認參數情況下Linux對高并發(fā)支持并不好,主要受限于單進程最大打開文件數限制、內核TCP參數方面和IO事件分配機制等。下面就從幾方面來調整使Linux系統(tǒng)能夠支持高并發(fā)環(huán)境。

十余年的利辛網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站建設的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整利辛建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“利辛網站設計”,“利辛網站推廣”以來,每個客戶項目都認真落實執(zhí)行。
如非必須,關掉或卸載iptables防火墻,并阻止kernel加載iptables模塊。這些模塊會影響并發(fā)性能。
一般的發(fā)行版,限制單進程最大可以打開1024個文件,這是遠遠不能滿足高并發(fā)需求的,調整過程如下:
在#號提示符下敲入:
# ulimit -n 65535
將root啟動的單一進程的最大可以打開的文件數設置為65535個。如果系統(tǒng)回顯類似于“Operationnotpermitted”之類的話,說明上述限制修改失敗,實際上是因為在中指定的數值超過了Linux系統(tǒng)對該用戶打開文件數的軟限制或硬限制。因此,就需要修改Linux系統(tǒng)對用戶的關于打開文件數的軟限制和硬限制。
# vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
其中’*’號表示修改所有用戶的限制;soft或hard指定要修改軟限制還是硬限制;65536則指定了想要修改的新的限制值,即最大打開文件數(請注意軟限制值要小于或等于硬限制)。修改完后保存文件。
# vim /etc/pam.d/login
sessionrequired /lib/security/pam_limits.so 這是告訴Linux在用戶完成系統(tǒng)登錄后,應該調用pam_limits.so模塊來設置系統(tǒng)對該用戶可使用的各種資源數量的最大限制(包括用戶可打開的最大文件數限制),而pam_limits.so模塊就會從/etc/security/limits.conf文件中讀取配置來設置這些限制值。修改完后保存此文件。
# cat/proc/sys/fs/file-max
32568
這表明這臺Linux系統(tǒng)最多允許同時打開(即包含所有用戶打開文件數總和)32568個文件,是Linux系統(tǒng)級硬限制,所有用戶級的打開文件數限制都不應超過這個數值。通常這個系統(tǒng)級硬限制是Linux系統(tǒng)在啟動時根據系統(tǒng)硬件資源狀況計算出來的優(yōu)秀的最大同時打開文件數限制,如果沒有特殊需要,不應該修改此限制,除非想為用戶級打開文件數限制設置超過此限制的值。修改此硬限制的方法是修改/etc/sysctl.conf文件內fs.file-max= 131072
這是讓Linux在啟動完成后強行將系統(tǒng)級打開文件數硬限制設置為131072。修改完后保存此文件。
完成上述步驟后重啟系統(tǒng),一般情況下就可以將Linux系統(tǒng)對指定用戶的單一進程允許同時打開的最大文件數限制設為指定的數值。如果重啟后用ulimit-n命令查看用戶可打開文件數限制仍然低于上述步驟中設置的最大值,這可能是因為在用戶登錄腳本/etc/profile中使用ulimit-n命令已經將用戶可同時打開的文件數做了限制。由于通過ulimit-n修改系統(tǒng)對用戶可同時打開文件的最大數限制時,新修改的值只能小于或等于上次ulimit-n設置的值,因此想用此命令增大這個限制值是不可能的。所以,如果有上述問題存在,就只能去打開/etc/profile腳本文件,在文件中查找是否使用了ulimit-n限制了用戶可同時打開的最大文件數量,如果找到,則刪除這行命令,或者將其設置的值改為合適的值,然后保存文件,用戶退出并重新登錄系統(tǒng)即可。
通過上述步驟,就為支持高并發(fā)TCP連接處理的通訊處理程序解除關于打開文件數量方面的系統(tǒng)限制。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流