2008-09-26 105 views
5

我有一個RHEL框,我需要放在適度和可變的CPU負載(50%-75%)下。如何在Red Hat Linux機器上設置CPU負載?

什麼是最好的方式去做這件事?有沒有一個程序可以做到這一點,我不知道?我很高興編寫一些C代碼來實現這一點,我只是不知道系統調用會有什麼幫助。

回答

15

這正是你所需要的: http://weather.ou.edu/~apw/projects/stress/

從主頁: 「壓力是POSIX系統的一個簡單的工作負載生成它規定的CPU的配置數量,內存,I/O和磁盤壓力在系統上,它是用C語言編寫的,並且是GPL授權的免費軟件。「

0

您可能可以使用一些負載生成工具來實現此目的,或者運行腳本來執行所有CPU週期,然後在進程上使用nicerenice來更改進程獲取的週期百分比。

這裏是一個示例bash腳本,將佔據所有自由的CPU週期:

#!/bin/bash 
while true ; do 
true 
done 
+0

或從終端直您可以鍵入: 而真實的;確實如此;完成 – Jesse 2010-06-14 23:51:48

+0

這會將一個CPU加載到100%的CPU,但很好,renice不會允許調整這個負載,只是用競爭的進程來加權(如果有的話)。 – jlliagre 2012-06-28 06:13:59

1

一種常見的方式來獲得一個系統的一些負載是一遍又一遍編譯一個大的軟件包。像Linux內核一樣。

獲取源代碼的副本,提取tar.bz2,進入頂級源代碼目錄,將你的內核配置從/ boot複製到.config或zcat /proc/config.gz> .config,do make oldconfig,然後true;做清潔& & make bzImage;完成

如果你有一個SMP系統,那麼使-j bzImage很有趣,它會產生並行的任務。

這樣做的一個問題是調整CPU負載。除了在磁盤I/O上等待時,這將是最大的CPU負載。

2

找到一個有源代碼的簡單素數搜索程序。修改源代碼,向主循環添加一個納休眠呼叫,無論哪個延遲都會給您帶來所需的CPU負載。

1

這真的取決於你想要測試的東西。如果您只是測試CPU負載,那麼吃空CPU週期的簡單腳本就可以正常工作。我個人不得不最近測試RAID陣列的性能,我依靠Bonnie ++和IOZone。 IOZone會在盒子上承受不小的負擔,特別是如果您將文件大小設置爲高於RAM。

您可能也有興趣this Article

1

你可以使用Bash腳本來做到這一點。使用「ps -o pcpu | grep -v CPU」獲取所有進程的CPU使用情況。將所有這些值一起添加以獲得當前使用情況。然後有一個繁忙的while循環,基本上不斷檢查這些值,計算出當前的CPU使用率,並等待計算的時間量使處理器保持一定的閾值。需要更多細節,但希望這會給你一個很好的起點。

看看這CPU Monitor腳本,我發現並嘗試獲得一些關於如何完成此操作的其他想法。

-1

不確定你的目標是在這裏。我相信glxgears會使用100%的CPU。

所以找到你知道的任何進程,將最大限度地將CPU的100%。

如果你有四個CPU核心(0 1 2 3),你可以使用「taskset」來綁定這個進程來說CPUs 0和1.這應該加載你的盒子50%。加載它75%將進程綁定到0 1 2個CPU。

聲明:未經測試。請讓我們知道您的結果。即使這樣做,我不確定你會從中獲得什麼?

0

使用「nice」命令。

a)最高優先: $不錯-n -20 my_command

二)最低優先級: $不錯-n 20 my_command

0

Lookbusy使得能夠設置CPU負荷的值。 Project site

lookbusy -c util[-high_util], --cpu-util util[-high_util] 

i.e. 60% load 
lookbusy -c 60