我有一台配有16GB内存的专用服务器,运行Centos 7的Xeon E5504(8核2.0GHZ)。我运行了顶层命令,可以看到7个内核在大部分时间都处于闲置状态,然后是一个内核全力以赴 我看到它超过100%,我不明白。
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16479600 total, 1233968 free, 616824 used, 14628808 buff/cache KiB Swap: 523260 total, 499720 free, 23540 used. 15342640 avail Mem
该服务器仅用作Web主机。 Apache,MySQL和PHP。 我havnt从默认configuration做了任何更改的Apache。 我听说默认的apacheconfiguration支持multithreading,但显然不是这种情况。
mysqld和httpd是唯一使用大量资源的东西。 总共apache每周获得大约10万个请求。 绰绰有余的这台服务器,但作为我继续增加更多的网站,我不想慢下来,因为一切都在同一个CPU上。
我读到它似乎“prefork”需要修改,以使Apache获得更多的资源。 我运行以下命令来查看默认configuration,它看起来不像prefork甚至安装
/usr/sbin/apachectl -l Compiled in modules: core.c mod_so.c http_core.c
我不知道如何testing系统知道什么是当前的configuration,为什么只有一个核心正在使用。 将网站从低端单核VPS移动到此服务器时,我并没有注意到性能提高,所以我担心configuration出了问题。
我检查了/etc/http/conf/httpd.conf,所有这些都是虚拟主机。 没有任何与最大客户端相关的行,以及在prefork if语句中使用的其他值。
顶部告诉你的系统没有任何事情,因为它是100%闲置。
这些字段具有以下含义,不指定特定的内核。
us, user : time running un-niced user processes sy, system : time running kernel processes ni, nice : time running niced user processes wa, IO-wait : time waiting for I/O completion hi : time spent servicing hardware interrupts si : time spent servicing software interrupts st : time stolen from this vm by the hypervisor