系统概况:阿里云ECS,1G内存,单核,带宽1Mbps。
[[email protected] quickdist]# free total used free shared buffers cached Mem: 1020648 917988 102660 0 187980 238204 -/+ buffers/cache: 491804 528844 Swap: 0 0 0 [[email protected] quickdist]# cat /proc/c cgroups cmdline cpuinfo crypto [[email protected] 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
时间: 2024-09-30 22:16:28