css - 我的 Apache2 服务器处理一些 css 和 js 文件的速度很慢。知道为什么吗?
问题描述
我不确定这是服务器问题还是编程问题。我搜索了类似的问题,但找不到类似的东西。
我有一台运行 Debian Buster 的服务器,为 Apache2 上的站点提供服务。本周,我的一个网站变得非常缓慢,渲染一个通常需要 2 到 4 秒的页面需要超过 25 秒。
一开始,我检查了PHP程序,但它在不到1秒的时间内完成了所有处理,有时需要2秒。
因为我必须根据页面的大小放置一些菜单,所以我将所有内容保存在 PHP 变量中,然后决定是否添加额外的菜单。最后,我将变量“回显”到浏览器。
也就是说,在检查了很多之后,我发现:
- 当我打开一个页面时,在 PHP 中处理 html 并不需要时间,并且在将其写入浏览器后,浏览器开始“等待 www.mydomainname.tld”20 多秒。
- 通过运行 top,我看到 2 或 3 个 Apache 进程在那段时间在服务器上以 100% 的 CPU 运行。
- 服务器上缺少我的一个 css 文件。通过替换它,其中一个 100% 的 Apache 进程消失了(可能运行和关闭);
- 另一个 CSS 文件在服务器中,但是在 html 页面中调用该文件时,出现了相同的(100% CPU 运行)问题。如果我在 html 中禁用它,一切都会按预期快速运行。在不到 4 秒的时间内在浏览器中呈现顶部。
我知道这不容易重现,现在我禁用了第二个 CSS 文件,所以我的网站正在运行,但如果有人能给我一个想法,我应该在哪里寻找这个解决方案,如果有的话,那就太好了?
我什至检查了硬盘,SMART 标志似乎没问题。还没有停止服务器检查磁盘。我在运行相同系统的虚拟机中拥有该服务器的副本,并且在本地运行速度非常快。我担心我的服务器是否有任何问题需要我进行维护?
补充一点:服务器是一个 AMD 八核,在 RAID1 集中具有 32GB 的 RAM 和 3 TB x 2 个磁盘,所以服务器规格不是罪魁祸首(我认为)
解决方案
我在 RAID 中运行了 badblocks 检查,没有发现任何错误。然后我要求支持人员在生产日期之前更换旧磁盘,令人惊讶的是(因为我没有证据证明该磁盘损坏)他们接受了。重建 RAID 集后,缓慢消失了。
因此,这不是一个好的答案,但也可以作为任何有此问题的人的提示。
推荐阅读
- java - 从父类公共成员调用的子类私有成员
- react-native - 无法使用 react-native-firebase 在 Android 8 的前台接收通知
- javascript - onbeforeunload 在其他情况下根本不工作
- javascript - 如何从 JSON 数组中检索 JSON 数据?
- c++ - 自定义宽度变量
- python - 将条件序列赋值转换为自定义函数
- python - Pygame 滞后添加了 pygame 矩形
- arrays - 第一行的 JSON 模式不同,其余行的 JSON 模式不同
- google-cloud-platform - 在自己的 WAS 上挂载 GCS 不正确吗?
- ios - 更改 StatusBar 背景颜色和preferredStatusBarStyle 的最佳方法应该是什么?