封面:Pixiv 77080388

发现问题

在今天登录节点服务器的面板后,注意到服务器的内存占用率已经达到了73.4%
尽管服务器仅有2C2G的配置,然而在其上除开面板仅安装了Nginx与PHP,出现如此高的占用绝对不正常。

排查问题

一开始认为是Nginx的锅,然鹅重启之后发现占用率仍未下降,说明与Nginx无关。
此时怀疑是内存泄漏,为了了解内存占用情况,便在终端输入了top命令。

按下Shift+M可以以内存占用排序

结果一看才发现,列表里几乎全都是python3,也就不是内存泄漏的问题了。

解决问题

此时目标就明确了,输入ps aux | grep python,接着找到对应进程的PID并kill掉就好。

果不其然,在相关进程全部干掉之后占用率立刻降到了33.2%。

可能原因

在上图中可以发现,异常进程执行的命令几乎都是python3 ./script.py,对应的脚本是在CID 9中给出的脚本。
该脚本在节点服务器与主服务器上皆有部署,然而仅有节点服务器出现了高内存占用的情况,考虑比较两者的差异。

# 主服务器
response = requests.get("https://webapi.lowiro.com/webapi/serve/static/bin/arcaea/apk").json()

# 节点服务器
response = requests.get("https://api.mioical.moe/arcaea/server/main").json()

其中节点服务器请求的是主服务器上的API,结合日志中时不时的API连接异常,便可以得出可能的结论:API超时。