这个项目是我开发的一个校园号卡分销系统,按年授权提供给各大高校的营业厅老板使用。

没想到流量超乎我的预设,中途服务器进行了多次扩容,不然根本无法承受的访问。收的他们年授权费用也亏了,明年得涨价😁,总之这个项目是亏本了,收的钱少了。


今天一大早收到负载告警。

这个问题过年期间一直存在,一开始以为是资源过多,因为确实加载了很多图片以及其他静态资源。
当时登录上可视化Linux面板,先看看服务监控,看到区别于往日的上下行流量,下意识的判断是静态资源过多,于是把静态资源全部放到一个单独的语速下并使用CDN配置缓存时间,当时流量确实有减少,但问题并没有解决,因为我并没有发现问题的真正所在,再一个过年,好多事要忙,也没空去继续管了,因为CPU负载也没有100%了,好歹系统能正常访问了。

2024-03-02T03:47:13.png
2024-03-02T03:35:05.png
2024-03-02T03:35:13.png


没想到这个月又出现这种问题,于是我心想,可能是其他问题,也许网站程序或者服务器配置出错了。
暴露出来的特征:CPU 100%、上下行流量不正常。

先分析服务器网络流量,发现是正常的。
2024-03-02T03:34:39.png

再看看CPU占用是怎么回事。

发现是Redis在大量占用。

2024-03-02T03:39:23.png

那么可能是网站程序在不恰当的使用Redis,查看网站日志,找到对应URL。

2024-03-02T03:41:10.png

找到对应的代码。

2024-03-02T03:41:58.png

输出数据后发现有数千条,那这样就知道了。

每个用户访问都会使用Redis查询数千条数据,能不卡才怪。上下翻了下代码,当时为什么要这么写,原来本来设置一分钟的缓存时间错误的设置成了24小时,所以查询的数据量巨大。

问题,搞定!

好习惯:处理完问题之后,服务器防火墙关闭SHS端口哦。🤪

(文中出于安全考虑,只展示关键截图,可能影响系统安全的因素均不予展示)

标签: 校园号卡分销系统

添加新留言