精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

你真知道“Too many open files”?

開發
ulimit這個命令其實是系統的內部命令(不信你打which ulimit)它也是調用setrlimit完成的設置。二者的區別是pam_limit是自動加載的(屬于linux的“認證模塊”),ulimit你必須動手輸入命令。

江湖上的人都碰到過Too many open files的錯誤(無論你是多線程,網絡socket,還是別的什么幺蛾子,這個錯誤很常見)。筆者一個朋友剛好也碰到過,經過一番搜索最終解決了問題。但是始終沒有搞清楚——“到底問題出在哪里?”。我當然也講不清楚(否則就不會有這篇文章咯)網上也找不到相關資料。作為一個有良知的自媒體公眾賬號,我決定要把替大家去深究一下這個問題。(花了兩個晚上~~,記得打賞我)

網上流傳的三種做法:

  • 修改ulimit命令修改,這種修改只能在當前會話有效或者/etc/security/limits.conf設置hard soft nofile,可以一直有效
  • sysctl修改fs.file-max
  • 修改/proc/sys/fs/nr_open(可選)

還有一種傳說這是有優先級的——limit.conf < fs.file-max < nr_open

然而這都是扯淡,純粹的臆想。有良知的自媒體公眾賬號是講道理的,正所謂——沒代碼你說個屁啊!!!;所以我就順著Linux Kernel的代碼挖了下去。

Linux/Unix一個著名的哲學就是——“萬物皆文件”,無論是一個線程、socket、還是真正的文件都會被當做“文件”。Too may open files通常意味著“文件描述符”不足,它一般會發生在“創建線程”、“創建socket”、“打開文件”這種場景下。我選“創建socket”作為出發點

文件描述符的限制?不對!!

調用socket函數的時候內核會分兩步操作——填充數據結構,分配fd。我們重點看socket_map_fd

關鍵的地方來了,get_unused_fd_flags會嘗試分配一個fd,但是這個僅僅是fd——是一個數字而已;就是我們常說的——文件描述符。僅僅有一個數字并不代表什么,它相當于一個占位符,系統并沒有實際的分配資源。socket_alloc_file才是真正的建立文件結構(內核的數據結構:struct file)。打開get_unsed_fd_flags摸下去:

同志們,重點又來了。rlimit(RLIMIT_NOFILE)這個函數得到的是soft nofile,我們繼續看__alloc_fd

fd備用有三部分組成,進程當前預分配的(fd位圖中設置了標記,fdt->next_fd);進程當前可用的(fd位圖中沒有設置標記,fdt->max_fds);進程擴展的(fd位圖中都不存在,需要執行expand_files擴展fd位圖)所以__alloc_fd函數分為了三步嘗試分配fd。

  • 嘗試“預分配”的fd(直接分配)
  • 嘗試分配“可用的”的fd(需要填充位圖)
  • 嘗試擴展fd位圖大小

如果fd超過soft nofile,這個函數會直接返回“錯誤”。所以soft nofile是fd大小限制的***道關卡,hard nofile全程沒用。soft nofile的準確而含義是——當前可以使用多少fd。

當前是跟“進程”有關系的,詳細內容請看***一部分。我們繼續看“擴充”fd:

fs.nr_open是文件描述符的***一道關卡,當我們嘗試擴充文件描述符的時候只要你不大于它系統就允許你擴充,它的***值是2147483584。

結論:

  • soft nofile、fs.nr_open是用來控制文件描述符數量的
  • soft nofile其實是linux的pam_limit模塊設置的如果你不啟用這個模塊,你只能通過ulimit命令調整。如果不調整它的值是4096(可以看***的代碼圖)
  • nr_open表示文件描述符***數量。它的***值是2147483584(64位機器上2^31-64)。這也是是soft nofile、fs.nr_open可以設置的***值。

文件結構體

文件描述符在內核中其實是一個數字,它代表的是一個“索引”而索引的內容是“文件結構體”(內核數據結構 struct file)。內核分配資源的時候把“索引”和“內容”當做兩種資源來分配。先申請“索引”后申請“內容”。跳回sock_map_fd看第二步——分配文件結構,它調用了sock_alloc_file函數。

順著這個函數走下去你會發現——file-max(為了節省版面,完整的代碼圖我附在后面)

file-max是指struct file的上限。你可以把soft nofile、fs.nr_open設置成天文數字,但是不設置file-max就意味著沒法分配struct file,文件描述符就沒用了,依舊資源分配不成功。(像12306,你搶到票還不行還得“排隊”。搶到的僅僅是一個占位符,到***可能“沒票了”。對,我沒買到車票,等大家眾籌機票了。)

總結:

  • fs.file-max是用來控制文件結構體數量的

等等,還沒結束

上面已經扒出了三個參數的真實意義,但是作為一個——有良知的自媒體公眾號必須把道理講清楚。所以我就挖出了soft nofile的前生今世。

