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記憶體
- 電腦記憶體佔用過高怎麼辦 電腦記憶體佔用過高解決方法記憶體
- 解決NSTimer迴圈引用導致記憶體洩漏的六種方法記憶體
- win10記憶體佔用高怎麼解決_win10系統記憶體佔用高解決步驟Win10記憶體
- win10開機記憶體佔用高怎麼解決_win10開機後記憶體佔用高的解決措施Win10記憶體
- win10 audiodg狂佔記憶體怎麼辦_win10 audiodg佔用記憶體過高的解決方法Win10記憶體
- win10開機記憶體佔用60%怎麼辦 解決開機執行記憶體佔用率過高的方法Win10記憶體
- 如何檢視MySQL資料庫佔多大記憶體,佔用太多記憶體怎麼辦?MySql資料庫記憶體
- win10怎麼關閉佔用記憶體的服務_win10關掉佔用記憶體服務方法Win10記憶體
- win10系統快速啟動佔用記憶體如何解決_win10快速啟動佔用記憶體高的解決教程Win10記憶體
- win10記憶體佔用率高怎麼解決 win10記憶體佔用率突然爆滿處理方法Win10記憶體
- win10大量的服務主機電腦記憶體佔用高解決方法Win10記憶體
- win10 microsoft edge佔用記憶體高怎麼辦_win10 microsoft edge佔用記憶體高處理方法Win10ROS記憶體
- 異常連線導致的記憶體洩漏排查記憶體
- 資源記憶體佔用記憶體
- Java中的CPU佔用高和記憶體佔用高的問題排查Java記憶體
- mongodb 對記憶體的嚴重佔用以及解決方法MongoDB記憶體
- win10工作管理員記憶體佔用過高怎麼解決Win10記憶體
- 解決MySQL的主從資料庫沒有同步的兩種方法MySql資料庫
- win10記憶體佔用過高程式沒多少怎麼辦 win10記憶體佔用過高的方法Win10記憶體
- win10電腦記憶體過高怎麼辦 win10記憶體佔用過高的方法Win10記憶體
- 導致HTTP超時的兩種常見原因HTTP
- 瀚高資料庫記憶體結構資料庫記憶體
- Windbg分析高記憶體佔用問題記憶體
- win10系統一開機記憶體就佔用50%的解決方法Win10記憶體
- ubuntu解決GPU視訊記憶體佔用問題UbuntuGPU記憶體
- C++ vector 釋放記憶體的兩種方法C++記憶體
- MySQL建立資料庫的兩種方法MySql資料庫
- win10正式版記憶體佔用高怎麼辦_win10正式版記憶體佔用突然變高如何解決Win10記憶體
- Redis資料已經過期了,為什麼還佔用記憶體?Redis記憶體
- Linux/Centos檢視程式佔用記憶體大小的幾種方法總結LinuxCentOS記憶體
- oracle RDBMS Kernel Executable 佔用記憶體過高Oracle記憶體
- 利用Windbg分析高記憶體佔用問題記憶體
- Win10記憶體佔用過多怎麼辦 win10清理記憶體佔用的方法Win10記憶體
- 記錄佇列序列化模型導致的記憶體溢位的解決方案佇列模型記憶體溢位
- win10記憶體佔用率高實際沒有東西最佳解決方法Win10記憶體
- Win10系統安裝中文IME導致CPU佔用率過高的解決方法Win10
- Win10開機後記憶體佔用高80%以上怎麼回事 Win10開機後記憶體佔用高80%以上的處理方法Win10記憶體