为什么系统CPU时间(%sy)高?

时间:2013-10-23 16:17:33

标签: linux linux-kernel cpu-usage opensuse

我正在运行一个加载大文件的脚本。我在单核OpenSuSe服务器和四核PC中运行相同的脚本。正如我所预期的那样,它比服务器中的速度快得多。但是,脚本会降低服务器的速度,使其无法执行任何其他操作。

我的脚本是

for 100 iterations
Load saved data (about 10 mb)

时间myscript(在PC中)

real    0m52.564s
user    0m51.768s
sys    0m0.524s

时间myscript(在服务器中)

real    32m32.810s
user    4m37.677s
sys    12m51.524s

我想知道为什么当我在服务器中运行代码时“sys”如此之高。我使用top命令检查内存和CPU使用情况。enter image description here 似乎仍然有免费记忆,所以交换不是原因。 %sy是如此之高,它可能是服务器速度的原因,但我不知道是什么导致%sy这么高。使用最高CPU百分比(99%)的过程是“myscript”。

在屏幕截图中为零,但有时会变得非常高(50%)。

当脚本运行时,平均负载大于1,但从未见过高达2。

我还检查了我的光盘:

strt:~ # hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   16480 MB in  2.00 seconds = 8247.94 MB/sec
 Timing buffered disk reads:   20 MB in  3.44 seconds =   5.81 MB/sec

john@strt:~> df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       245G  102G  131G  44% /
udev            4.0G  152K  4.0G   1% /dev
tmpfs           4.0G   76K  4.0G   1% /dev/shm

我已经检查了这些东西,但我仍然不确定我的服务器中的真正问题是什么以及如何解决它。任何人都可以找出缓慢的可能原因吗?可能是什么解决方案? 或者还有什么我应该检查的吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您正在获得高sys活动,因为您正在执行的数据加载需要在内核中进行系统调用。无需升级服务器即可解决您的慢速问题。您可以修改计划优先级。有关nice和renice的信息,请参阅手册页。请参阅here,尤其是:

Niceness值的范围从-20(最高优先级,最低优度)和19(最低优先级,最高优点)。

$ ps -lp 941 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 941 1 0 70 -10 - 1713 poll_s? 00:00:00 sshd

$ nice -n 19 ./test.sh 我的好心值是19

$ renice -n 10 -p 941 941(进程ID)旧优先级-10,新优先级10