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

问题描述 投票:7回答:1

我正在运行一个加载大文件的脚本。我在单核OpenSuSe服务器和四核PC上运行了相同的脚本。正如我的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”这么高。我使用了最高命令来检查内存和cpu的使用情况。似乎仍然有可用内存,因此交换不是原因。 %sy很高,这可能是服务器速度过高的原因,但我不知道是什么原因导致%sy这么高。使用最高百分比CPU(99%)的进程是“ myscript”。 %wa在屏幕截图中为零,但有时会很高(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

我已经检查了这些内容,但是我仍然不确定服务器中的真正问题是什么以及如何解决。谁能确定这种缓慢的可能原因?有什么解决方案?还是我需要检查的其他内容?

谢谢!

linux linux-kernel cpu-usage opensuse
1个回答
3
投票

您得到了很高的sys活动,因为您正在处理的数据负载需要发生在内核中的系统调用。在不升级服务器的情况下解决慢速问题是可能的。您可以修改计划优先级。有关mannice的信息,请参见renice页面。参见here,尤其是:

尼斯值的范围是-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 
My niceness value is 19

$ renice -n 10 -p 941
941 (process ID) old priority -10, new priority 10
© www.soinside.com 2019 - 2024. All rights reserved.