手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2020年09月13日的文章

记录一次数据库无法访问的处理

 很突然,线上有一台服务器,突然报表不存在。所有的项目只要涉及到数据库的,都直接报表不存在。SSH到服务器上一看,进程也活着,目录下的文件也存在着,怎么就表不存在了呢?

当时也没有注意,觉得可能是程序出错了。就restart了一下数据库,结果,这回出大事了,数据库无法启动。再启动,仍然是这个问题。连忙看了一下日志,发现报错原因居然是磁盘满了。这,不科学啊。df -h 看一下,果然,系统盘自带的20G,剩余空间为0。

怎么办?先清一下apt-cache,发现多出100多M的空间,尝试启动了一下,果然数据库启动了。再检查到底是谁占了?直接du -sh  /var/log。居然只有200M,那是怎么回事呢?

继续 找,du -sh 一个目录一个目录的看。发现居然是mail目录写满了,一个mail文件。17G,用tail -n 1000 看了一下。文件居然都来自crontab ,再打开crontab -l,才发现,原来是有一个5年前的svn的勾子在运行。这个勾子,每5秒一次,就这样辛苦的运行了5年,终于通过邮件,硬生生的将磁盘写满了。

知道问题所在就简单了。关闭crontab (因为已经不用了)。同时清空邮件文件。再df -h,发现多出17G空间。好嗨森

 

Git:Out of memory, malloc failed解决

 本来我是应该不会遇到这种问题的吧?只是在用composer的时候,因为dcat-admin经常更新,但release版本又比较慢。所以就直接引用他的git了。本地无所谓,毕竟我有32G内存,上线后,在composer update的时候,报out of memory.

网上不少的例子都是说:git config --global pack.windowMemory 1024m,我这样试了之后没有解决
于是:

git config --global pack.windowMemory 1g
git config --global pack.packSizeLimit 1g

git config --global pack.deltaCacheSize 1g

git config --global core.packedGitLimit 1g

git config --global core.packedGitWindowSize 1g

还是没有用。再找资料的时候有看到说,可能是因为没有swap空间,即使你的内存大,没有swap也可能会有问题。于是看了一下,确实:free -m的时候。swap确实是0,参考:https://stackoverflow.com/questions/14038074/git-pull-fatal-out-of-memory-malloc-failed

好吧,几步操作:

1、dd if=/dev/zero of=/root/myswapfile bs=1M count=1024

2、chmod 600 /root/myswapfile

3、mkswap /root/myswapfile

4、swapon /root/myswapfile

5、vim /etc/fstab
/root/myswapfile               swap                    swap    defaults        0 0

然后就一切OK了,没有好好排版。因为,断断续续的写了三天。中间还断过一次。忍忍吧(等什么时候换laravel后台再好好弄弄)