※ 引述《ROCKIT (ROLL)》之銘言:
: 各位長官~~~
: 我最近要把大量的文字檔資料寫入資料庫
: 在程式中已經做了set_time_limit(0)的動作
: 把PHP升級到5.3.5~~也多了garbage_collection的機制
: 改善了之前常常out of memory的問題
: 但是現在遇到更棘手的問題....
: 當程式跑了一段時間之後 會跳出
: Error 101 (net::ERR_CONNECTION_RESET):
: 之後我開的所有php程式就會中斷...
: google之後 看到有人是改host檔 但是好像也沒用...
: 在我還是5.2.X版的時候 一個程式跑個幾天都沒甚麼問題
: 只是要parser資料的時候 常常因為物件的建立而out of memory
: 升級之後反而遇到這個我更沒有idea的問題
: 請問有人有類似的經驗嗎?? 或者有其他解決方法可以提供我參考
: 先謝謝大家了!!
不太確定您的問題,不過依照敘述來猜測,你可以檢查一下以下地方
1. 硬體方面:網路設備是否有問題
2. 軟體方面:檢查 MySQL 的環境設定,所有 MySQL 關於連線逾時的變數,
在 System Variables 這邊可以看到
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html
可以先試著把逾時時間調長,例如 net_read_timeout, net_write_timeout,
interactive_timeout 和 wait_timeout 。以 net_read_timeout 為例,系統預設
只有 30 秒,write 則是 60 秒。不過你比較會遇到的情況應該是
interactive_timeout 和 wait_timeout ,但兩者預設逾時值是 8 小時,如果真的
超過,那也卡太久了.. orz
建議可以在程式裡面插 error_log 每塞一次資料就紀錄下來當時的時間點,這樣可以
看出塞資料進去的時間分佈,也可以順便看出來是否真的是因為資料的關係造成逾時。
另外,也要注意一下在 PHP 執行階段中,MySQL 是否有被重新啟動過。
--
The Internet: where men are men, women are men, and children are FBI agents.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.89.121.16