Performance
伺服器電源在哪裡失去?
我有 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 倍
對。現在我們得到了更多的資訊。
您正在執行3 個站點,每個站點有2個1.7GHz的****核心。你有4GB 的 RAM和大約3GB 的空閒空間(這很好)。
MySQL 和 Apache 在同一台伺服器上。
大約20 個 httpd程序。一堆其他的東西,比如nginx和命名執行。
這個伺服器是故意的嗎?
我認為您需要擴展一點,將數據庫伺服器拆分到一個單獨的盒子上。目前,這正在使用伺服器“權力”的相當大的一部分。
您的 IOWait 有點高。這表明程序正在等待來自磁碟的數據。可能是MySQL。
對於這種事情,我更喜歡帶有超執行緒的英特爾晶片,這樣你就可以在某些應用程序中獲得更高的每插槽性能。
建議:獲得第二台伺服器。將體面的 SAS 或 7200RPM SATA 磁碟放入其中。停止嘗試將所有內容都推到一台(略顯陳舊且破舊的)伺服器上。把它變成你的專用 MySQL 主機。
你的 PHP 基準很糟糕。除非您正在做的事情實際上是對大量數字求平方根,否則您的基準測試並不能說明任何事情。
我敢打賭,部分問題是數據庫優化不佳。缺少索引,使用全文搜尋。可能調得不好。下載mysqltuner.pl看看是否有任何明智的建議。
還有很多我沒有講到。如果您真的想對其進行排序,那麼無論是硬體升級,還是顧問 linux geek,或者可能(閱讀:肯定)兩者都需要花錢。