標籤:swap 日誌 修改 efault 注釋 pap scom href mysql
如題,最近http://www.12reads.cn/ 的MYSQL經常掛,最近掛的LOG:
At time: Wed Dec 7 09:15:01 CST 2016 :MySQL error stop .At time: Wed Dec 7 09:30:01 CST 2016 :MySQL error stop .At time: Wed Dec 7 10:00:02 CST 2016 :MySQL error stop .At time: Mon Dec 19 04:30:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 04:45:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 05:00:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 05:15:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 05:30:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 05:45:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 06:00:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 06:15:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 06:30:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 06:45:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 07:00:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 07:15:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 07:30:02 CST 2016 :MySQL error stop .At time: Mon Dec 19 07:45:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 08:00:02 CST 2016 :MySQL error stop .At time: Mon Dec 19 08:15:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 08:30:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 08:45:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 09:00:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 09:15:02 CST 2016 :MySQL error stop .At time: Mon Dec 19 09:30:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 09:45:01 CST 2016 :MySQL error stop .At time: Mon Dec 19 10:00:01 CST 2016 :MySQL error stop .At time: Tue Dec 20 23:15:02 CST 2016 :MySQL error stop .At time: Tue Dec 20 23:30:01 CST 2016 :MySQL error stop .At time: Tue Dec 20 23:45:01 CST 2016 :MySQL error stop .At time: Thu Dec 22 11:56:04 CST 2016 :MySQL error stop .At time: Thu Dec 22 21:26:14 CST 2016 :MySQL error stop .At time: Thu Dec 22 21:56:12 CST 2016 :MySQL error stop .At time: Sat Dec 24 12:02:17 CST 2016 :MySQL error stop .At time: Sat Dec 24 12:08:01 CST 2016 :MySQL error stop .At time: Sat Dec 24 12:10:01 CST 2016 :MySQL error stop .
而查看MYSQL錯誤記錄檔,有提示:
[ERROR] InnoDB: Unable to lock /usr/local/mysql/var/ibdata1, error: 11
error 11在mysql中是資源臨時不可用。
找了一堆原因未果,最好想是不是記憶體瓶頸了?
查看了下伺服器一直沒開房SWAP,所以開啟了下了,觀察看看是不是情況有所改變。
以下是開啟SWAP的具體步驟:(http://www.12reads.cn/目前2G記憶體,所以我選擇了bs=1m,count=2048,也就是分配2G給SWAP來用。)
1、建立用於交換分區的檔案:
dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block
注:block_size、number_of_block 大小可以自訂,比如 bs=1M count=1024 代表設定 1G 大小 SWAP 分區。
2、設定交換分區檔案:
mkswap /mnt/swap
3、立即啟用交換分區檔案
swapon /mnt/swap
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改為 swapon -a
4、設定開機時自啟用 SWAP 分區:
需要修改檔案 /etc/fstab 中的 SWAP 行,添加
/mnt/swap swap swap defaults 0 0
注:/mnt/swap 路徑可以修改,可以根據建立的 SWAP 檔案具體路徑來配置。
5、修改 swpapiness 參數
在 Linux 系統中,可以通過查看 /proc/sys/vm/swappiness 內容的值來確定系統對 SWAP 分區的使用原則。當 swappiness 內容的值為 0 時,表示最大限度地使用實體記憶體,實體記憶體使用完畢後,才會使用 SWAP 分區。當 swappiness 內容的值為 100 時,表示積極地使用 SWAP 分區,並且把記憶體中的資料及時地置換到 SWAP 分區。
查看修改前為 0,需要在實體記憶體使用完畢後才會使用 SWAP 分區:
可以使用下述方法臨時修改此參數,假設我們配置為空白閑記憶體少於 10% 時才使用 SWAP 分區:
echo 10 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系統重啟之後也生效的話,可以修改 /etc/sysctl.conf 檔案,並增加以下內容:
# vim /etc/sysctl.conf
vm.swappiness=10
# sysctl -p
關閉 SWAP
當系統出現記憶體不足時,開啟 SWAP 可能會因頻繁換頁操作,導致 IO 效能下降。如果要關閉 SWAP,可以採用如下方法。
1、free -m 查詢 SWAP 分區設定:
2、使用命令 swapoff 關閉 SWAP,比如:
swapoff /mnt/swap
3、修改 /etc/fstab 檔案,刪除或注釋相關配置,取消 SWAP 的自動掛載:
4、 通過 free -m 確認 SWAP 已經關閉。
5、 swappiness 參數調整:
可以使用下述方法臨時修改此參數,這裡配置為 0%:
echo 0 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系統重啟之後也生效的話,可以修改 /etc/sysctl.conf 檔案,並增加以下內容:
# vim /etc/sysctl.conf
vm.swappiness=0
# sysctl -p
MYSQL經常掛,懷疑記憶體不夠,加SWAP最佳化