说明:我们手上经常有很多廉价的VPS
,有时候使用某些软件应用的时候,会出现CPU
跑满的情况,而长时间跑满会被VPS
商家停掉,所以这里我们需要想办法来限制进程CPU
使用率,这里就说个教程。
简介
cpulimit
命令的工作原理是为进程预设一个cpu
占用率上限,并实时监控进程是否超出此上限,而做出动态调整。从而可以控制进程的cpu
使用率的上限值。
安装
使用root
运行命令:
#debian/ubuntu系统
apt install -y cpulimit
#RHEL/Centos/Fedora系统
yum install epel-release cpulimit
使用
cpulimit -h
Usage: cpulimit [OPTIONS...] TARGET
OPTIONS
-l, --limit=N percentage of cpu allowed from 0 to 100 (required)//cpu限制的百分比
-v, --verbose show control statistics//显示版本号
-z, --lazy exit if there is no target process, or if it dies//如果限制的进程不存在了,则退出。
-i, --include-children limit also the children processes//包括子进程。
-h, --help display this help and exit //帮助,显示参数
TARGET must be exactly one of these:
-p, --pid=N pid of the process (implies -z) //进程的pid
-e, --exe=FILE name of the executable program file or path name //可执行程序
COMMAND [ARGS] run this command and limit it (implies -z)
用法
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
。
注意事项
l、后面限制的cpu使用量,要根据实际的核心数量而成倍减少。40%的限制生效在1核服务器中,如果是双核服务器,则应该限制到20%,四核服务器限制到10%以此类推。
2、root用户可以限制所有的进程,普通用户只能限制自己有权限管理的进程。
原创文章,作者:南猫,如若转载,请注明出处:https://southcat.net/1513/
不妨点个广告再走嘛
相关推荐
-
通过微博图片的链接找到发图的人的方法
说明:不多说了,建议在微博少发黄图和一些隐私图吧。 方法 例如链接为http://wx1.sinaimg.cn/mw690/9d0d09abgy1fj0wcs7aewj20ij0sn12y.jpg的图。 提取文件名9d0d09abgy1fj0wcs7aewj20ij0sn12y,前8位9d0d09ab用16进制转换下变为2634877355,就是用户uid。 如果是http://wx1.sinaimg.cn/mw690/006r2HqOgy1fj7dxg3zuxj30p02a1wry.jpg这种005、006开头的就用62进制转,至于为什么出现这个应该是发现8位16进制存不下了。
-
一款基于Web的免费在线矢量图(SVG)编辑工具:Method-Draw
说明:Method Draw是一款基于Web的在线SVG编辑器,是SVG Edit的一个分支。其目的是改进SVG Edit的可用性,并减少其一些功能来提供更好的操作和体验,使用方法也是很多的,本地打开或者部署在服务器端都可以,这里就分享下。 截图 使用 Github地址:https://github.com/methodofaction/Method-Draw 1、本地使用先下载Method-Draw压缩包,点击下载→传送门,然后解压出来,直接进入method-draw文件夹,打开index文件即可。 2、服务器部署先下载Method-Draw压缩包,点击下载→传送门,然后解压出来,将method-draw文件夹丢进Web服务器网站根目录,再直接访问域名/ip即可。 没Web服务器的,这里提供个快速运行搭建方法,使用命令: git clone https://github.com/methodofaction/Method-Draw.git cd Method-Draw/method-draw #启动,运行端口自行修改 python -m SimpleHTTPServer 80 & 然后直接访问ip地址即可。 #Debian/Ubuntu系统 apt -y install git #CentOS系统 yum -y install git
-
使用Docker快速安装Poste.io邮件服务器
简介 Poste.io是最近在国外非常火的轻量级邮件服务器。它具有非常高的稳定性,并提供非常出众的管理面板,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及Webmail等基础功能。同时,Poste还提供了投递统计分析、客户端自动适配、一键安装SSL证书、邮件转发、邮件别名、Catch-All等相当有用的功能。而且收发信可靠,非常适合个人、团体以及企业使用。另外,Poste邮件服务器基于Docker搭建,搭建过程十分简单。 官网:https://poste.io/ 截图 说明 首先我们介绍一下服务器的运行环境。由于基于Docker,因此大部分Linux发行版均可以运行Poste。运行的Poste占用内存在800 MB左右,因此建议选择一个内存1 GB或者以上的VPS进行搭建。Poste仅支持64位操作系统。 在安装任何邮件服务器之前,我们需要配置好hostname。本文我们以mx.qing.su为例,当您在SSH中执行hostname命令时,应当看到mx的回显;当您在SSH中执行hostname -f命令时,应当看到mx.qing.su的回显。若您未配置好hostname,请不要继续。 开始安装之前,建议您先设置好一部分DNS。我们需要设置这样的几条记录 (请用您自己的域名替代下文中的qing.su): qing.su A Any_IP mx.qing.su A 88.88.88.88 qing.su MX mx.qing.su. 10 mail.qing.su CNAME mx.qing.su. smtp.qing.su CNAME mx.qing.su. imap.qing.su CNAME mx.qing.su. qing.su TXT “v=spf1 mx ~all” _dmarc.qing.su TXT “v=DMARC1; p=none; rua=mailto:dmarc-reports@qing.su” 88.88.88.88 PTR mx.qing.su 其中4、5、6、8项为可选,第九项为域名PTR也就是设置rDNS,需要您在自己的服务器提供商处设定,比如Vultr在后台就可以直接设置rDNS。 安装 1、安装Docker #CentOS 6 rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum update -y yum -y install docker-io service docker start chkconfig docker on #CentOS 7、Debian、Ubuntu curl -sSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker 2、安装Poste #/srv/poste/data为Poste数据存放文件夹,如用户数据库、电子邮件、日志,方便备份。 docker run -d -p 25:25 -p 80:80 -p 110:110 -p...
-
TestRace:Linux VPS回程路由一键测试脚本
简介 这是一个用于在Linux上测试回程路由的脚本,这里的回程路由是指从你的机器出发到指定节点的路由。 Github地址:https://github.com/nanqinlang-script/testrace 使用 运行命令: wget https://raw.githubusercontent.com/nanqinlang-script/testrace/master/testrace.sh bash testrace.sh 在运行脚本后,会出现三个选项供以选择: 选择一个节点进行测试 四网路由快速测试 手动输入ip进行测试 选项说明: 1、选择一个节点进行测试 本脚本以内置移动/联通/电信/教育网四网的多个节点。 选择1回车后,会列出这些节点的列表。 选择其中一个测试完成后,可以继续选择节点测试。 2、四网路由快速测试 此模式会对以下几个节点进行回程路由测试。 此模式测试的节点包括: 电信 上海电信(天翼云) 厦门电信CN2 联通 浙江杭州联通 移动 浙江杭州移动 教育网 北京教育网 3、手动输入ip进行测试 此模式是由用户 手动输入要测试的目标ip 每次测试完成后,可选择继续测试其它ip 相关目录 脚本的安装目录位于/home/testrace。测试完成并退出脚本后,会生成测试的记录文件于/home/testrace/testrace.log。 演示截图 1、菜单2、选择节点3、测试过程4、继续测试其它节点5、退出脚本
-
Ubuntu/Debian安装PHP 7.2教程
适用系统:Ubuntu 16.04/14.04、Debian 8/9 添加软件源 Ubuntu #安装软件源拓展工具 apt -y install software-properties-common #添加PHP PPA源,需要按一次回车 add-apt-repository ppa:ondrej/php #更新软件源缓存 apt update Debian #添加GPG wget -O /etc/apt/trusted.gpg.d/php.gpg https://mirror.xtom.com.hk/sury/php/apt.gpg #安装apt-transport-https apt-get install apt-transport-https #添加sury软件源 sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' #更新软件源缓存 apt-get update 安装PHP 7.2 运行以下命令: apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache -y 设置PHP 7.2 安装完成后,编辑/etc/php/7.2/fpm/php.ini替换;cgi.fix_pathinfo=1为cgi.fix_pathinfo=0。 快捷命令: sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.2/fpm/php.ini 管理PHP 7.2 安装好了先重启一下! systemctl restart php7.2-fpm 更多操作: systemctl restart php7.2-fpm #重启 systemctl start php7.2-fpm #启动 systemctl stop php7.2-fpm #关闭 systemctl status php7.2-fpm #检查状态 更新PHP 7.2 运行下面的命令系统就会更新所有可以更新的软件包括PHP...
-
EasyEngine:VPS上最简单的创建WordPress站点
说明:可以快速的安装NGINX、PHP、MySQL、Postfix环境,并创建单个或多个wordpress站点。同时,支持HHVM、PageSpeed,可以使用W3Total Cache、WP Super Cache 、Nginx’s FastCGI Cache等。 系统要求:仅支持Ubuntu 12.04+、Debian 7+ 1、安装EasyEngine wget -qO ee rt.cx/ee && sudo bash ee 2、创建wordpress站点 sudo ee site create example.com --wp 也可创建各种缓存的wordpress站点,如Nginx缓存: sudo ee site create example.com --wpfc 下面是详细的站点创建命令: a、标准版 ee site create example.com --wp # 安装无缓存的wordpress ee site create example.com --w3tc # 安装w3-total-cache插件的wordpress ee site create example.com --wpsc # 安装wp-super-cache插件的wordpress ee site create example.com --wpfc # 安装nginx fastcgi_cache的wordpress ee site create example.com --wpredis # 安装nginx redis_cache的wordpress b、使用子目录创建多个wordpress ee site create example.com --wpsubdir # 安装无缓存的wordpress ee site create example.com --wpsubdir --w3tc # 安装w3-total-cache插件的wordpress ee site...
-
Music-dl:一个音乐平台聚合搜索工具,支持下载QQ音乐、网易云、酷狗音乐等
说明:之前发过一个视频下载工具Annie→传送门,这里又找到了个音乐下载工具Music-dl,一个基于Python3的命令行工具,可以从多个网站搜索和下载音乐,方便寻找音乐,解决不知道哪个网站有版权的问题。目前支持QQ音乐、网易云音乐、虾米音乐、酷狗音乐和百度音乐,不过不能获取付费歌曲,总体使用还算不错。 截图 功能 部分歌曲支持无损音乐 优先搜索高品质音乐(flac->320K->128K) 支持HTTP和SOCKS代理 支持多线程搜索 支持搜索结果去重和排序 支持搜索关键字高亮 支持下载歌词和封面(部分) 安装Python3 1、Linux安装CenOS 6系统: #安装EPEL rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm #安装Python3 yum install python34 -y #安装pip3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py CenOS 7系统: #安装EPEL rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm #安装Python3 yum install python36 -y #安装pip3 wget https://bootstrap.pypa.io/get-pip.py python3 get-pip.py Debian/Ubuntu系统: apt update apt install python3-pip python3-setuptools python3-dev build-essential -y 2、Windows安装这里为了方便操作就不使用CMD了,直接使用PowerShell,需要的条件PowerShell 5+和.NET Framework 4.5+。 先在电脑左下角程序搜索框输入PowerShell,然后双击Windows PowerShell工具,再输入以下命令查看版本: $PSVersionTable.PSVersion Major为版本号,一般目前常用电脑Windows 10符合条件,Windiows 7还需要升级,大致步骤如下: 1、安装.Net 4.5.2全量包 下载地址:https://www.southcat.net/usr/down/powershell/NDP452-KB2901907-x86-x64-AllOS-ENU.exe 2、升级PowerShell的补丁包 32位下载地址:https://www.southcat.net/usr/down/powershell/Win7-KB3191566-x86.zip 64位下载地址:https://www.southcat.net/usr/down/powershell/Win7-KB3191566-x64.zip 接下来安装一个命令行安装工具Scoop,使用命令: iex (new-object net.webclient).downloadstring('https://get.scoop.sh') 再安装Python3: scoop install python 该命令会默认给你安装python 3最新版本。 安装Music-dl 以下方式选择一种即可,使用命令: #使用pip安装 pip3 install pymusic-dl #从最新源码安装 git clone https://github.com/0xHJK/music-dl.git cd...
-
CentOS一键安装Resilio Sync来搭建专用文件共享系统
简介 Resilio Sync是一种依赖于BitTorrent协议的专用文件共享系统,原为BitTorrent Sync,简称BitSync是一款功能非常强大的同步工具,并且支持多终端设备:windows、linux、移动设备等都没有问题,再加上国内网盘纷纷关闭,如果您想自建搭建同步工具使用BitSync是一个非常不错的方案。 Resilio Sync官网:https://www.resilio.com/ 安装 #安装必要的软件包 yum -y install wget unzip #下载脚本 wget https://www.southcat.net/usr/down/Resilio-Sync.zip #解压并安装 unzip Resilio-Sync.zip && cd Resilio-Sync && chmod +x mysync.sh sync.sh && ./sync.sh 根据提示设置用户名和密码后,直到安装成功! 设置 1、输入http://IP:8888会要求输入刚刚设置的账号密码。2、输入成功进入初始化界面,随便起一个名称,勾选协议进入RslSync后台。3、打开右上角–设置–Preferences–选择中文进行保存,这样就是中文界面啦。 相关命令 为了方便管理,安装成功后请输入命令:source ~/.bashrc使alias生效,这样就可以使用mysync命令来管理了,mysync说明如下: #Resilio安装目录 /home/RslSync #配置文件 /home/RslSync/sync.conf #查看RslSync状态 mysync status #停止 mysync stop #启动 mysync start
-
使用Docker安装OneDrive网盘管理工具PyOne
说明:PyOne程序在之前的文章就介绍过了→点击查看,作者更新挺频繁的,最近增加了多网盘后,用的人也变多了。目前新增加一个离线下载功能,使用的是Aria2,挺给力的。这里博主就提供个Docker镜像,不会手动安装的,可以试试。 更新 【2019.3.13】 更新至4.0 【2018.11.30】 替换Aria2为某大佬编译的多线程版本,其特点可以将下载速度最大化优化。 安装 Github地址:https://github.com/iiiiiii1/Docker-PyOne 1、安装Docker #CentOS 6 rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum update -y yum -y install docker-io service docker start chkconfig docker on #CentOS 7、Debian、Ubuntu curl -sSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker 2、安装PyOne #拉取Dockerfile相关文件 git clone https://github.com/iiiiiii1/Docker-PyOne.git #进入文件夹下载Pyone源码 cd Docker-PyOne git clone https://github.com/abbeyokgo/PyOne.git 如果你要修改PyOne后台密码和增加更多的网盘,可以提前编辑self_config.py.sample,不修改就默认。也可以修改下Aria2配置文件,与路径有关的参数别改,密匙什么的都可以改,不改的话默认moerats。 #构建镜像 docker build -t moerats/pyone . #启动镜像 docker run -d -p 34567:34567 --name pyone moerats/pyone:latest 最后访问ip:34567即可,后台路径/admin,密码PyOne,具体使用方法查看→点击查看;如果你要使用域名访问,可以查看该教程→传送门,直接参考后面的域名访问即可。 #这里也可以通过重启镜像来重启PyOne程序 #启动镜像 docker start pyone #重启镜像 docker restart pyone
-
finalspeed一键安装包
简介 官方介绍:FinalSpeed是高速双边加速软件,可加速所有基于tcp协议的网络服务,在高丢包和高延迟环境下,仍可达到90%的物理带宽利用率,即使高峰时段也能轻松跑满带宽. 用途:可以压缩流量发包(双边),与Net-Speed多发包不同的是,FinalSpeed是压缩流量以增加传输成功率,这样就不会多耗费VPS流量,但是有可能对同机房的网络稳定造成影响。 说明:之前finalspeed一直免费,而且作为openvz架构的救星,加速是非常暴力的,如今finalspeed作者开始卖收费版了,所以停止了免费版的更新,现在还是有不少人对finalspeed有需求的,于是91yun博主就重新做了这个一键安装包。 这个一键安装包完全重写了作者原来的安装代码,启动,停止代码。并加入了服务,可以使用 service finalspeed star | stop 来控制,加入了开机启动启动。总之,你需要做的就是真正的一键。一键安装包安装的服务器端版本为1.2.需要1.0的自行到github下载。 注意:1.服务器必须同时部署FinalSpeed服务端才能进行加速.2.客户端必须准确设置物理带宽,最终加速的速度不会超过所设置的带宽值,如果设置值高于实际带宽会造成丢包,导致速度变慢.3.客户端首选tcp协议,如果udp不稳定,请切换到tcp.4.若服务器为openvz架构,客户端只能选择udp协议,其他架构同时支持tcp和udp协议.5.windows客户端使用tcp协议时不兼容锐速,停止锐速后可以正常运行.6.FinalSpeed不提供加密功能,如有安全需求,不要直接加速明文协议. github地址:https://github.com/91yun/finalspeed github里也有服务器端和客户端的文件。大家有需求可以自行去下载。 客户端的使用可以见《双边加速FinalSpeed客户端下载及教程 ,Openvz福音》 安装 一键安装代码: wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh 一键卸载代码: wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh uninstall finalspeed操作命令:启动: /etc/init.d/finalspeed start停止命令:/etc/init.d/finalspeed stop状态命令(查看日志):/etc/init.d/finalspeed status finalspeed安装路径:安装路径: /fs/日志路径:/fs/server.log