您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何進(jìn)行SUSE LINUX系統(tǒng)文件句柄限制的修改,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
在SUSE Linux下部署應(yīng)用的時(shí)候,有時(shí)會(huì)遇到“Socket/File: Can’t open so many files”的問題,這其實(shí)是因?yàn)镾USE Linux系統(tǒng)的文件句柄限制造成的,一般系統(tǒng)默認(rèn)都是允許打開1024個(gè)文件,作為一臺(tái)生產(chǎn)環(huán)境的應(yīng)用服務(wù)器,是很容易就達(dá)到這個(gè)默認(rèn)值的,因此我們需要把這個(gè)值改大一些。
文件句柄釋義:在文件I/O中,要從一個(gè)文件讀取數(shù)據(jù),應(yīng)用程序首先要調(diào)用操作系統(tǒng)函數(shù)并傳送文件名,并選一個(gè)到該文件的路徑來打開文件。該函數(shù)取回一個(gè)順序號(hào),即文件句柄(file handle),該文件句柄對(duì)于打開的文件是唯一的識(shí)別依據(jù)。要從文件中讀取一塊數(shù)據(jù),應(yīng)用程序需要調(diào)用函數(shù)ReadFile,并將文件句柄在內(nèi)存中的地址和要拷貝的字節(jié)數(shù)傳送給操作系統(tǒng)。當(dāng)完成任務(wù)后,在通過調(diào)用系統(tǒng)函數(shù)來關(guān)閉該文件。
下面我們看如何修改:
1、先查看系統(tǒng)默認(rèn)值
注意紅線標(biāo)注的“open files (-n) 1024”這行顯示文件句柄限制數(shù)量是1024,這個(gè)值對(duì)于實(shí)際生產(chǎn)環(huán)境的應(yīng)用服務(wù)器來說太小了。我們需要修改文件句柄的大小。
2、修改系統(tǒng)默認(rèn)文件句柄限制
#vi /etc/security/limits.conf
如果修改某個(gè)用戶的文件句柄限制數(shù)量,可以增加如下兩句:
你的用戶名 soft nofile 2048
你的用戶名 hard nofile 65536
如果將所有用戶的文件句柄限制統(tǒng)一修改,可以增加如下兩句:
* soft nofile 2048
* hard nofile 65536
注意wq保存退出。
我們添加的有soft, hard兩種限制:硬限制是實(shí)際的限制,而軟限制是warnning限制,只會(huì)做出warning。修改完保存重啟shell即可(有些系統(tǒng)可能需要重啟系統(tǒng),SUSE LINUX是不用的),再用ulimit -a 查看一下設(shè)置發(fā)現(xiàn)已成功。
3、ulimit其實(shí)就是對(duì)用戶和單一程序的限制,我們?cè)倏匆幌孪到y(tǒng)總限制:
查看系統(tǒng)總限制命令:
#cat /proc/sys/fs/file-max
查看整個(gè)系統(tǒng)目前使用的文件句柄數(shù)量命令:
#cat /proc/sys/fs/file-nr
如果要修改file-max和file-nr的值,需要通過vi /etc/sysctl.conf進(jìn)行編輯修改,使用sysctl -p使其生效。
對(duì)于一般的應(yīng)用來說(Apache、系統(tǒng)進(jìn)程)1024完全足夠使用,但是對(duì)于squid、mysql、java等單進(jìn)程處理大量請(qǐng)求的應(yīng)用來說就不夠用了。那么如何知道當(dāng)前進(jìn)程打開了多少個(gè)文件句柄呢?我們可以通過這個(gè)來查看:
#lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more
左邊一列是打開的文件句柄數(shù)量,第二列是進(jìn)程ID號(hào)。如果系統(tǒng)并發(fā)特別大,文件句柄數(shù)很有可能會(huì)超過1024,這時(shí)候我們就必須要調(diào)整系統(tǒng)參數(shù),以適應(yīng)實(shí)際應(yīng)用的變化。
補(bǔ)充:
查看某個(gè)進(jìn)程開了那些句柄:
#lsof -p pid
查看某個(gè)進(jìn)程開了多少個(gè)句柄:
#lsof -p pid |wc -l
看某個(gè)文件/目錄被什么進(jìn)程占用了,顯示已打開該目錄或文件的所有進(jìn)程信息:
#lsof path/filename
上述內(nèi)容就是如何進(jìn)行SUSE LINUX系統(tǒng)文件句柄限制的修改,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。