PAM(Pluggable Authentication Modules)是Linux的認證框架,在系統啟動成功后無論是后臺服務進程還是bash都會通過setup_limits加載/etc/security/limit.conf文件然后調用setrlimit重新設置進程的rlimt——其中就包括了soft nofile。(pam_limit不在內核代碼中它有自己獨立的代碼倉庫,為了做有良知的自媒體我是不是特別拼?)

ulimit這個命令其實是系統的內部命令(不信你打which ulimit)它也是調用setrlimit完成的設置。二者的區別是pam_limit是自動加載的(屬于linux的“認證模塊”),ulimit你必須動手輸入命令。

【本文是51CTO專欄作者邢森的原創文章,轉載請聯系作者本人獲取授權】

責任編輯:武曉燕 來源: 寫程序的康德
相關推薦

2023-04-26 00:06:22

服務器死循環報錯

2021-02-09 08:13:51

項目內存TCP

2018-05-21 10:11:43

2024-09-04 16:00:24

PostgreSQL數據庫

2019-06-18 15:20:01

MySQL連接錯誤數據庫

2024-01-07 20:05:33

2023-12-25 14:47:14

2023-01-31 09:02:24

JSVMVR

2009-12-14 15:02:36

Open office

2009-12-02 09:17:50

Open Suse

2010-11-23 10:21:53

跳槽

2022-08-11 08:46:23

索引數據結構

2020-04-27 10:34:23

HTTPDNSDNS網絡協議

2022-01-04 10:10:34

Garuda LinuArch LinuxLinux

2018-01-10 08:27:00

2024-05-06 00:30:00

MVCC數據庫

2020-06-05 08:37:08

Object.entr開發Object.from

2024-03-08 13:33:08

PG數據安全

2013-06-27 10:09:21

大數據

2010-04-02 15:20:18

云存儲
點贊
收藏

51CTO技術棧公眾號

