创建Linos虚拟机的时候选择了默认,使用VestaCP的时候又用了默认。
两个默认导致1G内存吃紧,MySQL经常因为申请不到空间而挂掉,而MySQL的监视线程就会去重启MySQL,重启时内存仍旧不足,就此挂掉。
尝试了好多办法缩减https和mySQL服务所占用的内存,有好用的有不好用的,总之杯水车薪。
既然节流不行,那就换个思路试试开源吧。关键字一搜,果然CentOS增加swap文件是非常方便的。
所以这是一个说穿了一文不值的解决方案。
1.用命令查看你的内存和扩展分区是不是不够用
swapon -s free -m
够用了非要加也没人拦着。
2.查看硬盘空间
df -h
3.创建SWAP文件
sudo fallocate -l 1G /swapfile
1G是大小,按需。创建到根下。
4.把文件转成SWAP
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
可以用
free -m
验证是否创建成功
5.固定文件
上面创建的文件在重启以后需要重新转换,所以要在启动的时候添加选项
sudo vi /etc/fstab
在最后增加
/swapfile swap swap sw 0 0
大功告成!
你把`performance_schema = 0`配上,mysql能省不少内存。我这无swap才512MB内存的就是这么过日子的。
试过了。我搜到的是`performance_schema = off`,不明显啊。
那就奇怪了。你的MySQL是什么版本?这个参数是5.6和5.7的。
如果用5.5,内存本身就应该很省,但是5.5的限制太多了(比如字段长度太小)
MySQL运行时站过的内存总不释放,除非系统紧缺,所以SWAP也要小心设置大小。
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1
VestaCP的默认,没改过。
MariaDB啊,而且对应的是5.5,没有这个参数。
也有你解决不了的
zhe今天有你折腾的了。
哟西 你腻害呀 好容易来一次 如此深奥
这些都是比较实用的,支持
Ctrl+p,搞定,收工。以后搬迁海外或许能用得到。
你的mysql版本5.几的,1G内存老老实实5.5
原来1G的机器MySQL会内存不足- – 我一直以为MySQL在任何环境下运行都没事的。。
离开配置谈性能都是扯淡。
请问这个code高亮显示插件是什么?
一个js,叫code prettify。没有插件,照着说明文档自己加的。你要想用可以点我github,代码我开源了。
JS地址:
https://github.com/google/code-prettify
非常感谢
其实有一个(我认为)是最好用的代码高亮插件,叫作 crayon。
博主这个文章不错,但是一定一定要注意安全问题,一定要把 swapfile 的权限设为 400,也就是除了root 之外没人可以有任何权限。
另外就是网上其他教程说创建指定大小的文件可以用 dd :
dd if=/dev/zero of=./swapfile bs=1M count=512
意思是往硬盘上写零,每次写 1 MB ,写 512 次。
但是我感觉其实博主的这个方法可能好点,假如它是直接分配空间的话,那就非常迅速了。深挖了一下,其实 fallocate 是 linux 里专有的一个系统调用,也是学到了新的东西。
感谢博主分享。