坑一(解决在运行npm出现的报错):
昨日我在运行安装npm依赖的时候弹出了这个报错,所以我们简单的来解决下。
宝塔安装完环境后,使用 npm,无论什么命令,都带有报错信息。
报错为:
npm WARN config init.module Use `--init-module` instead.
解决方法:
找到一下文件:/www/server/nodejs/v16.17.0/etc/npmrc
将 init.module 修改为 --init-module。
也可以到宝塔的nodejs版本管理器,里面已安装的node环境变量里改即可完美解决。
坑二(腾讯云服务器安装受控端失败处理办法):
pv-1.4.6-1.el7.x86_64.rpm FAILED
http://mirrors.tencentyun.com/epel/7/x86_64/p/pv-1.4.6-1.el7.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.tencentyun.com; Name or service not known"| 0 B --:--:-- ETA
Trying other mirror.
Error downloading packages:
pv-1.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try.
ERROR: install appnode-agent failed: exit status 1
有看到类似Could not resolve host: mirrors.tencentyun.com这样字眼的报错其实本质上都是一样的报错。
这是由于腾讯云自带的软件源配置有错误导致的(好无语),可将系统软件源改为阿里云镜像,请参考:点我跳转
咱们在命令行输入以下命令替换:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-`rpm -q --qf "%{version}" centos-release`.repo
然后将无效的软件源删除,使用以下命令做备份:
mv /etc/yum.repos.d/CentOS-Epel.repo /etc/yum.repos.d/CentOS-Epel.repo.bak
最后执行下命令更新缓存:
yum makecache
这样就能安装你想安装的东西啦!完美解决
坑三【SSH远程连接断开后让程序继续运行解决办法】
我们在跑脚本的时候,或者远程连接服务器执行Python或者下载等操作时,当我们断开ssh连接后代码将不会继续执行!!!那么我们怎么办呢?
解决办法:
1.首先安装screen
yum install -y screen 或 apt install -y screen
2.创建screen实例
screen -S me(实例名字随意起)
3.执行要自己要执行的代码或者下载等操作
4.断开连接(代码还在执行)
5.验证
screen -r me
6.其他
1、查看所有实例:
screen -ls
2、删除某个screen实例
screen -X -S 编号 quit(即下面所框出来的部分)
经验(Linux VPS通过安装CPULimit来限制CPU使用率)
今天给一个客户解决服务器cpu一直处于满载的情况,简单的说就是调优吧。
一开始以为是mysql服务占用过高导致cpu负载高,看了下内存占用也不多,于是在mysql的性能调整里面给他调低了优化方案。
发现cpu还是比较高,再猜是php7.2和7.1的锅,于是也调低了并发方案。
再去top看了下,有十几个php-fpm的进程,于是调低了pm.max_children和max_spare_servers
下面补充几个命令统计相关php-fpm 相关数据
1、查看php-fpm的进程个数
ps -ef |grep "php-fpm"|grep "pool"|wc -l
2、查看每个php-fpm占用的内存大小
ps -ylC php-fpm --sort:rss
3.查看PHP-FPM在你的机器上的平均内存占用
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'
4.查看单个php-fpm进程消耗内存的明细
pmap $(pgrep php-fpm) | less
重启php-fpm
1. 停止命令
pkill php-fpm
2.重启或启动命令
php-fpm -R
或
/alidata/server/php/sbin/php-fpm
说明:我们手上经常有很多廉价的VPS,有时候使用某些软件应用的时候,会出现CPU跑满的情况,而长时间跑满会被VPS商家停掉,所以这里我们需要想办法来限制进程CPU使用率,这里就说个教程。
安装cpulimit
使用root运行命令:
#debian/ubuntu系统
apt install -y cpulimit
#RHEL/Centos/Fedora系统
yum install epel-release cpulimit
用法
1、常规用法
#限制firefox使用30% cpu利用率
cpulimit -e firefox -l 30
#限制进程号1313的程序使用30%cpu利用率
cpulimit -p 1313 -l 30
#限制绝对路径下该软件的cpu利用率
cpulimit -e /usr/local/nginx/sbin/nginx -l 50
2、限制所有进程的CPU使用率
默认情况下cpulimit只能对已经存在的进程进行限制,但是设置此脚本为随机自启动即可,它会对所有进程(包括新建进程)进行监控并限制(3秒检测一次,CPU限制为75%)
这就可以防止因为CPU使用率过高而被ban了!
#!/bin/bash
while true ; do
id=`ps -ef | grep cpulimit | grep -v "grep" | awk '{print $10}' | tail -1`
nid=`ps aux | awk '{ if ( $3 > 75 ) print $2 }' | head -1`
if [ "${nid}" != "" ] && [ "${nid}" != "${id}" ] ; then
cpulimit -p ${nid} -l 75 &
echo "[`date`] CpuLimiter run for ${nid} `ps -ef | grep ${nid} | awk '{print $8}' | head -1`" >> /root/cpulimit-log.log
fi
sleep 3
done
保存到 /root/cpulimit.sh,会自动生成日志文件 /root/cpulimit-log.log。
然后修改 /etc/rc.local 在对应位置加入 /root/cpulimit.sh 再重启系统,就会全程限制各个进程的CPU使用了!
注意事项
l、后面限制的cpu使用量,要根据实际的核心数量而成倍减少。40%的限制生效在1核服务器中,如果是双核服务器,则应该限制到20%,四核服务器限制到10%以此类推。
2、root用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。