亚洲精品国产一区二区精华液| 中文字幕免费精品| 一区二区视频免费在线观看| 97人摸人人澡人人人超一碰| 日韩一区二区视频在线| 国产精品丝袜在线播放| 色呦呦国产精品| 欧洲xxxxx| 青青色在线视频| 久久成人综合网| 性欧美在线看片a免费观看| 亚洲一级理论片| 女同久久另类99精品国产| 欧美日韩午夜在线视频| 97免费视频观看| 日韩子在线观看| 91免费视频观看| 91成人免费在线观看| 毛片在线免费播放| 亚洲国产三级| 免费av一区二区| 亚洲人成人无码网www国产| 亚洲一区二区三区四区电影| 亚洲一区二区三区爽爽爽爽爽 | 亚洲mv在线看| 一级黄色a视频| 国产精品亚洲综合久久| 久久久久九九九九| 欧美做爰啪啪xxxⅹ性| 欧美欧美黄在线二区| 亚洲黄一区二区| 国产a√精品区二区三区四区| 阿v视频在线| 一区二区三区四区视频精品免费 | www.国产视频.com| 亚洲天堂资源| 五月婷婷欧美视频| 日本五级黄色片| av在线app| 中文字幕一区日韩精品欧美| 丁香五月网久久综合| 国产伦理吴梦梦伦理| 麻豆国产精品777777在线| 热久久这里只有精品| 亚洲精品电影院| 日本女优一区| 色七七影院综合| 亚洲一级理论片| 日韩国产一区二区| 日韩在线观看精品| 六十路息与子猛烈交尾| 成人在线超碰| 亚洲国产欧美一区二区丝袜黑人| 99免费视频观看| 一二区成人影院电影网| 在线观看一区日韩| 天天色综合社区| 精品福利在线| 欧美日韩免费区域视频在线观看| 老司机av福利| av免费在线网站| 亚洲一区二区在线观看视频| 老司机激情视频| 91看片在线观看| 中文字幕一区二区视频| 国产经典久久久| av在线网页| 欧美天堂在线观看| 能在线观看的av网站| 欧美黄色a视频| 欧美一级久久久久久久大片| 精品伦一区二区三区| 成人亚洲免费| 欧美一级艳片视频免费观看| 无码人妻一区二区三区在线| 日韩mv欧美mv国产网站| 中日韩美女免费视频网站在线观看| 人妻av一区二区| 日本国产精品| 日韩一区二区三区国产| 激情五月少妇a| 国产日韩1区| 国产精品入口夜色视频大尺度| 欧美一级片免费在线观看| 日韩成人一区二区三区在线观看| 国内精品久久久久久中文字幕 | 天天综合国产| 欧美寡妇偷汉性猛交| 熟女av一区二区| 好吊日精品视频| 国产极品精品在线观看| 中文字幕一区在线播放| 黄网站免费久久| 精品视频在线观看| 欧洲美女少妇精品| 亚瑟在线精品视频| 中文字幕无码精品亚洲35| 黄页网站大全在线免费观看| 亚洲精品欧美专区| 中文字幕乱码人妻综合二区三区| 热色播在线视频| 91精品国产全国免费观看| 久久婷婷国产91天堂综合精品| 综合另类专区| 日韩欧美在线观看一区二区三区| 欧美成人手机在线视频| 香蕉国产成人午夜av影院| xvideos亚洲人网站| 日本不卡一二区| 国产日韩一区二区三区在线| 青草青草久热精品视频在线观看| 香蕉影院在线观看| 日韩成人午夜精品| 国产综合18久久久久久| 激情在线小视频| 色噜噜狠狠色综合中国 | 亚洲欧美网站| 亚洲xxx视频| 日韩在线观看www| 欧美性色19p| 天堂www中文在线资源| 93在线视频精品免费观看| 欧美最猛性xxxxx免费| 亚洲第一天堂影院| 亚洲私人黄色宅男| 三级一区二区三区| 日韩精品免费一区二区三区| 日韩美女福利视频| 香蕉视频网站在线| 国产精品女主播在线观看| 国产日产欧美视频| 精品精品国产三级a∨在线| 欧美成人小视频| 国产精品高潮呻吟AV无码| 国产999精品久久| 99久热在线精品视频| 台湾天天综合人成在线| 在线看日韩av| 一级黄色录像大片| 中文一区二区在线观看| 国产精品一区二区羞羞答答| 国产探花一区在线观看| 国产不卡av在线| 国产在线免费观看| 91福利在线播放| 一区二区精品免费| 日韩国产欧美视频| 亚洲va韩国va欧美va精四季| 四虎影视4hu4虎成人| 伊人伊人伊人久久| 中文字幕人妻丝袜乱一区三区| 不卡电影一区二区三区| 亚洲精品在线观看免费| 日韩亚洲国产免费| 欧美成人精品一区二区| 国精产品乱码一区一区三区四区| 国产亚洲精品福利| 国产又粗又长又大的视频| 欧美日韩一二| 成人精品在线视频| 欧美人与性动交α欧美精品图片| 欧美日韩中文一区| 久久99久久99精品免费看小说| 午夜亚洲视频| 日韩精品第一页| 性欧美video另类hd尤物| 久久国产精品影视| 蜜桃av中文字幕| 亚洲你懂的在线视频| 潘金莲一级淫片aaaaa| 亚洲精品综合| 视频一区视频二区视频三区高| av电影院在线看| 国产视频精品免费播放| 中文字幕 日韩有码| 日韩毛片视频在线看| 国产+高潮+白浆+无码| 天堂久久一区二区三区| 一区二区成人国产精品| 成人涩涩网站| 国产精品免费久久久久久| 操你啦视频在线| 日韩激情视频在线| 国产影视一区二区| 偷窥国产亚洲免费视频| 国产破处视频在线观看| 成人午夜精品在线| 免费拍拍拍网站| 一区二区三区四区视频免费观看 | 小早川怜子一区二区的演员表| 日韩成人一区二区三区在线观看| 欧美日产一区二区三区在线观看| 捆绑调教日本一区二区三区| 在线国产精品播放| 亚洲乱码在线观看| 欧美中文字幕一区二区三区亚洲| 成年人免费观看视频网站| 久久人人超碰| 成人在线免费高清视频| 欧美日韩国产免费观看视频| 91黄在线观看| 欧洲亚洲精品| 久久综合免费视频| 九色蝌蚪在线| 欧美日韩一区 二区 三区 久久精品| 亚洲一级黄色录像| www.日韩在线| 97超碰人人看| 理论电影国产精品| 欧美激情国产精品日韩| 一区二区视频欧美| 日本高清xxxx| 成久久久网站| 欧美一区二区视频17c| 97久久综合精品久久久综合| 国产va免费精品高清在线观看| 成年午夜在线| 国产视频精品自拍| 人妻少妇精品无码专区| 色婷婷狠狠综合| 欧美一级特黄高清视频| 国产高清成人在线| 国产福利在线免费| 国产精品v亚洲精品v日韩精品 | 免费成人结看片| 国产精品区一区| 欧美日韩黄网站| 91精品视频网站| 欧美爱爱视频| 国语对白做受69| 性xxxfreexxxx性欧美| 日韩av网站在线| 蜜臀久久精品久久久久| 精品国产自在久精品国产| 国产又大又黑又粗| 欧美日韩国产专区| 日韩成人免费在线观看| 亚洲成人tv网| 日韩av电影网| 欧美日韩国产色视频| 日韩在线观看第一页| 亚洲国产精品久久艾草纯爱| 久久老司机精品视频| 亚洲综合男人的天堂| 成人无码av片在线观看| 国产色综合一区| 永久免费观看片现看| 欧美激情在线一区二区| 免费91在线观看| 中文字幕欧美一| 国产免费一区二区三区网站免费| 国产成人午夜99999| 日本人妻一区二区三区| 成人美女视频在线观看18| 日韩精品视频一区二区| 91年精品国产| 91麻豆精品国产91久久综合| 国产精品麻豆久久久| 日韩在线一卡二卡| 洋洋成人永久网站入口| 国产精品第56页| 欧美视频专区一二在线观看| 超碰在线免费97| 欧美体内谢she精2性欧美| 最新中文字幕在线观看视频| 欧美日韩亚洲综合在线| 精品国产伦一区二区三| 欧美日本韩国一区二区三区视频| xxxx.国产| 欧美性生活久久| 国产精品探花视频| 精品1区2区在线观看| 久久免费看视频| xxav国产精品美女主播| 91九色在线看| 国产精品久久久久不卡| 国精产品一区二区三区有限公司| 91超碰中文字幕久久精品| 欧美日韩经典丝袜| 日本午夜在线亚洲.国产| 欧美性aaa| 国产乱码一区| 欧美三级午夜理伦三级小说| 日本在线视频不卡| 欧美韩日精品| 成人在线观看黄| 久久九九精品| 99精品视频国产| 337p粉嫩大胆噜噜噜噜噜91av| 毛茸茸free性熟hd| 欧美激情一区二区三区| 久久久久久天堂| 欧美视频第二页| 色一情一乱一乱一区91av| 精品88久久久久88久久久| 成人在线观看免费| 日韩在线观看免费av| 日本电影在线观看网站| 国模gogo一区二区大胆私拍| 亚洲精品粉嫩美女一区| 国产精品久久久久久久久久久久冷 | 亚洲成人福利片| 日韩精品在线免费看| 欧美三级在线看| 亚洲色图欧美视频| 亚洲欧美一区二区三区久久| 丝袜美腿av在线| 国产日韩专区在线| av日韩在线播放| 一区二区三区四区欧美| 1024精品久久久久久久久| 欧美a在线视频| 国产成人午夜99999| 中出视频在线观看| 亚洲人成小说网站色在线| 看黄色一级大片| 日韩成人xxxx| аⅴ资源天堂资源库在线| 92福利视频午夜1000合集在线观看| 成人高潮a毛片免费观看网站| 国内精品**久久毛片app| 亚洲精品成人| 亚洲免费一级视频| 欧美国产1区2区| 三级网站在线播放| 亚洲精品视频网上网址在线观看 | 99久久亚洲精品日本无码| 亚洲区在线播放| 无码小电影在线观看网站免费| 国产精品视频永久免费播放| 五月激激激综合网色播| 国内性生活视频| 91在线视频播放| 男女视频免费看| 精品va天堂亚洲国产| heyzo高清中文字幕在线| 999精品视频一区二区三区| 99热国内精品永久免费观看| 亚洲综合av在线播放| 国产精品久久久久影院老司| 性高潮视频在线观看| 日韩欧美卡一卡二| 污污片在线免费视频| 国产精品电影观看| 欧美日韩在线网站| jizz18女人| 亚洲欧洲日韩综合一区二区| 国产一区二区在线视频观看| 久久精品国产亚洲| 秋霞一区二区| 久久精品xxx| 91片黄在线观看| 波多野结衣在线电影| 色阁综合伊人av| 日韩精品一区国产| 男人插女人视频在线观看| 黄色日韩网站视频| 久草视频在线资源站| 日韩成人性视频| 日本在线精品| 波多野结衣三级在线| 国产精品自拍网站| 国产精品18在线| 一本大道久久精品懂色aⅴ| 成人无码一区二区三区| 97视频人免费观看| 国产在线观看91一区二区三区| 国产欧美日韩小视频| 91免费在线视频观看| 中文区中文字幕免费看| 美女福利视频一区| 欧美激情极品| 九九精品久久久| 亚洲国产视频一区| 国产女人在线视频| 3d动漫啪啪精品一区二区免费| 日韩欧美中字| 激情av中文字幕| 色国产综合视频| 九一国产在线| 91亚洲精品久久久| 在线综合视频| sm捆绑调教视频| 亚洲第一偷拍网| av中文在线资源库| 日韩高清国产精品| 豆国产96在线|亚洲| 免费毛片在线播放免费| 日韩欧美国产三级电影视频| 国产高清自产拍av在线| 午夜啪啪免费视频| 91亚洲国产成人精品一区二三| 日韩精品一区二区av| 日韩网站在线观看| 亚洲欧洲色图| 一区二区在线免费观看视频| 色综合av在线| av蜜臀在线| 日本道在线视频| 国产欧美精品区一区二区三区|