1. 有些linux系統最大tcp鏈結數比較小,無法支援同時併發6w量的tcp鏈結?
原因:
最大tcp連線數和系統允許開啟的最大檔案數,使用者允許開啟的最大檔案數,tcp網路連線可用的埠範圍有關,取上述的最小值;
一般的設定規則為:系統最大檔案數》可用埠》使用者最大檔案數
修改可用埠數:
檢視埠範圍
sysctl -a |grep ipv4.ip_local_port_range
修改值:
vi/etc/sysctl.conf
修改可用埠數
net.ipv4.ip_local_port_range = 1024 65535
修改使用者最大檔案描述符和最大程序數
檢視當前值:
ulimit -n # 最大檔案數,一般預設為1024個
ulimit -u #最大程序數,一般為預設60000+
#永久修改 vi /etc/security/limits.conf
#修改檔案數 * soft nofile 10240 * hardnofile 10240
#修改程序數 * soft noproc 60000 * hardnoproc 60000
#臨時修改 ulimit -n 10240
上面的永久修改方式重啟還不會生效,需要執行者
# 在末尾新增
sessionrequired /usr/lib64/security/pam_limits.so
# 作用是告訴linux在使用者完成系統登入後,應該呼叫pam_limits.so 來執行limit.conf這個檔案
一般來說,只需要修改使用者的限制就可以了。
2. 什麼是gevent?
python通過yield提供了對協程的基本支援,但是不完全。而第三方的gevent為python提供了比較完善的協程支援
gevent是第三方庫,通過greenlet實現協程,其基本思想是:當乙個greenlet遇到io操作時,比如訪問網路,就自動切換到其他的greenlet,等到io操作完成,再在適當的時候切換回來繼續執行。由於io操作非常耗時,經常使程式處於等待狀態,有了gevent為我們自動切換協程,就保證總有greenlet在執行,而不是等待io
最大連線數 Linux的檔案最大連線數
too many open files 檢視當前作業系統連線數設定 ulimit a修改伺服器最大連線數 vim etc security limits.conf新增 soft nofile 65535 hard nofile 65535 soft nproc 65535 hard nproc 65...
檢視執行緒數和控制代碼和程序最大檔案連線數
一 查執行緒數 方式一 cat proc pid status 展示結果中,threads後邊對應的數字就是程序擁有的執行緒數量。cd proc pid 檢視此目錄,可看到ssh對應執行緒目錄task和檔案控制代碼數目錄fd 方式二 ps hh p 3805 wc l 二 檢視執行緒佔控制代碼數 u...
Linux的最大檔案數限制
在nginx優化的過程中,將 connections加大的時候nginx發出警告 worker connections exceed open file resource limit 1024 此警告的問題是受限於linux的最大檔案數限制。環境 centos5.8 64bit ulimit n 檢...