我在大型項目上使用MySQL。和一些腳本使用了很多內存。 我想知道爲什麼。但是mysql不會釋放它的主要問題。MySQL不釋放內存
mysql站在單獨的服務器上。在圖表上它看起來像 http://o7.no/wMobCB 現在它開始使用它更多,然後在~20小時內mysql服務器將由看門狗(我猜是因爲它沒有足夠的內存)重新啓動。
通常需要lesse內存,但一些腳本運行後它需要更多...
這麼奇怪的行爲有什麼可什麼原因呢?
我在大型項目上使用MySQL。和一些腳本使用了很多內存。 我想知道爲什麼。但是mysql不會釋放它的主要問題。MySQL不釋放內存
mysql站在單獨的服務器上。在圖表上它看起來像 http://o7.no/wMobCB 現在它開始使用它更多,然後在~20小時內mysql服務器將由看門狗(我猜是因爲它沒有足夠的內存)重新啓動。
通常需要lesse內存,但一些腳本運行後它需要更多...
這麼奇怪的行爲有什麼可什麼原因呢?
如果看門狗啓動並殺死MySQL,那麼出現了一些問題。確保my.ini中的內存設置不是。
我也遇到過,如果你的表損壞了,那麼查詢實際上會運行很長時間,因爲守護進程重新啓動會死掉,所以可能會發生這個問題。但是,它始終與運行的查詢有關。使用mytop或類似,並嘗試確定是否是這種情況。
我有慢日誌,從2到4我看到那裏只有2個SQL查詢(long_query_time = 10) '#時間:120306 2:21:46 #Query_time:15.133891 Lock_time:0.000097 Rows_sent:372 Rows_examined:372 SET時間戳= 1330993306; SHOW TABLE STATUS FROM'db' LIKE '%'; #時間:120306 2時22分11秒 #Query_time:12.601633 Lock_time:0.000074 Rows_sent:423 Rows_examined:423 SET時間戳= 1330993331; SHOW TABLE STATUS FROM'db' LIKE'%';' 所以在慢日誌中沒有更多凌晨2點到凌晨4點。但記憶從2日凌晨4點開始增長。這些查詢如何做到這一點? – user1016265 2012-03-06 11:04:42
我不確定slow_log實際上是否設法記錄一個強制你的mysql服務器崩潰的查詢。因爲它可能在服務器完成執行時執行(記錄實際使用的時間)。您可以創建一個cron作業,每隔5分鐘拍攝一次當前正在運行的查詢的快照,並將其放入日誌文件中。 – jishi 2012-03-06 17:39:37
「在一些腳本運行後,它需要越來越多。」這個腳本是做什麼的? – MrCode 2012-03-06 09:20:49
大多數數據庫服務器將使用盡可能多的內存,因爲它可以提高性能。這很可能只是其正常工作方式的一部分。你有任何跡象表明它*不應該這樣做? – deceze 2012-03-06 09:23:45
沒有深入瞭解您的腳本的詳細信息,您是否可以記錄緩慢的查詢並找到有問題的問題? – Ynhockey 2012-03-06 09:27:16