java.net.SocketException: 打開的文件過多

首先普及幾個(gè)知識(shí):

  1. Linux下一切都是文件锻梳,包括輸入輸出設(shè)備俏橘、網(wǎng)絡(luò)連接、socket井联、管道等
  2. 與文件打開數(shù)最相關(guān)的是文件描述符(有的人喜歡稱作文件標(biāo)識(shí)符卜壕,英文為file descriptor),文件打開數(shù)的實(shí)質(zhì)就是文件描述符的數(shù)量
  3. 文件打開數(shù)的多少取決于系統(tǒng)種類烙常、內(nèi)存大小印叁,int(語言關(guān)鍵字,如C99的int)長度(非負(fù)整數(shù))军掂,以及系統(tǒng)管理員的設(shè)定
  4. 最大文件打開數(shù)是針對(duì)一個(gè)進(jìn)程而言,即一個(gè)進(jìn)程能打開的文件句柄數(shù)目是有限的昨悼,不能超過最大文件打開數(shù)
  5. ulimit命令只對(duì)當(dāng)前shell有效蝗锥,因此在編寫Shell腳本時(shí),如果需要并能控制文件最大打開數(shù)率触,則先執(zhí)行“ulimit -n 文件打開數(shù)”命令终议,在去執(zhí)行下面的內(nèi)容
  6. 在Linux中被打開的文件描述符存放在/proc/PID/fd/,其中PID就是process identifier。

除了需要注意穴张,還需要注意ulimit -v unlimited细燎,最大可用的虛擬內(nèi)存(The maximum amount of virtual memory available to the shell and, on some systems, to its children)

大多數(shù)原因是因?yàn)槌绦驔]有關(guān)閉打開的資源連接, 如RMI皂甘、數(shù)據(jù)庫等連接才導(dǎo)致的玻驻。 當(dāng)然也有可能能同時(shí)有超過Linux本身默認(rèn)的文件打開數(shù)。

一偿枕、 先從Linux設(shè)置入手

(1) ulimit -a (查看資源設(shè)置情況

core file size          (blocks, -c) 0  
data seg size           (kbytes, -d) unlimited  
scheduling priority             (-e) 0  
file size               (blocks, -f) unlimited  
pending signals                 (-i) 30525  
max locked memory       (kbytes, -l) 64  
max memory size         (kbytes, -m) unlimited  
open files                      (-n) 1024  
pipe size            (512 bytes, -p) 8  
POSIX message queues     (bytes, -q) 819200  
real-time priority              (-r) 0  
stack size              (kbytes, -s) 10240  
cpu time               (seconds, -t) unlimited  
max user processes              (-u) 1024  
virtual memory          (kbytes, -v) unlimited  
file locks                      (-x) unlimited  

open files默認(rèn)是1024

為了使服務(wù)器重啟設(shè)置還能生效璧瞬, 采取永久改變的方法。
vim /etc/security/limits.conf
在文檔最后添加

* soft nofile 65535  
* hard nofile 65535 

(2) vim /etc/pam.d/login

在文檔最后添加

session required /lib/security/pam_limits.so  

二渐夸、 程序

記得在finally語句塊里面關(guān)閉資源連接嗤锉, 如:

finally{  
            if (connector != null) {  
                connector.close();  
            }  
              
        }  

一些與文件打開數(shù)相關(guān)的命令以及其他相關(guān)命令:

  1. 查看當(dāng)前系統(tǒng)的文件打開總數(shù)(Maximum number of opened files):cat /proc/sys/fs/file-max
  2. 查看當(dāng)前進(jìn)程的文件打開數(shù):lsof -p 16075 | wc –l
  3. 查看當(dāng)前端口的文件打開數(shù):lsof -i:80 | wc -l
  4. 在使用lsof之前需要注意,lsof不適合查看一個(gè)連接數(shù)很高或者數(shù)量動(dòng)態(tài)變化過快的進(jìn)程或端口
  5. 查看某個(gè)進(jìn)程使用的文件:lsof -p 16075
  6. 查看某個(gè)端口使用的文件:lsof -i:80
  7. 查看使用某個(gè)文件的用戶和程序:fuser -v /bin/bash
  8. 如果需要查看所有進(jìn)程的文件打開數(shù)墓塌,如下圖命令lsof |wc -l
  9. Markup一個(gè)有用的分類知識(shí)的網(wǎng)站:https://en.wikipedia.org/wiki/Category:Unix_file_system_technology

【參考資料】
http://blog.csdn.net/wenniuwuren/article/details/45039449
http://dgd2010.blog.51cto.com/1539422/1676843
http://www.cnblogs.com/405845829qq/p/5919495.html
http://blog.itpub.net/220284/viewspace-1024475/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瘟忱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苫幢,更是在濱河造成了極大的恐慌访诱,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件态坦,死亡現(xiàn)場離奇詭異盐数,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)伞梯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門玫氢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谜诫,你說我怎么就攤上這事漾峡。” “怎么了喻旷?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵生逸,是天一觀的道長。 經(jīng)常有香客問我且预,道長槽袄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任锋谐,我火速辦了婚禮遍尺,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涮拗。我一直安慰自己乾戏,他們只是感情好迂苛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鼓择,像睡著了一般三幻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呐能,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天念搬,我揣著相機(jī)與錄音,去河邊找鬼催跪。 笑死锁蠕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的懊蒸。 我是一名探鬼主播荣倾,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骑丸!你這毒婦竟也來了舌仍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤通危,失蹤者是張志新(化名)和其女友劉穎铸豁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菊碟,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡节芥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逆害。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片头镊。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖魄幕,靈堂內(nèi)的尸體忽然破棺而出相艇,到底是詐尸還是另有隱情,我是刑警寧澤纯陨,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布坛芽,位于F島的核電站,受9級(jí)特大地震影響翼抠,放射性物質(zhì)發(fā)生泄漏咙轩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一阴颖、第九天 我趴在偏房一處隱蔽的房頂上張望活喊。 院中可真熱鬧,春花似錦膘盖、人聲如沸胧弛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽结缚。三九已至,卻和暖如春软棺,著一層夾襖步出監(jiān)牢的瞬間红竭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工喘落, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茵宪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓瘦棋,卻偏偏與公主長得像稀火,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赌朋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,168評(píng)論 2 33
  • 大家都知道凰狞,Linux系統(tǒng)提供了非常多非常多的命令或工具,這些命令都各有所長沛慢,都是系統(tǒng)需要的赡若。但我們精力有限,要掌...
    劉振鋒閱讀 11,500評(píng)論 10 90
  • 如果你想知道你的服務(wù)器正在做干什么团甲,你就需要了解一些基本的命令逾冬,一旦你精通了這些命令,那你就是一個(gè)專業(yè)的 Linu...
    七寸知架構(gòu)閱讀 10,857評(píng)論 1 71
  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成躺苦,其中身腻,內(nèi)核的設(shè)計(jì)非常微小和簡潔,完成的工作也非常簡單...
    rosekissyou閱讀 10,215評(píng)論 5 124
  • 1.總括 相對(duì)于結(jié)構(gòu)化數(shù)據(jù)(即行數(shù)據(jù)圾另,存儲(chǔ)在數(shù)據(jù)庫里霸株,可以用二維表結(jié)構(gòu)來邏輯表達(dá)實(shí)現(xiàn)的數(shù)據(jù))而言,不方便用數(shù)據(jù)庫二...
    逍遙_yjz閱讀 1,992評(píng)論 0 1