ECS記憶體佔用高導致wordpress資料庫經常掛掉的兩種解決方法
搭建的網站,用的是一個超級簡單的主題,阿里的免費虛機,純粹的文字內容,幾乎沒有外掛。用的是正版begin主題,外掛儘可能少,最近連seo外掛都沒用了,但是依舊經常當機,動不動提示資料庫連線錯誤,重啟立刻恢復。看了看,記憶體佔用一直在90%以上,所以懷疑是主題功能太多,佔用記憶體高,導致mysql掛掉。幾乎一天掛一次了。
目前反而免費虛機穩定,不過一被攻擊就停機4小時實在受不了,不過反正就是放自己文字,沒什麼別的用處,也沒想要人訪問,所以無所謂了。飛向電影還是希望能有些訪問的,但是一直經常性的出現mysql掛掉的問題,自己網站運維確實是小白,心碎。
關於ECS上搭建 網站,mysql掛掉的問題,網上好多建議用阿里雲RDS,但是價格太高,目前低配一年就1000多,比ECS價格貴得多。對於一個沒收入的個人小站來說,沒必要投這個錢。也有建議升級記憶體的,但是我不確定是不是確實就僅僅是記憶體問題,留待觀察,有必要的話倒是可以升級一下。
問度娘了之後,做了些修改。
一:透過修改WordPress自身檔案修改放寬記憶體限制(如果你也是由於使用過多外掛造成該問題的,建議使用此方法)
只要開啟WordPress根目錄wp-includes資料夾下default-constants.php檔案,搜尋“set memory limits”找到如下程式碼
// set memory limitsif ( !defined('WP_MEMORY_LIMIT') ) {if( is_multisite() ) {define('WP_MEMORY_LIMIT', '64M');} else {define('WP_MEMORY_LIMIT', ‘40M');}}if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {define( 'WP_MAX_MEMORY_LIMIT', '256M' );}
然後把define(‘WP_MEMORY_LIMIT’, ‘40M’);32M這個預設值修改為更大一些的值,我把它修改為512M!
二:修改php-fpm.conf的pm.start_servers、pm.min_spare_servers、pm.max_spare_servers等項
據說問題出在PHP-CGI會釋放記憶體,但並不會把記憶體歸還系統,所以當過多的PHP-FPM子程式存在時,記憶體就會一點點被吃幹,最終導致溢位。
php-fpm.conf檔案在/alidata/server/php/etc裡,找到並做了幾項修改:
開啟編輯這個檔案,可以透過FTP或者LINUX命令列進行修改。主要涉及幾個引數。
pm 這個是設定執行方式的,分別是static(靜態)或者dynamic(動態)
預設應該是在214行左右,顯示為?pm = dynamic,意思就是動態方式,如果記憶體小,比如512M,1G,2G之類,建議使用動態。
pm.max_children:靜態方式下開啟的php-fpm程式數量,這個是有在pm模式為static的情況下生效。
pm.start_servers:動態方式下的起始php-fpm程式數量,這個是pm位dynamic模式下需要設定的引數,意思就是啟動執行時建立的起始php-fpm程式數量,預設20,暫時改成pm.start_servers =?3
pm.min_spare_servers:動態方式下的最小php-fpm程式數,預設5,暫時改成pm.min_spare_servers =?3
pm.max_spare_servers:動態方式下的最大php-fpm程式數量,預設60,暫時改成pm.max_spare_servers =?10
pm.max_requests:接受多少次請求後自動重啟程式的,預設是500,暫時改成pm.max_requests = 200
重啟後睡覺了(呃,太晚了),第二天看了下雲監控,記憶體佔用從98%,降到了54%.
目前就改了這兩處,留待觀察。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69992808/viewspace-2757285/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql佔用記憶體高的一種解決方法MySql記憶體
- SQL Server資料庫佔用記憶體過多的解決方法SQLServer資料庫記憶體
- win10記憶體佔用高解決方法Win10記憶體
- 電腦記憶體佔用過高怎麼辦 電腦記憶體佔用過高解決方法記憶體
- win10記憶體佔用高怎麼解決_win10系統記憶體佔用高解決步驟Win10記憶體
- 解決SQL Server資料庫佔用記憶體過多的問題SQLServer資料庫記憶體
- win10開機記憶體佔用高怎麼解決_win10開機後記憶體佔用高的解決措施Win10記憶體
- 解決NSTimer迴圈引用導致記憶體洩漏的六種方法記憶體
- SQL Server 2008 R2佔用記憶體越來越大兩種解決方法SQLServer記憶體
- weblogic記憶體佔用等問題的解決方法Web記憶體
- win10開機記憶體佔用60%怎麼辦 解決開機執行記憶體佔用率過高的方法Win10記憶體
- win10 audiodg狂佔記憶體怎麼辦_win10 audiodg佔用記憶體過高的解決方法Win10記憶體
- 共享記憶體段未釋放導致資料庫記憶體被耗盡記憶體資料庫
- win10大量的服務主機電腦記憶體佔用高解決方法Win10記憶體
- 如何檢視MySQL資料庫佔多大記憶體,佔用太多記憶體怎麼辦?MySql資料庫記憶體
- win10怎麼關閉佔用記憶體的服務_win10關掉佔用記憶體服務方法Win10記憶體
- 異常程式導致大量資源佔用
- win10系統快速啟動佔用記憶體如何解決_win10快速啟動佔用記憶體高的解決教程Win10記憶體
- win10記憶體佔用率高怎麼解決 win10記憶體佔用率突然爆滿處理方法Win10記憶體
- win10 microsoft edge佔用記憶體高怎麼辦_win10 microsoft edge佔用記憶體高處理方法Win10ROS記憶體
- 解決Apache長時間佔用記憶體大的問題,Apache 記憶體優化方法Apache記憶體優化
- Java中的CPU佔用高和記憶體佔用高的問題排查Java記憶體
- 實體記憶體過高怎麼辦 實體記憶體使用率高的解決方法記憶體
- 資源記憶體佔用記憶體
- win10工作管理員記憶體佔用過高怎麼解決Win10記憶體
- 異常連線導致的記憶體洩漏排查記憶體
- mongodb 對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- MongoDB對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- win10電腦記憶體過高怎麼辦 win10記憶體佔用過高的方法Win10記憶體
- win10記憶體佔用過高程式沒多少怎麼辦 win10記憶體佔用過高的方法Win10記憶體
- Windbg分析高記憶體佔用問題記憶體
- 導致HTTP超時的兩種常見原因HTTP
- 瀚高資料庫記憶體結構資料庫記憶體
- 解決MySQL的主從資料庫沒有同步的兩種方法MySql資料庫
- filebeat實踐-記憶體佔用-最大記憶體佔用記憶體
- 監控某程式記憶體佔用異常記憶體
- ubuntu解決GPU視訊記憶體佔用問題UbuntuGPU記憶體
- 利用Windbg分析高記憶體佔用問題記憶體