❶ 提高linux腳本cpu和內存使用率
linuxt提供了系統函數sysconf()用來讀取CPU和內存信息,先來了解一下sysconf()函數吧。
頭文件
#include<unistd.h>
函數原型
long sysconf (int name);
說明
sysconf() 返回選項 ( 變數) 的當前值,這個值可配置的但也是受系統限制的。在成功完成的情況下,sysconf() 返回 變數的當前值。該值受到的限制將少於編譯時 <limits.h>, <unistd.h> 或 <time.h> 中可用的對應值。大多數這些 變數的值在調用進程的生存時間內不變。
如果出錯,那麼函數返回 -1 ,並適當地設置 errno 。當沒有錯誤發生時, -1 也是一個合法的返回值。因此,程序要檢查錯誤,應該在調用 sysconf() 之前將 errno 設置為 0 ,然後,如果返回 -1,則檢驗到錯誤。
參數 name 指定我們感興趣的運行時限制的名字,它必須是以值中之一(除非另有說明,否則返回值都是整數):
_SC_2_C_BIND : 一個布爾值,指出是否支持 POSIX C 語言綁定。返回值是 _POSIX2_C_BIND 。
_SC_2_C_DEV : 一個布爾值,指出是否支持 POSIX C 語言開發使用工具選項。返回值是 _POSIX2_C_DEV 。
_SC_2_C_VERSION : 它指出支持哪一個 ISO POSIX.2 標准 (命令) 的版本。返回值是 _POSIX2_C_VERSION 。
_SC_2_CHAR_TERM : 一個布爾值,指出是否至少支持一個 終端。返回值是 _POSIX2_CHAR_TERM 。
_SC_2_FORT_DEV : 一個布爾值,指出是否支持 FORTRAN 開發使用工具選項。返回值是 POSIX2_FORT_DEV 。
注意:1、 CLK_TCK 的值是可變的,因此,不應該假設它是一個 編譯時間 常量。
2、調用 setrlimit 會使 OPEN_MAX 的值發生改變。
3、 通過將 sysconf (_SC_PHYS_PAGES) 和 sysconf (_SC_PAGESIZE) 相乘,來確定 物理內存的總量 (以 位元組為單位) 可以返回一個值,該值超出 32 位進程中 long 或 unsigned long 可表示的最大值。同樣適用於通過將 sysconf (_SC_PAGESIZE) 和 sysconf (_SC_AVPHYS_PAGES) 想乘,來確定未使用的 物理內存的總量 (以 位元組為單位)。這個問題有兩個工作區。第 1 個工作區將程序作為 64 位的進程進行編譯 (從而使 long 足夠大到可以容納乘法運算的結果) ,但是,這樣做的缺點是得到的程序只能在 64 位的內核中運行。第 2 個工作區是用來將得到的乘法運算結果存儲在一個 64 位的量中,如 longlong_t (Solaris OS 類型) 或 long long (linux)。它的有點是可以在 32 位和 64 位的內核中正確工作。
❷ 如何讓一個Python的腳本跑滿多核的CPU
python由於GIL的關系,python的多線程並沒有發揮多核的作用,這些線程都是在在單核上跑的
所以要想發揮多核的作用,就需要使用多進程,盡可能的在每一個CPU核心上分配到一個python進程。
所以要想跑滿多核CPU就得多進程多線程互相結合
❸ aix查看cpu使用率 如何編寫腳本從早上8點到18點3分鍾采樣一次cpu使用率,並將使用率輸出到文件中,謝謝
簡單點的就用vmstat,,8點到18點是10個小時,3分鍾采樣一次一個小時是60/3=20次,10個小時共200次,設個cron job每天8點跑這個命令: vmstat 180 200 > /tmp/CPUUsage_$(date +%Y%m%d).log
用sar的話可以統計一段時間裡面的情況,用nmon的就是比較全面,還可以生成趨勢圖,自己man或上網查查資料。
❹ 求一個耗盡cup耗盡內存資源的linux腳本,為了學習vmstat監控變化用的
按你的要求看,你還是想磁碟也寫入了?
給你一個圓周率計算的腳本!
還可以計入磁碟的test.log文件,你執行下試試效果。
死機倒是不會,雙核CPU也能同時計算!你也能看出效果來!
#!/bin/bash
DIMENSION=10000
MAXSHOTS=900000000000000000
PMULTIPLIER=4.0
get_random ()
{
SEED=$(head -1 /dev/urandom | od -N 1 | awk '{ print $2 }')
RANDOM=$SEED
let "rnum = $RANDOM % $DIMENSION"
echo $rnum
}
distance=
hypotenuse ()
{
distance=$(bc -l << EOF
scale = 0
sqrt ( $1 * $1 + $2 * $2 )
EOF
)
}
# main() {
shots=0
splashes=0
thuds=0
Pi=0
while [ "$shots" -lt "$MAXSHOTS" ]
do
xCoord=$(get_random)
yCoord=$(get_random)
hypotenuse $xCoord $yCoord
((shots++))
printf "#%4d " $shots
printf "Xc = %4d " $xCoord
printf "Yc = %4d " $yCoord
printf "Distance = %5d " $distance
if [ "$distance" -le "$DIMENSION" ]
then
echo -n "SPLASH! "
((splashes++))
else
echo -n "THUD! "
((thuds++))
fi
Pi=$(echo "scale=9; $PMULTIPLIER*$splashes/$shots" | bc)
echo -n "PI ~ $Pi" | tee test.log
echo
done
echo
echo "After $shots shots, PI looks like approximately $Pi."
# }
exit 0
❺ 怎麼用bat 腳本查看進程的CPU使用情況
打開記事本
復制以下代碼到記事本
@echo off
for /f "tokens=2 delims==" %%a in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value^|findstr "PercentProcessorTime"') do (
set UseCPU=%%a
)
echo CPU使用率:%UseCPU%%%
pause
另存為bat文件,保存類型為所有類型
雙擊運行即可!
相關知識延伸--Windows下用C語言獲取進程cpu使用率,內存使用,IO情況
可參考:http://wenku..com/link?url=-N3t5e
❻ 提高cpu使用率腳本
手動提升CPU使用率腳本----cpubusy.vbs_編制者的專欄-CSDN博客
頻繁的加解鎖會提高系統空間的 CPU 佔用率鎖在內核的實現是通過隊列來實現的