我正在运行加载大文件的脚本。我在一台核心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的使用情况。 看来还有空闲的内存,所以交换不是原因。 %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
我已经检查了这些东西,但我仍然不确定我的服务器中存在的真正问题以及如何解决这个问题。任何人都可以找出缓慢的可能原因吗?什么可能是解决方案? 还有什么我应该检查?
谢谢!
什么“问题”?如果你要求系统做很多工作,它会很忙,直到完成。使用典型的脚本,几乎所有的“工作”都将发生在子进程(或代表它们的内核空间任务,如I/O)中,而不是在解释脚本的shell进程中。 –
脚本运行时,服务器中的其他用户得到的响应速度较慢。我想更快地运行脚本,也不会打扰其他用户。如果添加一些资源是解决方案,我可以做到这一点。但是,我不知道会有什么帮助。 – Abhishek
如果你问什么样的系统购买/升级,以获得更好的性能,这可能是一个超级用户的问题。如果你想尝试使任务本身更高效(拼凑在一起的解决方案可能有很大的改进空间),你将不得不更加具体地了解它的作用和方式 - 实际代码,或者至少一个关闭的功能描述。 –