最近重啟平臺后,啟動數據流,確發生報錯:

成都創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站制作、成都做網站、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的思禮網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
發現文件打開太多,句柄數不夠用了,需要調優linux參數:
首先查看下系統的句柄是多少,用ulimit -a 命令查看
linux默認最大文件句柄數是1024個,當你的服務器在大并發達到極限時,就會報出“too many open files”。
修改linux系統參數:vi /etc/security/limits.conf
*softnofile65536
*hardnofile65536
修改以后保存,注銷當前用戶,重新登錄,執行ulimit -a
ulimit:
1,查看進程允許打開的最大文件句柄數
ulimit -n
2,設置進程能打開的最大文件句柄數
ulimit -n xxx
-H 指定資源的硬限制
-S 指定資源的軟限制
hard 代表當前硬限制
soft 代表當前軟件限制
unlimited 代表不限制.
3, 文件限制配置文件
/etc/security/limits.conf
4,文件句柄最大數據配置
配置文件:/proc/sys/fs/file-max
這個參數的默認值和內存大小有關系,可以使用公式:file-max 內存大小/ 10k.
4.1 建議將整個系統的文件句柄值至少設置為 65536
4.2 echo "65536" /proc/sys/fs/file-max
4.3 sysctl -w fs.file-max=65536
4.4 echo "fs.file-max=65536" /etc/sysctl.conf
5,文件句柄使用情況配置文件:/proc/sys/fs/file-nr
這三個值分別指:系統已經分配出去的句柄數、已經分配但是還沒有使用的句柄數以及系統最大的句柄數(和file-max一樣)。
6,查看進程打開的文件句柄數
lsof:列出當前系統打開文件的工具。
百度百科:
在文件I/O中,要從一個文件讀取數據,應用程序首先要調用操作 系統函數 并傳送文件名,并選一個到該文件的路徑來打開文件。該函數取回一個順序號,即文件句柄(file handle),該文件句柄對于打開的文件是唯一的識別依據。要從文件中讀取一塊數據,應用程序需要調用函數ReadFile,并將文件句柄在內存中的地址和要拷貝的字節數傳送給操作系統。當完成任務后,再通過調用系統函數來關閉該文件。
linux下文件句柄是有限制的,默認并不會太高,一般都是1024。linux指令ulimit?-n可以查看文件句柄限制。
ulimit -a?? 用來顯示當前的各種用戶進程限制
ulimit -n 查看當前用戶默認的最大文件句柄數
lsof |wc -l ?查看所有進程的文件打開數
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看當前進程打開了多少句柄數,注意第一列是句柄數,第二列是進程id
硬限制是實際的限制,而軟限制,是warnning限制,只會做出warning,可以通過ulimit來設定這兩個參數,用root用戶執行ulimit -HSn 4096(H指定了硬性大小,S指定了軟性大小,n表示設定單個進程最大的打開文件句柄數量)
文章名稱:linux系統句柄數命令 linux服務器句柄數怎么看
文章網址:http://www.yijiale78.com/article28/docjscp.html
成都網站建設公司_創新互聯,為您提供微信小程序、網站策劃、品牌網站建設、外貿網站建設、小程序開發、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