看起来我做了非常愚蠢的事情:) 我正在尝试优化性能,所以我安装了 eAccelerator 来缓存和加速 PHP 脚本的执行。之后,我安装了 APC 来存储和检索 RAM 内存中的 HTML 页面(如果我是对的)。在同时启用eAccelerator 和 APC 对新 PHP 脚本进行基准测试后,我发现从磁盘读取 HTML 文件并显示它比从 APC 缓存显示它更快。这是 benchamrk 结果和 PHP 脚本。我需要建议如何配置 eAccelerator 或 APC 以获得更好的结果。
ab -kc 500 -n 100000 http://0.0.0.0/html_disk.php
Requests per second: 14197.42 [#/sec] (mean)
Time per request: 35.218 [ms] (mean)
Time per request: 0.070 [ms] (mean, across all concurrent requests)
Transfer rate: 237307.67 [Kbytes/sec] received
ab -kc 500 -n 100000 http://0.0.0.0/html_apc.php
Requests per second: 11795.11 [#/sec] (mean)
Time per request: 42.390 [ms] (mean)
Time per request: 0.085 [ms] (mean, across all concurrent requests)
Transfer rate: 197199.56 [Kbytes/sec] received
脚本很简单: html_disk.php
$file = file_get_contents('page.html');
echo $file;
html_apc.php
if ($page = apc_fetch('page')) {
echo 'APC!';
echo $page;
} else {
echo 'FILE!';
$file = file_get_contents('page.html');
echo $file;
apc_add('page', $file, 120);
}
在第一个脚本加载 HTML 页面后应该从共享内存中加载,对吗?