转载注明出处:简书-十个雨点
之前我自己通过搬瓦工搭建了个人服务器和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
这样设置好以后,就不怕内存不够了
网友评论