伺服器記憶體佔用過高導致資料庫服務關閉,網站無法登陸的錯誤詳解

  • 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吧,。.