Shell腳本實現(xiàn)把進(jìn)程負(fù)載均衡到多核CPU中
更新時間:2014年06月21日 10:38:49 投稿:junjie
這篇文章主要介紹了Shell腳本實現(xiàn)把進(jìn)程負(fù)載均衡到多核CPU中,可以把進(jìn)程指定運行在某個CPU中,需要的朋友可以參考下
有時候,由于架構(gòu)設(shè)計或其他業(yè)務(wù)本身特點原因,導(dǎo)致有些應(yīng)用使用CPU很不均衡,所以業(yè)務(wù)處理集中在一個CPU上,而其它CPU閑得在睡覺。這里有個簡單的優(yōu)化方案實現(xiàn)將各個線程綁定到到多個CPU,從而實現(xiàn)性能的提高。
雖然CPU是一個不錯的思路,但是不是殺手锏,其性能能提高多少依賴于各個線程的性能分布是否均勻;所以最好的辦法是優(yōu)化你的程序架構(gòu)。
在這里分享一個Shell腳本(腳本名為bindcpu2p.sh),通過該腳本可將該進(jìn)程均勻負(fù)載到各個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
注:請兄弟們檢視下代碼,能幫忙調(diào)試下就最好不過了。
相關(guān)文章
Linux shell知識點匯總
從程序員的角度來看, Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統(tǒng)溝通的橋梁。用戶既可以輸入命令執(zhí)行,又可以利用 Shell腳本編程,完成更加復(fù)雜的操作。
2015-08-08
Linux paste命令用法匯總
paste命令是linux下的一個文件管理命令,paste命令可以把每個文件以列對列的方式,然后一列列地加以合并,也就是合并兩個文件,這篇文章主要介紹了Linux paste命令使用方法,感興趣的朋友一起看看吧
2022-12-12
自動重啟服務(wù)的shell腳本代碼
公司tomcat服務(wù)器有個過一段時間自動會掛的bug一直沒能解決,掛的時候還要手動重啟tomcat,于是決定寫個腳本讓它定時檢測故障自動重啟吧
2013-06-06
linux 中的gzip命令
gzip是在Linux系統(tǒng)中經(jīng)常使用的一個對文件進(jìn)行壓縮和解壓縮的命令,既方便又好用。接下來通過本文給大家分享linux 中的gzip命令,感興趣的朋友一起看看吧
2017-09-09
Linux下.tar.xz文件的解壓教程詳解
xz這個壓縮可能很多都很陌生,不過您可知道xz是絕大數(shù)linux默認(rèn)就帶的一個壓縮工具。接下來通過本文給大家分享Linux下.tar.xz文件的解壓教程詳解,需要的朋友參考下吧
2017-10-10
Shell實用技巧:快速去除字符串中的空格
這篇文章主要介紹了Shell實用技巧:快速去除字符串中的空格,本文給出了3種方法,分別講解了刪除行首空格、刪除行末空格、刪除所有空格等內(nèi)容,需要的朋友可以參考下
2014-11-11