作者seft584f8 (seft584f8)
看板CodeJob
标题[发案] 资料库优化
时间Fri Jun 2 16:18:59 2023
发案人:林先生
联络方式1:BBS信件给我你的LINE ID 我会请窗口联系你LINE
所在地区 :高雄为佳
有效时间:
专案说明:
网站运作稳定已经几年, 但从5/25开始会有crash现象发生
1. crash时间:
- 固定早上10:00左右到下午16:00
- 周一到周五
- 一天会发生约5~6次crash
2. error log线索提供:
- server reached MaxRequestWorkers setting
- 我从预设的150拉到200,400, 1000,2000 还是一样
- 不过CPU一直都维持50%以下, 所以资源很充足
- free -m查询memory都非常有余裕
3.
针对特别於10:00~16:00容易使用的订单查询页面URI去设定限制流速
<Location "/URI">
SetEnvIf Request_URI "^URI$" is_orders
Order deny,allow
Deny from all
Allow from env=is_orders
<IfModule mod_ratelimit.c>
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 2
</IfModule>
</Location>
==> 失败没有效果
5. 唯独能够知道的线索是当机之前的inbound traffic会拉高
6. 系统已经稳定运作好几年, 5/24号之前也没有改过什麽code,
唯独可能订单增加或者商品增加而已
想请熟悉网站资源配置 (ubuntu, apache, mysql, php)的人可以帮忙厘清问题
并且修改
希望可以在我旁边一起处理
我好开权限以及了解解决的逻辑
也方便我告知该注意之处
时间希望是周一到周五白天(因为主要是周一到周五才容易出现crash)
预算五千起, 如果看过需要更多可以讨论
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.142.23.149 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/CodeJob/M.1685693941.A.AE5.html
※ 编辑: seft584f8 (220.142.23.149 台湾), 06/02/2023 16:40:27
1F:推 J002: 当机前有爬虫在爬? 06/02 21:09
2F:→ nuclex: 可能顶到DB连线数的物理极限 你有做连接池之类缓冲吗? 06/02 21:32
3F:推 tofuflower: 什麽语言? 06/04 01:37
4F:推 tofuflower: 看到了,写在最後 06/04 01:42
5F:推 ek0519: php每个request都是连线…get有做redis 吗 06/04 19:45
6F:推 s0920151048: apache mpm mode? 06/04 19:52
谢谢上面各位大师的参与讨论
後来我突然想到会不会跟DB回应大小有关(资源不够可能也会造成inbould traffic增加)
我想到mysql还是apache可能会相关的参数指定最大的大小
後来在/etc/mysql/my.cnf
在 [mysqld] 部分中添加或修改以下行:
max_allowed_packet = <value>
把数值从16M提高到32M 就运作正常了
(我还有顺手作了加上防火墙的设定, 看能否降低一些恶外request)
(不过我看主要问题应该还是这个查询程式前人没写好 & 订单累积越来越多
在某个时间爆掉)
※ 编辑: seft584f8 (220.142.23.149 台湾), 06/06/2023 18:01:43
※ 编辑: seft584f8 (220.142.23.149 台湾), 06/06/2023 18:34:13
7F:推 wyyoung: 索引index 有加吗? 06/09 08:30