系统概况:阿里云ECS,1G内存,单核,带宽1Mbps。
[x@code quickdist]# free
total used free shared buffers cached
Mem: 1020648 917988 102660 0 187980 238204
-/+ buffers/cache: 491804 528844
Swap: 0 0 0
[x@code quickdist]# cat /proc/c
cgroups cmdline cpuinfo crypto
[root@code quickdist]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
stepping : 7
cpu MHz : 2300.186
cache size : 15360 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush mmx fxsr sse sse2 ht syscall nx lm up rep_good unfair_spinlock pni ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm
bogomips : 4600.37
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
测试一个多表反复JOIN的接口的性能。人肉压测方法:不断点屏幕刷新。效果如下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6019 mysql 20 0 602m 68m 4500 S 12.0 6.9 5:13.13 mysqld
19350 www 20 0 247m 47m 8596 S 4.3 4.8 0:11.52 php-fpm
13372 www 20 0 256m 58m 8428 S 4.0 5.9 0:50.62 php-fpm
13757 www 20 0 257m 58m 7436 S 4.0 5.9 0:58.07 php-fpm
13373 www 20 0 249m 50m 8684 S 3.0 5.0 0:57.08 php-fpm
可见:php的内存使用比较泛滥,需要优化。mysql会成为瓶颈,需要大力优化SQL语句,可以考虑采用NoSQL的思路解决JOIN问题,另外,还需要减少无效的SQL请求次数。
对比一个简单页面的人肉压测,SQL压力非常小,php的内存消耗依然比较大:
13373 www 20 0 249m 50m 8684 S 3.7 5.0 0:57.48 php-fpm
19350 www 20 0 247m 47m 8596 S 3.7 4.8 0:11.89 php-fpm
13757 www 20 0 257m 58m 7436 S 2.7 5.9 0:58.43 php-fpm
13372 www 20 0 256m 58m 8428 S 2.3 5.9 0:50.96 php-fpm
6019 mysql 20 0 602m 68m 4500 S 1.0 6.9 5:13.39 mysqld