現在使用的 Centos7.2 系統,數據庫版本是 Mariadb5.5.52.
很多次打開網站時提示數據庫鏈接錯誤,于是進入命令行中查找數據庫日志文件查找原因:
Log報錯信息.png
發現了是內存不足導致數據庫自動關閉.
運行下列語句查看服務器內存使用情況:
#[root@VM_247_254_centos ~]free -m
內存信息.png
Swap空間的作用可簡單描述為:當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用.
于是在服務器內存不足的情況下,不能使用swap分區,導致了數據庫意外關閉.
現在來創建一個1024MB的Swap分區
- 創建swapfile
[root@VM_247_254_centos ~]# dd if=/dev/zero of=/swapfile bs=1024 count=1048576
1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 20.8217 s, 51.6 MB/s
在分配過程中會明顯感覺卡住,等待一會就能夠分配成功
2.使用下面的命令配置 swap 文件:
[root@VM_247_254_centos ~]# mkswap /swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=2c52576d-5773-4e5a-9e7e-76754c0155da
3.接下來,使用下面的命令立即啟用 swapfile
[root@VM_247_254_centos ~]# swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
4.最后,我們在 /etc/fstab 中添加下面一行,這樣可以在系統下次重啟時自動生效創建的 swapfile
[root@VM_247_254_centos ~]# vi /etc/fstab
使用vi進入到/etc/stab文件,然后通過i命令在文件最后插入下面這句
/swapfile swap swap defaults 0 0
最后該文件應該是這樣的
fstab文件.png
5.使用 cat /proc/swaps 或 free -m 查看 swapfile 的生效情況
swap分區生效情況.png
6.重啟httpd服務和mariadb服務
[root@VM_247_254_centos ~]# systemctl restart httpd.service
[root@VM_247_254_centos ~]# systemctl restart mariadb.service
在這時應該能夠解決數據庫內存不足的問題了.
參考鏈接:
mariadb 在低配 VPS 上崩潰問題