我在 Ubuntu 15.04 上使用 Apache 2.4.10,并且我的整个服务器在 SSD 上运行并在 Hyper-V 中虚拟化。
- 我应该何时在 Apache 2.4 中启用 mod 缓存?
目前,静态文件的 TTFB 非常好。(0.015 - 0.020 秒 TTFB,ping 时间为 ~7ms)
- 我怀疑在这里使用缓存是否有任何意义,因为我认为大多数 TTFB 是由建立 TCP 连接引起的。——这个假设正确吗?
我注意到动态内容(例如 PHP 脚本)具有更高的 TTFB(例如 0.085-0.120 秒)。
- 在 Apache 中启用缓存是否会使这些动态内容的加载速度更快?
我读到过我应该使用 mod_disk_cache,因为它利用了 Linux 中的 sendfile API,这使得它比 mod_mem_cache 更快,而其他人则说 mem_cache 更快。
#
我做出的第一个性能决策是使用 –enable-disk-cache,在进行一些研究后,我发现与您想象的相反,在 Apache mod_cache 和 OS 交互方面,磁盘缓存比内存缓存更快。原因是当您使用 mod_mem_cache 时,将文件读入内存的过程(基本上是将其数据复制到 RAM 中,因此为了传送它而复制到内核缓冲区中)并不是最佳选择。当使用 mod_disk_cache 时,Linux 使用 sendfile API,它不需要服务器在传送文件之前读取文件。服务器通过 API 识别要传送的文件和目的地,然后操作系统读取并传送文件,因此不需要读取 API 或有效负载的内存,操作系统只需使用文件系统缓存即可。因此内核充当缓冲区,从而提高了缓存速度。
#
来源:http://www.philchen.com/2009/02/09/some-tuning-tips-for-apache-mod_cache-mod_disk_cache
那么最佳的缓存方法是内存还是磁盘?
在与 Web 文件夹相同的驱动器上使用 mod_disk_cache 是否有意义?我认为它只是使用不同的目录来加载缓存文件,而不是读取源文件。但我不明白为什么这会更快。
答案1
兄弟,我遇到了类似的问题,但是你考虑过使用 fastcgi 吗?我正在用它进行测试,请记住,你必须在应用程序中使用缓存和一些数据(系统或你正在服务的任何内容)我正在考虑使用 mod cache,但我找到了你的问题!我意识到使用 apc 缓存会起作用(我不太确定是否使用它)
这是一方面,是的,打开或关闭并连接的简单事实需要时间,因此使用 fastgi(一种代理服务器)将改善时间(使用 socks)
对于使用内存或磁盘,由于您有 ssd hdd,因此使用内存或磁盘的响应时间不会有很大改善
在 digital ocean 上有很多关于设置这个 mod 的材料