Tom*_*nal 2 linux disk-cache ramdisk
我负责托管一个又大又慢但易于扩展的 PHP 应用程序。该应用程序是完全静态的,需要可写磁盘存储。我们已经分析了应用程序,主要瓶颈似乎来自加载应用程序而不是应用程序所做的工作。该应用程序不是 CPU 密集型的,尽管它确实使用了相当数量的内存(想想 Magento)。
目前,我们通过在硬盘驱动器上具有相同 PHP 文件的一系列服务器和在它们前面的负载平衡器来分发它。容易但昂贵。
我一直在阅读有关RAM 磁盘及其提供的 IO 优势的信息,并想知道它们是否非常适合 PHP 应用程序。
由于 PHP 应用程序是针对每个请求从磁盘加载的,并且通常涉及许多不同的文件(而不是像 Java 应用程序那样保存在内存中),我认为磁盘性能可能是一个严重的瓶颈。
将 PHP 文件放在 RAM 磁盘上并使用挂载点作为 Apache 的文档根目录会提供性能优势吗?启动脚本可以创建 RAM 驱动器,然后将文件(纯文本和小文件)从永久位置复制到临时 RAM 驱动器。
这是否有意义,还是我应该相信 linux 内核自己将适当的文件缓存在内存中?
不,虚拟磁盘实际上会损害 PHP(当与 PHP 加速器等更好的解决方案结合使用时)。
提高 PHP 性能的最好方法是使用 PHP 加速器。这些是插入 Web 引擎(例如 apache httpd)并缓存 PHP 脚本的编译字节码的模块。然后将该缓存存储在 ram 中。结果是以后对 PHP 脚本的调用根本不会进入磁盘,预编译的字节码会从缓存中提取。这意味着您不会从使用 ramdisk 中获得任何好处,而是最终消耗了可以在其他地方使用的 ram。
根据您的发行版和您使用的 Web 服务器引擎,您可能已经运行了 PHP 加速器。
.
这是关于该主题的 2 篇很好的维基百科文章:
PHP 加速器 PHP 加速器
列表
我倾向于认为,如果你有一台具有足够 RAM 的机器,操作系统磁盘缓存在缓存适当的内容方面也能做得很好(如果不是更好的话,因为它不会缓存未使用的文件) ),但是在验证您实际上过度访问磁盘(使用 sar)后,您应该在测试服务器上对其进行基准测试。
归档时间: |
|
查看次数: |
4056 次 |
最近记录: |