伺服器記憶體佔用過高導致資料庫服務關閉,網站無法登陸的錯誤詳解
- 2019 年 11 月 27 日
- 筆記
伺服器記憶體佔用過高導致資料庫服務關閉,網站無法登陸的錯誤詳解-製作swap交換區加大記憶體
這段時間經常網站會奔潰無法打開,返回的錯誤都是資料庫錯誤,多次整修一般是重啟apache之類,今天實在無法忍受這樣的經常奔潰,so,請超哥出山檢查下伺服器的問題。現在記錄下整個檢測問題和整修的過程!
1:原來經常出現的問題–資料庫連接錯誤(如圖)

檢查了帳號密碼之類沒有錯誤,於是ssh進入伺服器重啟apache和資料庫。但是過不了多久還是會複發。。最嚴重的時候即使重啟也無法恢復。。只能回滾伺服器。
2:最嚴重時候的錯誤資訊:

3:請教超哥開始整修:
他檢查了記憶體,然後說,問題不大,就是記憶體太低而apache2是罪魁禍首,你輸入命令
free -m查看記憶體情況

基本可以說記憶體全滿,而你的swap估計是設置問題沒有正常啟用,
top -b -n1 :再看看你的進程記憶體佔用情況

3
基本都是apache2佔用了大堆。300M。而總共記憶體在500M。。好霸道的apache。。
4:記憶體佔用過高,開始清理:
本網站開了四個埠,做了4個wordpress的部落格和一個online-oj。。這些肯定很佔用記憶體。so。果斷清理掉。rm 之。
5:清理完之後就是

整個世界都美好多了。
6:然後開始整swap。
這個就困難多了。SWAP 分區在一些情況下可以提升 Linux 作業系統性能,但在某些情況下又會成為系統運行的瓶頸,
- 在空間合適處創建swap文件 # mkdir swap
- # cd swap
- # dd if=/dev/zero of=swapfile bs=1024 count=10000
- 10000+0 records in
- 10000+0 records out
- # ll
- # mkswap swapfile
- # swapon swapfile
- 然後,,主要是在/proc/sys/vm/swappiness文件我沒有寫許可權,,
- 解決方案是:輸入命令 sysctl vm.swappiness=10

成功!
7:然後再次查看記憶體。
記憶體還是比較高,雖然不至於完全奔潰,總是在奔潰的邊緣,so,,問題還是出先沒有關閉apache的進程,還是考慮下怎麼換成nginx吧,。.