2024年3月

composer dump-autoload 是一个 Composer 命令,用于重新生成自动加载器文件。Composer 通过自动生成的自动加载器文件来加载 PHP 项目中使用的类。当你安装新的 Composer 依赖、更新依赖版本或者添加新的命名空间时,你需要运行 composer dumpautoload 命令来更新自动加载器文件,以确保新添加的类能够被正确加载。

这个命令实际上会根据你项目的 composer.json 文件中的配置信息,重新生成 vendor/autoload.php 文件,其中包含了所有需要加载的类的信息。这样,在你的项目中使用 Composer 安装的类和依赖就可以被自动加载,而无需手动引入文件。

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

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


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

这个问题过年期间一直存在,一开始以为是资源过多,因为确实加载了很多图片以及其他静态资源。
当时登录上可视化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端口哦。🤪

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