我对MySQL使用大量内存有问题。
在SSH中添加此项以查看内存消耗。
ps --no-headers -Leo pmem,pcpu,command|awk 'BEGIN { print "CPU't'ttMEM't'tPROCNAME 'n" } {{array[$3]+=$2};{array2[$3]+=$1}} END { for ( item in array) print array[item] " %" "'t" ,array2[item] " %" "'t't", item }' |awk 'NR==1;NR > 1 {print $0 | "sort -rn -k 1,1"}'
内存消耗的图像:https://i.stack.imgur.com/Dcdfq.png
- 上一张图片显示MySQL/PHP的高消耗
VPS服务器规格:
突发存储器:2048 MB
保证内存:1024 MB
RAID10存储:60 GB
月流量:2000 GB
操作系统:Centos 6 32位
cPanel;WHM
如何解决?
好消息是:你的网站非常受欢迎,你的主机容量已经超过了!
坏消息是:你的网站太受欢迎了,你的主机容量已经超过了。
CPU和内存利用率本身并不一定代表真实世界的性能,尤其是在web应用程序上,您往往会遇到流量峰值,从而达到资源利用率峰值。
如果你的网站确实很慢,最便宜的选择可能是从你的主机提供商那里购买更多的CPU/内存。
您可以调整MySQL配置设置以减少内存消耗,可能会以牺牲性能为代价。
如果你不想为更多的铁付费,你就必须优化你的网站。没有细节很难具体说明,但挂在最下面的果实通常是:
- 使用缓存。为了提高效率,您可以缓存页面(例如使用CDN)、缓存页面片段和缓存数据库查询。这应该有助于CPU,但可能会增加内存使用量
- 查看数据库并查找长期运行的查询;调整它们