我有一台 2x2 GHz 核心的服务器
但是 php 运行起来很慢,我写了合成测试
for($i=0;$i<10000000;$i++) {
$x = sqrt($i);
}
生成约 30 秒
但在具有 2x2Ghz 核心的本地机器上,它会产生 2.8 秒
我也在共享主机上尝试了这个脚本-也是 2.8 秒
哪里断电了?
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 65
model name : Dual-Core AMD Opteron(tm) Processor 2210 HE
stepping : 2
cpu MHz : 1749.990
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 3591.16
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 65
model name : Dual-Core AMD Opteron(tm) Processor 2210 HE
stepping : 2
cpu MHz : 1749.990
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
bogomips : 3518.67
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
total used free shared buffers cached
Mem: 4000 2980 1019 0 0 0
-/+ buffers/cache: 2980 1019
Swap: 0 0 0
top - 14:05:28 up 5 days, 2:45, 2 users, load average: 2.88, 1.85, 1.43
Tasks: 54 total, 2 running, 52 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.7%us, 1.0%sy, 0.0%ni, 81.4%id, 15.9%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4096000k total, 3056176k used, 1039824k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30426 mysql 15 0 2747m 229m 4948 S 3.7 5.7 391:16.83 mysqld
23823 apache 15 0 47212 15m 8920 S 0.7 0.4 0:12.25 httpd
15799 root 15 0 2284 1036 812 R 0.3 0.0 0:00.01 top
1 root 15 0 2152 660 572 S 0.0 0.0 0:03.43 init
5150 dovecot 18 0 4988 1828 1512 S 0.0 0.0 0:01.25 pop3-login
5196 dovecot 18 0 4988 1828 1512 S 0.0 0.0 0:01.24 pop3-login
9801 dovecot 18 0 4988 1828 1512 S 0.0 0.0 0:01.40 pop3-login
14105 root 15 0 10028 2924 2380 S 0.0 0.1 0:00.03 sshd
14209 root 15 0 3840 1544 1260 S 0.0 0.0 0:00.02 bash
15917 root 18 0 1748 520 448 S 0.0 0.0 0:00.00 vmstat
16086 apache 15 0 49304 20m 11m S 0.0 0.5 0:02.59 httpd
17444 apache 15 0 46964 13m 7232 S 0.0 0.3 0:00.82 httpd
17455 apache 15 0 47172 13m 7008 S 0.0 0.3 0:00.86 httpd
17456 apache 15 0 48912 18m 10m S 0.0 0.5 0:01.97 httpd
17677 apache 15 0 47732 16m 9m S 0.0 0.4 0:01.53 httpd
22489 nginx 18 0 9020 2800 912 D 0.0 0.1 0:09.67 nginx
23602 root 18 0 45960 10m 6092 S 0.0 0.3 0:00.82 httpd
23652 root 15 0 10188 3260 2684 R 0.0 0.1 0:00.15 sshd
23787 apache 15 0 47096 14m 8696 S 0.0 0.4 0:02.66 httpd
23789 apache 17 0 47156 14m 8648 S 0.0 0.4 0:02.76 httpd
23791 apache 15 0 49616 21m 12m S 0.0 0.5 0:03.69 httpd
23802 apache 15 0 47368 15m 8892 S 0.0 0.4 0:03.63 httpd
23818 apache 18 0 47184 14m 7876 S 0.0 0.4 0:03.78 httpd
23827 apache 16 0 47060 13m 7752 S 0.0 0.3 0:02.17 httpd
23840 apache 15 0 46984 14m 7980 S 0.0 0.4 0:02.77 httpd
23850 apache 15 0 47100 14m 8132 S 0.0 0.4 0:03.06 httpd
23871 apache 16 0 50248 21m 11m S 0.0 0.5 0:03.78 httpd
23873 apache 15 0 49548 20m 12m S 0.0 0.5 0:04.11 httpd
23880 apache 16 0 47076 14m 8272 S 0.0 0.4 0:03.39 httpd
24258 root 16 0 3840 1580 1284 S 0.0 0.0 0:00.07 bash
27938 apache 17 0 46252 9200 3524 S 0.0 0.2 0:00.12 httpd
27939 apache 15 0 46952 11m 5880 S 0.0 0.3 0:00.20 httpd
27940 apache 15 0 46944 12m 6380 S 0.0 0.3 0:00.29 httpd
29952 root 15 -4 2244 544 340 S 0.0 0.0 0:00.00 udevd
30273 root 16 0 1808 568 480 D 0.0 0.0 0:01.93 syslogd
30297 named 25 0 49404 3700 2060 S 0.0 0.1 0:00.74 named
30340 root 15 0 7192 1064 664 S 0.0 0.0 0:00.92 sshd
ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Nov11 ? 00:00:03 init [3]
dovecot 5150 30465 0 Nov15 ? 00:00:01 pop3-login
dovecot 5196 30465 0 Nov15 ? 00:00:01 pop3-login
dovecot 9801 30465 0 Nov15 ? 00:00:01 pop3-login
root 14105 30340 0 14:04 ? 00:00:00 sshd: root@pts/1
root 14209 14105 0 14:04 pts/1 00:00:00 -bash
apache 16086 23602 0 13:02 ? 00:00:02 /usr/sbin/httpd -k start
root 16186 24258 0 14:05 pts/0 00:00:00 ps -ef
apache 17444 23602 0 13:37 ? 00:00:00 /usr/sbin/httpd -k start
apache 17455 23602 0 13:37 ? 00:00:00 /usr/sbin/httpd -k start
apache 17456 23602 0 13:37 ? 00:00:01 /usr/sbin/httpd -k start
apache 17677 23602 0 13:26 ? 00:00:01 /usr/sbin/httpd -k start
nginx 22489 30643 0 12:52 ? 00:00:09 nginx: worker process
root 23602 1 0 12:52 ? 00:00:00 /usr/sbin/httpd -k start
root 23652 30340 0 11:53 ? 00:00:00 sshd: root@pts/0
apache 23787 23602 0 12:53 ? 00:00:02 /usr/sbin/httpd -k start
apache 23789 23602 0 12:53 ? 00:00:02 /usr/sbin/httpd -k start
apache 23791 23602 0 12:53 ? 00:00:03 /usr/sbin/httpd -k start
apache 23802 23602 0 12:53 ? 00:00:03 /usr/sbin/httpd -k start
apache 23818 23602 0 12:53 ? 00:00:03 /usr/sbin/httpd -k start
apache 23823 23602 0 12:53 ? 00:00:12 /usr/sbin/httpd -k start
apache 23827 23602 0 12:53 ? 00:00:02 /usr/sbin/httpd -k start
apache 23840 23602 0 12:53 ? 00:00:02 /usr/sbin/httpd -k start
apache 23850 23602 0 12:53 ? 00:00:03 /usr/sbin/httpd -k start
apache 23871 23602 0 12:53 ? 00:00:03 /usr/sbin/httpd -k start
apache 23873 23602 0 12:53 ? 00:00:04 /usr/sbin/httpd -k start
apache 23880 23602 0 12:53 ? 00:00:03 /usr/sbin/httpd -k start
root 24258 23652 0 11:54 pts/0 00:00:00 -bash
apache 27938 23602 0 13:56 ? 00:00:00 /usr/sbin/httpd -k start
apache 27939 23602 0 13:56 ? 00:00:00 /usr/sbin/httpd -k start
apache 27940 23602 0 13:56 ? 00:00:00 /usr/sbin/httpd -k start
root 29952 1 0 Nov11 ? 00:00:00 /sbin/udevd -d
root 30273 1 0 Nov11 ? 00:00:01 syslogd -m 0
named 30297 1 0 Nov11 ? 00:00:00 /usr/sbin/named -u named
root 30340 1 0 Nov11 ? 00:00:00 /usr/sbin/sshd
root 30350 1 0 Nov11 ? 00:00:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
root 30384 1 0 Nov11 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
mysql 30426 30384 5 Nov11 ? 06:31:17 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-ex
root 30465 1 0 Nov11 ? 00:00:11 /usr/sbin/dovecot
root 30466 30465 0 Nov11 ? 00:00:11 dovecot-auth
nobody 30478 1 0 Nov11 ? 00:00:20 memcached -d -p 11211 -u nobody -c 1024 -m 256 -l 127.0.0.1
dovecot 30503 30465 0 Nov11 ? 00:00:07 imap-login
dovecot 30504 30465 0 Nov11 ? 00:00:07 imap-login
dovecot 30505 30465 0 Nov11 ? 00:00:07 imap-login
nobody 30519 1 0 Nov11 ? 00:00:03 proftpd: (accepting connections)
root 30582 1 0 Nov11 ? 00:00:05 sendmail: accepting connections
smmsp 30594 1 0 Nov11 ? 00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root 30643 1 0 Nov11 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
root 30657 1 0 Nov11 ? 00:00:00 crond
xfs 30715 1 0 Nov11 ? 00:00:00 xfs -droppriv -daemon
root 31757 1 0 Nov11 ? 00:00:00 /usr/sbin/atd
root 31773 1 0 Nov11 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
root 31778 31773 0 Nov11 ? 00:00:00 /usr/sbin/saslauthd -m /var/run/saslauthd -a pam -n 2
更新
问题出在 Zend Optimizer + eaccelerator 上。我用 Xcache 替换它,速度提高了约 20 倍。
答案1
是的。现在我们得到了更多信息。
你在跑步3 个站点, 在2 个核心在每个1.7GHz。 你有4GB RAM,以及3GB 免费(那挺好的)。
MySQL 和 Apache 在同一台服务器上。
关于20 httpd流程。还有一堆其他的东西,比如nginx和命名跑步。
难道这个服务器是故意做万事通的?
我认为您需要稍微扩展一下,将数据库服务器拆分到单独的盒子上。目前,这占用了服务器相当一部分“功率”。
您的 IOWait 有点高。这表明进程正在等待磁盘中的数据。可能是 MySQL。
对于这种事情,我更喜欢具有超线程技术的英特尔芯片,这样一来,对于某些应用程序来说,每个插槽就可以获得更高的性能。
建议:购买第二台服务器。在其中安装合适的 SAS 或 7200RPM SATA 磁盘。不要再试图将所有东西都塞到一台(略显陈旧和破旧的)服务器上。将其作为您的专用 MySQL 主机。
你的 PHP 基准测试很差劲。除非你正在做某件事,实际上要对大量数字求平方根,否则你的基准测试没有任何意义。
我敢打赌,部分问题在于数据库优化不佳。缺少索引,使用全文搜索。可能调优不佳。下载mysqltuner.pl看看是否能提出任何合理的建议。
还有很多我没讲到。如果你真的想解决这个问题,那你就得花钱,要么升级硬件,要么请 Linux 极客顾问,或者可能(读作:肯定)两者兼而有之。