MYSQL經常掛,懷疑記憶體不夠,加SWAP優化

2021-07-25 14:36:11 字數 4538 閱讀 2959

如題,最近 的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 .

[error] innodb: unable to lock /usr/local/mysql/var/ibdata1, error: 11
error 11在mysql中是資源臨時不可用。

找了一堆原因未果,最好想是不是記憶體瓶頸了?

檢視了下伺服器一直沒開房swap,所以開啟了下了,觀察看看是不是情況有所改變。

以下是開啟swap的具體步驟:(目前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、設定交換分割槽檔案:

3、立即啟用交換分割槽檔案

:如果在 /etc/rc.local 中有swapoff -a 需要修改為 swapon -a 

4、設定開機時自啟用 swap 分割槽:

需要修改檔案 /etc/fstab 中的 swap 行,新增

:/mnt/swap 路徑可以修改,可以根據建立的 swap 檔案具體路徑來配置。

5、修改 swpapiness 引數

檢視修改前為 0,需要在物理記憶體使用完畢後才會使用 swap 分割槽:

可以使用下述方法臨時修改此引數,假設我們配置為空閒記憶體少於 10% 時才使用 swap 分割槽:

若需要永久修改此配置,在系統重啟之後也生效的話,可以修改 /etc/sysctl.conf 檔案,並增加以下內容:  

# vim /etc/sysctl.conf# sysctl -p
當系統出現記憶體不足時,開啟 swap 可能會因頻繁換頁操作,導致 io 效能下降。如果要關閉 swap,可以採用如下方法。

1、free -m 查詢 swap 分割槽設定:

2、使用命令 swapoff 關閉 swap,比如:

4、  通過 free -m  確認 swap 已經關閉。

可以使用下述方法臨時修改此引數,這裡配置為 0%:

若需要永久修改此配置,在系統重啟之後也生效的話,可以修改 /etc/sysctl.conf 檔案,並增加以下內容:

# vim /etc/sysctl.conf# sysctl -p

1G記憶體VPS安裝 mysql5 6 經常掛

1 核 1 gb 1 mbps 系統盤 普通雲硬碟 上個月的時候將機器上的mysql公升級到了5.6,因為更高版本的明確要求記憶體1.5gb以上,只能試試5.6,剛公升完級沒多久mysql就掛掉了,然後是重啟,不久之後掛掉,然後再重啟的迴圈,很是讓人惱火。各種優化方案不斷嘗試,沒有一點作用。裝的ub...

MySQL經常忘的語句

3.分頁查詢 4.總結 雖然這是基礎的,但是還是記一下,以便之後鞏固。alter table a2 modify column id int default 10 alter table a2 modify column id int alter table a2 modify column id ...

mysql經常掛掉 mysql老是掛的問題

190629 10 44 21 error mysqld out of memory needed 128917504 bytes 190629 10 44 21 error mysqld out of memory needed 96681984 bytes 190629 10 44 23 inn...