我目前在 2 个不同的位置(数据中心)运行一个网站,但运行同一台机器。在过去的几个月里,整个表现一直在下降,我一直无法找到罪魁祸首。
两台机器都在 SoftRaid 上运行 Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz(8 个线程)、32GB 内存、2x120GB SSD 磁盘。
两台机器都运行以下软件:
两台服务器都运行相同的代码,我使用 Amazon Route 53 来平衡使用 DNS 的流量。
服务器过去运行良好,大约有 2000 个用户浏览网站(来自 Google Analytics 的数据),平均负载永远不会超过 1。
最近,我看到性能大幅下降。任何任务都会将平均负载提高到 6-8,有时很容易超过 15-20。即使是一次代码部署(一些 bash 任务和一个没有太多麻烦的 git 克隆)也将花费很长时间,并且会看到平均负载增加并减慢整个机器和网站的速度。
几个月前,我不得不增加 MySQL 连接,同时我确实增加了打开文件的限制。当前的 MySQL 连接是在 2000 上,我让 MySQL 自己打开文件(值=0 会自动为你检测)。
我的主要猜测是这与数据库配置有关,我看到复制时很慢(是主-主复制),每次在网站中有插入时,我都可以看到加载时间跳到 10-15 秒。
最奇怪的是我只在一台服务器上有流量。使用 AWS Route 53,我从池中删除了一台服务器,因此只有其中一台服务器实际上正在加载,即便如此,机器还是超载了。下面是一个例子:
在发生这种情况时,我试图在网站上发表评论,这是对一个表的简单 INSERT,其中有 1 行,它只插入 3 个值:
问题是……这个网站在我的带有 1 个 CPU 和 2GB 的 Vagrant 开发机器上运行得比它在大盒子的实际生产中运行得更好。
我确定您希望看到一些文件来提供帮助,我只是不知道什么可能有帮助,所以请告诉我,我会显示您可能需要的任何配置。
提前致谢!
performance ×1