cpu过高 - 如何优化因 MYSQL 读写频繁,负载过高导致的CPU高占用率?

 裂爆传说_818 发布于 2022-11-04 18:42

自己做的一个 demo 网站,每天近 22W 左右的访问量,1500 左右独立用户。

现在的问题是数据库有个表读写非常频繁,数据量不大,但是并发数还是很客观的,每日特别是在中午,同时在线人数达到 500 人时,并发读写数据库,导致 MYSQL 进程 CPU 狂飙。

由于自己是前端工程师,对后端不是特别熟悉。对于这种并发读写特别高的情况,如何才能优化程序,降低 CPU 占用率(主要是 mysqld 这块)?

也稍微了解了一些缓存技术 例如 memcache redis 等等。

不知道我的这种情况适合什么样的缓存解决方案,请大家帮我出出主意,谢谢。


2 个回答
  • 看截图这负载不算高。。。

    1、开启 mysql 慢查询,看看有没有可以优化的 SQL;

    2、该做缓存的地方做好缓存,新手 memcache 就够用了;

    3、想起来补充。。。

    2022-11-12 01:52 回答
  • 楼上基本上都说了,我这里再补充一点:

    1.show processlist 语句,查找负荷最重的 SQL 语句,优化该SQL,比如适当建立某字段的索引;

    2.开启慢查询,找到性能瓶颈点的SQL语句,然后使用explain,看看该语句是否可以优化;

    3.在多用户,高并发的情况下,任何系统都会hold不住的,所以,使用缓存是必须的,就向楼上说的memcached,或者redis,这些都可以;

    4.打开配置文件,看看tmp_table_size大小是否偏小,如果允许,适当的增大一点;

    5.如果max_heap_table_size配置的过小,增大一点;

    6.怎么你的swap空间为0啊?

    最后,你的CPU并不是很高,还可以接受。

    2022-11-12 01:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有