最近,我们的专用服务器负载过高。用户看到错误消息
“现在无法连接。无法分配请求的地址”
随机弹出。
我们有 2 台 Linux 应用服务器,运行 lightspeed Web 服务器和 1 台 mysql/mariadb 数据库服务器。
我们不确定这个错误是来自 Web 服务器还是 mysql。
我们可以在配置中改变什么来阻止这个错误再次发生?
答案1
我认为我们需要更多信息才能帮助您(什么样的服务器、CPU、内存等)。但这里有一些需要检查的基本项目:
- 运行 top 查看哪些进程占用了最多的内存和 CPU。您还可以运行
free -m
查看内存使用情况。 - 根据以上输出检查
lsof|grep <app_name>
打开了哪些文件。这将告诉您要关注哪个应用程序。 netstat -vatnl |grep TIME_WAIT
或netstat -tulpen |grep <PORT>
。这是为了检查 TCP 连接和状态。“无法分配”消息似乎与网络绑定或 TCP 套接字有关。因此,您还应该检查您的 tcp 设置,例如 net.core.somaxconn 或 net.ipv4.tcp_max_syn_backlog。有大量指南可用于调整 Web 和数据库服务器的这些值。- 对于 mysql 负载和性能,您可以
SHOW PROCESSLIST
从 mysql 提示符运行。这将提供所有当前查询的列表。例如,在这里您可以识别运行时间较长的查询。
希望这有帮助,祝你好运!