亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python 踩坑之旅進(jìn)程篇其五打不開的文件

系統(tǒng) 2194 0

代碼示例支持
平臺(tái): Centos 6.3
Python: 2.7.14
代碼示例: 菜單 - Python踩坑指南代碼示例
1.1 踩坑案例
長(zhǎng)期運(yùn)行的daemon進(jìn)程或者socket測(cè)試類進(jìn)程, 經(jīng)常遇到的坑是:

IOError: [Errno 24] Too many open files

即進(jìn)程遇到 IO 錯(cuò)誤, 無(wú)法打開更多的文件.

1.2 填坑和分析
一般從兩個(gè)方面入手:

1.2.1 從程序優(yōu)化入手
檢查文件打開是否遵循了"誰(shuí)打開誰(shuí)關(guān)閉"原則
文件是否存在關(guān)閉泄露
a. 誰(shuí)打開誰(shuí)關(guān)閉是個(gè)普適的原則:

只有邏輯設(shè)計(jì)者自己最熟悉
哪些文件 FD 需要一直維持打開狀態(tài)
哪些文件直到某個(gè)事件發(fā)生后關(guān)閉
短暫的文件讀寫打開推薦使用 pythonic 的 with statement

在此推薦小編創(chuàng)建的Python學(xué)習(xí)交流群:835017344,這里是python學(xué)習(xí)者聚集地,有大牛答疑,有資源共享!有想學(xué)習(xí)python編程的,或是轉(zhuǎn)行,或是大學(xué)生,還有工作中想提升自己能力的,正在學(xué)習(xí)的小伙伴歡迎加入學(xué)習(xí)。

with 語(yǔ)法會(huì)在生命周期后自動(dòng)關(guān)閉打開的文件 FD

with open('xxxx_path.file', 'w') as fhandle:
fhandle.dosth()
b. 檢查文件 FD 是否存在泄漏

系統(tǒng)設(shè)計(jì)階段一般會(huì)預(yù)估系統(tǒng)總體可打開的 FD 情況. 當(dāng)出現(xiàn)如下情況時(shí)可能出現(xiàn)了泄漏 BUG

外圍監(jiān)控系統(tǒng)發(fā)現(xiàn)該進(jìn)程 FD 大量突破了設(shè)計(jì)預(yù)估
打開 FD 增長(zhǎng)趨勢(shì)異常
一般隨著業(yè)務(wù)增加, FD 會(huì)線性增長(zhǎng), 但有限度和規(guī)律
如果增長(zhǎng)曲線不停的出現(xiàn)陡峭增長(zhǎng)且在業(yè)務(wù)低峰期也如此可能出現(xiàn)了泄露
Python 基礎(chǔ)庫(kù) CUP 提供對(duì)進(jìn)程打開 FD 的支持, 詳見示例代碼.

1.2.2 從資源軟硬限入手
了解系統(tǒng)的資源軟硬限制
檢查進(jìn)程可打開的FD是否突破了系統(tǒng)限制
長(zhǎng)期運(yùn)行的 daemon 進(jìn)程尤其注意
以 Centos 6.3 Linux系統(tǒng) 為例, 查看 /etc/security/limits.conf 獲得系統(tǒng)軟硬限資源

  • soft nofile 10240
  • hard nofile 10240
    其中, 用戶不能突破系統(tǒng)的硬線 hard nofile limit .

用戶也可以通過 shell 命令 ulimit -n 來(lái)限定該 shell 啟動(dòng)的所有進(jìn)程的 nofile

當(dāng)然非 root 用戶是不能突破系統(tǒng)硬線的
用戶為了進(jìn)程控制, 可以設(shè)定nofile更小
ulimit -a 可以查看當(dāng)前用戶被設(shè)定的限制, 示例:

[test@agent1 ~]$ ulimit -a
core file size (blocks, -c) 0
.......
open files (-n) 10240
.....
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
1.4.1 技術(shù)關(guān)鍵字
Open FD
資源 Soft limit / Hard limit


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 成人a毛片免费全部播放 | 99精品国产三级在线观看 | 一级毛片视频在线 | 在线欧美日韩国产 | 天天摸天天舔天天操 | 青草视频.com | 青草国产精品久久久久久 | 性夜影院爽黄a爽免费看网站 | 四虎影在永久地址在线观看 | 1级毛片| 噜噜嘿在线视频免费观看 | 99在线免费观看 | 免费观看日本污污ww网站精选 | 五月亭亭激情五月 | 日本伊人色 | 日韩免费不卡视频 | 成人国产午夜在线视频 | 欧美激情视频二区三区 | 亚洲码欧美码一区二区三区 | 老司机永久免费网站在线观看 | 亚洲欧美一区二区三区在线播放 | 国产在线精品成人一区二区三区 | 久操网在线| 亚洲国产成人资源在线桃色 | 久久精品动漫99精品动漫 | 精品91在线 | 国产欧美在线视频免费 | 男女一级特黄a大片 | 欧美成人性色生活片天天看 | 天天干天天干天天天天天天爽 | 日韩一区二区三区在线免费观看 | 午夜宅男免费完整在线观看 | 一级片视频免费观看 | 99视频在线精品免费 | 超清中文乱码精品字幕在线观看 | 日韩中文字幕不卡 | 日本高清专区一区二无线 | 国产高清在线精品二区一 | 久久婷婷色一区二区三区 | 99久久国产综合精品网成人影院 | 97在线免费视频观看 |