大量慢查询导致CPU占用率很高

zzjhello2022-07-11  568

网站之前用的是discuz,现在改为了wellcms,导致了大量的慢查询,以前的discuz的链接都可以访问网站

慢查询如下:

SELECT tid,verify_date FROM well_website_thread_tid  WHERE `fid` IN ('1')  ORDER BY `tid`  DESC  LIMIT 1028069,1;

SET timestamp=1657531284;
SELECT tid,verify_date FROM well_website_thread_tid  WHERE `fid` IN ('1')  ORDER BY `tid`  DESC  LIMIT 1456520,1;

SET timestamp=1657531286;
SELECT tid,verify_date FROM well_website_thread_tid  WHERE `fid` IN ('1')  ORDER BY `tid`  DESC  LIMIT 1107062,1;
# Time: 220711 17:21:29

导致了CPU占用率非常高

现在要怎么办才能处理掉这些慢查询呢

转载请注明原文地址:https://www.wellcms.net/read-341.html
00
最新回复(3)
  • 看看站点有多少蜘蛛吧。把以前的链接在nginx屏蔽掉

    另外 LIMIT 1456520,1;  这种查询1条数据,你修改了程序吗?

    回复00
  • 从来没有修改过程序
    因为是原来discuz程序的直接覆盖,所以访问链接有很多是:
    /forum-24-1.html
    /thread-101671-1-1.html
    通过这样的链接可以直接进入相应的列表页
    还有一些404的错误页面:
    /forum.php?mod=viewthread&tid=676453&extra=page%3D1&ordertype=1

    蜘蛛访问量不高,另外一台wellcms的服务器,完全的新站,蜘蛛数量更多,CPU占用很低

    因为CPU占用率高,所以排查原因,在log中发现大量的如上的慢查询。
    回复00
  • 在nginx层屏蔽掉导致404的链接

    这种如果没有使用BBS插件,是没有这种链接的,直接屏蔽。
    thread-101671-1-1.html
    forum-24-1.html

    另外要看看导致
    SELECT tid,verify_date FROM well_website_thread_tid  WHERE `fid` IN ('1')  ORDER BY `tid`  DESC  LIMIT 1107062,1;
    这种查询是首页和频道,正常是不会在这个表查询一条数据的。

    wellcms 正常使用在同配置没有优化的情况,性能几乎是天花板了。

    出现这种问题是不正常的。排查蜘蛛数量和访问链接很重要。还要看同服务器其他站点是否占用资源很大。
    回复10

    • 倚楼观天象
      2022-07-16 22:30:03
      @燃烧的冰因为他URL和well相似而符合well的结构 所以识别错误了呗。。屏蔽旧链接就好了。。