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

Python 踩坑之旅進程篇其五打不開的文件

系統 1525 0

代碼示例支持
平臺: Centos 6.3
Python: 2.7.14
代碼示例: 菜單 - Python踩坑指南代碼示例
1.1 踩坑案例
長期運行的daemon進程或者socket測試類進程, 經常遇到的坑是:

IOError: [Errno 24] Too many open files

即進程遇到 IO 錯誤, 無法打開更多的文件.

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

1.2.1 從程序優化入手
檢查文件打開是否遵循了"誰打開誰關閉"原則
文件是否存在關閉泄露
a. 誰打開誰關閉是個普適的原則:

只有邏輯設計者自己最熟悉
哪些文件 FD 需要一直維持打開狀態
哪些文件直到某個事件發生后關閉
短暫的文件讀寫打開推薦使用 pythonic 的 with statement

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

with 語法會在生命周期后自動關閉打開的文件 FD

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

系統設計階段一般會預估系統總體可打開的 FD 情況. 當出現如下情況時可能出現了泄漏 BUG

外圍監控系統發現該進程 FD 大量突破了設計預估
打開 FD 增長趨勢異常
一般隨著業務增加, FD 會線性增長, 但有限度和規律
如果增長曲線不停的出現陡峭增長且在業務低峰期也如此可能出現了泄露
Python 基礎庫 CUP 提供對進程打開 FD 的支持, 詳見示例代碼.

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

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

用戶也可以通過 shell 命令 ulimit -n 來限定該 shell 啟動的所有進程的 nofile

當然非 root 用戶是不能突破系統硬線的
用戶為了進程控制, 可以設定nofile更小
ulimit -a 可以查看當前用戶被設定的限制, 示例:

[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 技術關鍵字
Open FD
資源 Soft limit / Hard limit


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品一区二区三区免费毛片爱 | 国产一级特黄a大片免费 | 青青青永久免费视频 | 亚洲欧美精品在线 | 天天射天天操天天 | 亚洲综合视频网 | 中文字幕1区 | 日韩精品中文字幕在线观看 | 国产福利视精品永久免费 | 日韩美女视频一区 | 亚洲欧美中文字幕 | 亚洲国产人成中文幕一级二级 | 在线小视频国产 | 色另类| 99国产精品视频久久久久 | 亚洲日本高清 | 色综合视频 | 伊人久久一本 | 黄色片在线观看网站 | 在线观看日本免费视频大片一区 | 久久大胆视频 | 久久五月天综合 | 91久久夜色精品国产九色 | 国产免费资源 | 国产精品视频免费在线观看 | 91免费国产在线观看尤物 | 久久精品国产99久久3d动漫 | 国内精品久久久久久久星辰影视 | 天天干天天舔天天操 | 欧美亚洲国产日韩一区二区三区 | 日韩v在线 | 婷婷五月色综合香五月 | 99免费 | 亚洲成年人在线观看 | 91欧美在线视频 | 欧美国产伦久久久久 | 9热这里只有真品 | 国产亚洲午夜精品a一区二区 | 日韩高清成人 | 国产50岁老熟妇毛片 | 久久久精彩视频 |