主題: pLog v0.32的連線數攻擊 作者: TomexOu 於 二月 15, 2005, 03:47:52 下午 最近我的mysql資料庫常常連線數滿載(Too many connections)
造成pLog及相關使用程式的崩潰... 查詢了mysql連線數監控程式,發現它滿載了, 但全部來自plog的操作,可能被攻擊... 畫面如下: (http://dabu.twbbs.org/share/plog_mysql.gif) 很早就發現plog頁面的訪客數plugin很多, 大部分來自google或yahoo的搜尋,甚至也被自動貼文程式干擾 不曉得是否是pLog使用 mysql_pconnect(),容易造成佔住連線?! 若改使用一般連線模式(單純connect)可解決呢? 不曉得大家是否也發生這問題?! 主題: pLog v0.32的連線數攻擊 作者: TomexOu 於 二月 15, 2005, 04:06:17 下午 針對plog的問題,我目前先置換pLog的database核心版本(adodb v4.6)
再觀察看看! 若仍crashed,將會採用mysql_connect()來取代原先的mysql_pconnect()函式 雖然會每頁new新的連線,效能差了點,但至少不會佔住連線數process! 最後再不行,只好加大mysql的MaxConnection值,把原先的100再調大! 主題: pLog v0.32的連線數攻擊 作者: markwu 於 二月 15, 2005, 06:01:59 下午 你的這兩個問題應該都是0.32 有的『大問題』,你可以試著用 http://forum.lifetype.org.tw/index.php?topic=23.0 這裏的方法試試看。
Mark ** 已經被念了很多次 pLog 的 DBA 不太行。 pLog 程式架構很好(個人認為),但是 DBA 太差,因為我們這群人對DB都不專精,真希望有人幫忙來看看, Review 一下。 :-P 主題: pLog v0.32的連線數攻擊 作者: TomexOu 於 二月 15, 2005, 08:36:16 下午 感謝markwu的指點,看了上述的文章及far大大的說明
我做了下面的事情來改善plog的效能: 1.更新adodb元件的版本為4.6 2.為plog的tables加上index。 3.調校mysql的效能, 參考far大大的說明,再比對mysql.ini的預設值,加上: low-priority-updates=ON set-variable=join_buffer_size=16M set-variable=max_connections=500 set-variable=wait_timeout=30 query_cache_size=128M 經過以上改進,rendering plog的頁面仍很慢, 可能是query語法的原罪及smarty效能,期待plog 1.0趕緊釋出! 但我會再繼續觀察一陣子,是否仍會佔滿連線的問題。 假如再不濟,只好換掉mysql_pconnect()了, 儘管持續連結有它的好處 這一事件讓我對mysql的調校及連線有比較大的認識, 另外資料庫的query的確要多加注意,以前在上高等資料庫課程時, 單是算join的交集的數學運算式,就讓我們不敢隨便亂寫query的順序了! 主題: pLog v0.32的連線數攻擊 作者: joe 於 二月 22, 2005, 04:42:07 下午 第一次裝PLOG時就遇到這各問題,PLOG是預設用保持連結pconnect,所以會造成連結數過多的問題,人數過多就會造成無法連結資料庫的問題,若只是去提高MYSQL的連結數,仍是治標不治本的方法
解決的方法是將mysql_pconnect改成mysql_connect 你只要找到class/database/adodb/drivers/adodb-mysql.inc.php 理面有兩各部份是用mysql_pconnect,把它改成mysql_connect |