全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2605|回复: 24

MySQL老是CPU 100% 问题求教

[复制链接]
发表于 2023-7-24 01:17:16 | 显示全部楼层 |阅读模式
本帖最后由 风筝不会飞 于 2023-7-24 20:44 编辑

为静态的PHP程序,访问量大概是 3w IP 一天 ,高峰的时候访问IP是 5000,就那么一个小时爆发一下 ,然后其他时间是 1000 不到,
并发数, 我看了下Windows的性能监视器current connection,大概有 1000左右,不知道是重复IP还是蜘蛛比较多的缘故,并发最高的时候有 2000
但是CPU经常是 80-100%, 之前做了索引,好了一段时间 ,结果没到一个月又这样了.
服务器买的one provider的E3-1230 V6 32G内存, SSD,整体 内存才跑到 40%,MySQL占用内存大概 6GB,求教下是哪里还可以设置吗

show full processlist 大部分内容都是这个 ,查询type 表
  1. state Waiting for qu ery cache lock

  2. info sele ct a.typename,a.id,a.click fr om dede_arctype a whe re a.reid='8' and a.id<>'1540' or der by click de sc limit 0,10

  3. state Waiting for qu ery cache lock

  4. info SEL ECT id,reid,typename FR OM dede_arctype WHE RE typedir like '渊下宫' or id='54' LIMIT 0,1
复制代码


query cache检查的结果
  1. show variables like '%query_cache%';
  2. Variable_name   Value
  3. have_query_cache  YEs
  4. query_cache limit   1048576
  5. query_cache_min_res_unit 4096
  6. query_cache_size  4294966272
  7. query_cache_type  ON
  8. query_cache_wlockinvali OFF

  9. Variable name  Value
  10. Qcache free blocks54564
  11. Qcache free_memory  3838310960
  12. Qcache hits 26704566
  13. Qcache inserts 8459700
  14. Qcache lowmem_prunes
  15. Qcache_not_cached  5912360
  16. Qcache_queries_in_cache 263249
  17. Qcache total blocks  583383
复制代码


my.ini 内容
  1. [client]
  2. default-character-set=utf8
  3. port=3306
  4. [mysqld]
  5. character_set_server=utf8
  6. port=3306
  7. datadir=D:\websoft\mysql-5.6.15\data
  8. basedir=D:\websoft\mysql-5.6.15
  9. tmpdir   =D:\websoft\mysql-5.6.15\data
  10. socket   =D:\websoft\mysql-5.6.15\data\mysql.sock
  11. slow_query_log_file=D:\websoft\mysql-5.6.15\log\slow.log
  12. log-bin=mysql-bin
  13. binlog_format=mixed
  14. server_id = 1
  15. slow_query_log = ON
  16. slow-query-log-file = D:\websoft\mysql-5.6.15\data\mysql-slow.log
  17. long_query_time = 30

  18. #skip-locking
  19. max_connections = 5000
  20. table_open_cache = 10240
  21. query_cache_size = 10240M
  22. tmp_table_size = 10240M
  23. thread_cache_size = 2560
  24. binlog_cache_size = 2560K
  25. thread_stack = 5120K
  26. read_buffer_size = 8096K
  27. query_cache_type = 1
  28. max_heap_table_size = 2048M
  29. key_buffer_size = 10240M
  30. expire_logs_days = 10

  31. innodb_data_home_dir = D:\websoft\mysql-5.6.15\data
  32. innodb_flush_log_at_trx_commit =1
  33. innodb_log_buffer_size = 8096M
  34. innodb_buffer_pool_size = 8024M
  35. innodb_log_file_size=10240M
  36. innodb_thread_concurrency=32
  37. innodb-autoextend-increment=1000
  38. join_buffer_size = 8192K
  39. sort_buffer_size = 8096K
  40. read_rnd_buffer_size = 8048K
  41. max_allowed_packet = 32M
  42. explicit_defaults_for_timestamp=true
  43. sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

  44. [myisamchk]
  45. key_buffer_size = 10240M
  46. sort_buffer_size = 5120M
  47. read_buffer = 2560M
  48. write_buffer = 2560M
复制代码
发表于 2023-7-24 01:19:27 | 显示全部楼层
运行池 对MySQL 做了总的资源限制?  比如内存只给用1G
伊丽莎白 该用户已被删除
发表于 2023-7-24 01:39:47 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-7-24 01:45:47 来自手机 | 显示全部楼层
内存才用了40%,说明了一切,你压根儿不把数据库当人,活TM该卡。
发表于 2023-7-24 02:07:15 | 显示全部楼层
mysql8吧,8占用内存很多的
发表于 2023-7-24 08:43:05 | 显示全部楼层
内容不经常变的 把 读缓存打开
发表于 2023-7-24 09:08:22 | 显示全部楼层
本帖最后由 heibudong 于 2023-7-24 09:10 编辑

还是索引问题。
这CPU还不至于这么弱。
Navicat  监控下 MYSQL 进程 看看哪个语句造成的。优化

点评

索引explain都看过了啊  发表于 2023-7-24 20:12
发表于 2023-7-24 09:25:14 | 显示全部楼层
优化语句,架构上读写分离,考虑把热数据放到redis等非关系型库里面
发表于 2023-7-24 15:12:00 | 显示全部楼层
我猜下是船说某个版本的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-13 16:26 , Processed in 0.073931 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表