07月05, 2017

通过设置Linux启动任务和定时任务优化搬瓦工

之前我自己通过搬瓦工搭建了个人服务器和VPN,参见用搬瓦工搭建个人博客和VPN,有朋友按我的做以后给我反馈,还需要设置启动服务,不然会导致重启以后无法使用。于是我就再介绍一下我个人的一些优化,都是很粗浅的用法,大神勿笑。

首先,就是在启动项里把ss和pm2设置好,这也是安装其他服务的时候需要做的一步:

vi /etc/rc.d/rc.local

在最后加上:

/usr/bin/killall ssserver

/usr/bin/ssserver -c /etc/shadowsocks.json --user root -d start

/usr/local/bin/pm2 startOrRestart /home/download/firekylin/pm2.json

这样重启linux也不怕了。

在使用个人博客的时候,还发生过一个问题,就是写完文章以后无法保存,后来发现是内存被用光了,输入命令

ps -aux

查看,发现启动了很多的php-fpm进程,每个进程使用了30M左右的内存,对于总共512M的内存来说可是无比巨大的压力。

php-fpm进程占用大量内存

通过查找资料知道,php-fpm进程在使用完毕之后是不会释放给操作系统的。于是就要进行一些设置:

whereis php-fpm   找到php-fpm配置的位置,在/etc/php-fpm.d/文件夹中

php-fpm配置的位置

我的文件夹里面只有一个文件,打开发现里面的注释写得非常详细了,可以根据注释进行调整,如果不想看注释,也可以找到如下几个参数进行设置:

pm = dynamic   工作进程数动态分配
pm.max_children = 6    最大工作进程数
pm.start_servers = 3    起始工作进程数
pm.min_spare_servers = 3    最小空闲进程数
pm.max_spare_servers = 5   最大空闲进程数
pm.max_requests = 50    最大处理请求数,达到这个请求就会重启进程

其中的数值如何设置呢,主要是根据服务器内存大小来设置,以我的服务器为例,每个进程30M来算,6个进程消耗将近200M内存,已经相当可观了,在访问量不高的情况下已经足够满足需要了。

修改完成以后,需要重启php-fpm服务:

service php-fpm restart

但我还增加了一个定时执行的脚步,每天清理一次php-fpm进程:

vi /home/php_script/php_fpm_killer.sh


#!/bin/bash
log=/home/www/scripts/php-fpm.log

echo `date "+%F %H:%M:%S"` >> $log
for PID in `ps aux|grep php-fpm|grep -v grep|awk '{if($4>=1)print $2}'`
do
    kill -9 $PID
    echo $PID >> $log
done

然后设置定时任务,每天早上3点30执行 一次清理:

crontab -e
然后输入
30 3 * * * /home/php_script/php_fpm_killer.sh

这样设置好以后,就不怕内存不够了

转载注明出处:十个雨点

本文链接:http://www.siki.space/post/improve_vps_through_crontab.html

-- EOF --

Comments