**示例支援
平台: centos 6.3
python: 2.7.14
**示例: 選單 - python踩坑指南**示例
長期執行的daemon程序或者socket測試類程序, 經常遇到的坑是:
ioerror: [errno 24] too many open files
即程序遇到 io 錯誤, 無法開啟更多的檔案.
一般從兩個方面入手:
a. 誰開啟誰關閉是個普適的原則:
短暫的檔案讀寫開啟推薦使用 pythonic 的 with statement
# with 語法會在生命週期後自動關閉開啟的檔案 fdb. 檢查檔案 fd 是否存在洩漏with open('***x_path.file', 'w') as fhandle:
fhandle.dosth()
系統設計階段一般會預估系統總體可開啟的 fd 情況. 當出現如下情況時可能出現了洩漏 bug
python 基礎庫 cup 提供對程序開啟 fd 的支援, 詳見示例**.
以centos 6.3 linux系統
為例, 檢視 /etc/security/limits.conf 獲得系統軟硬限資源
* soft nofile 10240其中, 使用者不能突破系統的硬線* hard nofile 10240
hard nofile limit
.
使用者也可以通過 shell 命令 ulimit -n 來限定該 shell 啟動的所有程序的 nofile
ulimit -a
可以檢視當前使用者被設定的限制, 示例:
[test@agent1 ~]$ ulimit -acore file size (blocks, -c) 0
.......
open files (-n) 10240
.....
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Python 多程序 踩坑記
話不多說,python多程序要匯入包from multiprocessing import pool 具體使用方法如下 def func i print run task s.os.getpid t time.time do some operations print task s runs 0.2...
python3爬蟲踩坑記錄篇(一)
最近在寫 的時候經常報錯,能力有限,再此只提供解決辦法,如有錯誤請及時糾正 1 scrapy做post提交data鍵值都是字串,如有漢字或數值型別先轉字串 yield scrapy.formrequest url start url,headers headers,method post formd...
python3爬蟲踩坑記紀錄篇(二)
1首先這兩天遇到執行緒鎖的問題不涉及鎖機制,只改 執行緒鎖的時候一定要鎖上全域性變數,區域性變數或沒鎖的情況都會造成程式重複 mutex threading.lock 改寫後方案 with mutex for i in range 1000000 鎖定期間,其他執行緒不可以幹活 num 1原方案 當...