2013-10-23 23 views
7

我正在运行加载大文件的脚本。我在一台核心OpenSuSe服务器和四核心PC上运行相同的脚本。正如我的电脑中预计的那样,它比服务器上的要快得多。但是,脚本减慢了服务器的速度,并且无法执行其他任何操作。为什么系统CPU时间(%sy)很高?

我的剧本是

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”。在屏幕截图中%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 

[email protected]:~> 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 

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

谢谢!

+0

什么“问题”?如果你要求系统做很多工作,它会很忙,直到完成。使用典型的脚本,几乎所有的“工作”都将发生在子进程(或代表它们的内核空间任务,如I/O)中,而不是在解释脚本的shell进程中。 –

+0

脚本运行时,服务器中的其他用户得到的响应速度较慢。我想更快地运行脚本,也不会打扰其他用户。如果添加一些资源是解决方案,我可以做到这一点。但是,我不知道会有什么帮助。 – Abhishek

+0

如果你问什么样的系统购买/升级,以获得更好的性能,这可能是一个超级用户的问题。如果你想尝试使任务本身更高效(拼凑在一起的解决方案可能有很大的改进空间),你将不得不更加具体地了解它的作用和方式 - 实际代码,或者至少一个关闭的功能描述。 –

回答

1

您正在获得较高的系统活动量,因为您正在执行的数据负载需要发生在内核中的系统调用。解决您的慢速问题而不升级服务器可能是可能的。您可以修改调度优先级。看到好的和renice的手册页。请参阅here,尤其是:

好看度值范围从-20(最高优先级,最低优先级)和19(最低优先级,最高优先级)。

$ PS -lp 941 五六UID PID PPIDÇPRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 941 1 0 70 -10 - 1713 poll_s? 00:00:00 sshd的

$不错-n 19 ./test.sh 我的美好的事物值是19

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

相关问题