Shell脚本实现把进程负载均衡到多核CPU中

Xanthe ·
更新时间:2024-11-15
· 635 次阅读

有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用CPU很不均衡,所以业务处理集中在一个CPU上,而其它CPU闲得在睡觉。这里有个简单的优化方案实现将各个线程绑定到到多个CPU,从而实现性能的提高。

虽然CPU是一个不错的思路,但是不是杀手锏,其性能能提高多少依赖于各个线程的性能分布是否均匀;所以最好的办法是优化你的程序架构。

在这里分享一个Shell脚本(脚本名为bindcpu2p.sh),通过该脚本可将该进程均匀负载到各个CPU上。

代码如下:#!/bin/sh
pids=`/sbin/pidof $1`
cpunum=`cat /proc/cpuinfo | grep processor | wc -l`
 
cpuidx=0
for pid in $pids
do
    /usr/bin/taskset -cp ${cpuidx} ${pid}
    cpuidx=$(($cpuidx+1))
    cpuidx=$(($cpuidx%$cpunum))
    echo $cpuidx
done
使用方法 $> ./bindcpu2p.sh progressname

注:请兄弟们检视下代码,能帮忙调试下就最好不过了。

您可能感兴趣的文章:nginx 作为反向代理实现负载均衡的例子apache负载均衡的安装和实现方法Nginx+Windows负载均衡配置方法windows安装nginx部署步骤图解(反向代理与负载均衡)linux服务器之LVS、Nginx和HAProxy负载均衡器对比总结nginx基于tcp做负载均衡的方法Nginx做NodeJS应用负载均衡配置实例asp.net实现负载均衡



负载均衡 shell脚本 多核cpu 进程 shell

需要 登录 后方可回复, 如果你还没有账号请 注册新账号