服务器通常网页加载速度很慢,并且需要很长时间才能通过 ssh 连接到

服务器通常网页加载速度很慢,并且需要很长时间才能通过 ssh 连接到

首先,我不是一个在家运行服务器大约两年的专业人士,所以请记住,我的问题的原因可能非常基本,并且有一个简单的解决方案。

我的问题是这样的:我的 Ubuntu/Apache2 服务器托管了几个网站,它们运行正常,没有错误,但偶尔会非常慢。最典型的例子是一个 Wordpress 网站,无论是在网站本身还是在管理中,有时你点击一个类别,通常会得到快速响应,有时你点击某个地方(5 分钟前你访问过的地方),加载需要 3-15 秒。服务器以前一直都很快,但现在却不是这样。

服务器没有承受任何重负载(据我所知),上传和下载速度始终是连接表值的最大值。

另一个问题(可能相关)是 SSH 登录非常慢。如果我禁用反向 DNS 查找,这个问题就会消失,但我不知道这是否相关。

如果我提供服务器上托管的特定域的链接会有帮助吗?是否有任何值得发布的日志/配置?我很乐意发布所需的任何内容。如果我可以提供任何信息,请告诉我。

感谢您提供的任何帮助。


编辑:

/etc/hosts粗略估计,当我添加条目将每个包含 Wordpress 站点的根域转发到 127.0.0.1 时,这似乎有点帮助,但是

  1. 它并没有解决问题,只是让它变得更小了一点
  2. 即使可行,也可能只是解决其他地方实际问题的一个粗暴的解决办法

答案1

如果插件中存在内存泄漏,则此行为很常见。这会导致内存不足,并且服务器线程开始调入和调出内存。如果允许过多线程,也会发生这种情况,因为 Apache 会在负载增加时产生新线程。有许多设置可用于解决此问题。

  • 设置MaxRequestWorkers为较小的级别将限制线程数。它应该足够小,以便所有工作线程都能放入内存中,并且还有剩余空间。
  • 设置MaxConnectionsPerChild为较小的级别应该可以限制内存泄漏的影响。如果您怀疑存在内存泄漏,请尝试将值设置为 100 或 200 一段时间。
  • 您可以设置一个硬内存限制,limits.conf如果泄漏了太多内存,将导致线程死亡。
  • 调整MaxSpareServers可能会有帮助。如果太低,您可能会频繁生成新服务器。如果太高,那么您可以增加内存分页。

可能是其他进程正在消耗内存,这导致 Apache 页面显示。如果服务器不是专用 Web 服务器,则任何其他进程或进程组合都可能导致此问题。

如果虚拟机需要内存,主机系统可以对其进行分页。其行为与虚拟机内存不足时的行为非常相似。

经常运行有助于识别资源限制。选择遇到问题的时间段来atsar检查捕获的输出。sar

相关内容