Есть сайт на битриксе на дедике. При тесрировании в частности дает вот такую картину:
Как видно не фонтан. Однако если протестить скорость диска:
root@site ~# hdparm -t /dev/md126
/dev/md126:
Timing buffered disk reads: 2532 MB in 3.00 seconds = 843.80 MB/sec
root@site ~# sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
1024+0 записей получено
1024+0 записей отправлено
скопировано 1073741824 байта (1,1 GB), 0,672519 c, 1,6 GB/c
То показатели оч. неплохие. Ещё бы - там nvme. Проверил на VDS'ке с обычным SSD который медленнее чем этот почти вдвое, и получил >44000 фо/с
Как так-то?
PHP 7.4.21
open_basedir не задан
И там и там php - модуль apache.
UPD:
Вот скрипт тестирования скорости файловых операций.
<?
function getmicrotime()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$res = array();
$file_name = __DIR__."/../upload/perfmon#i#.php";
$content = "<?\$s='".str_repeat("x", 1024)."';?><?/*".str_repeat("y", 1024)."*/?><?\$r='".str_repeat("z", 1024)."';?>";
for ($j = 0; $j < 4; $j++)
{
$s1 = getmicrotime();
for ($i = 0; $i < 100; $i++)
{
$fn = str_replace("#i#", $i, $file_name);
}
$e1 = getmicrotime();
$N1 = $e1 - $s1;
$s2 = getmicrotime();
for ($i = 0; $i < 100; $i++)
{
//This is one op
$fn = str_replace("#i#", $i, $file_name);
$fh = fopen($fn, "wb");
fwrite($fh, $content);
fclose($fh);
include($fn);
unlink($fn);
}
$e2 = getmicrotime();
$N2 = $e2 - $s2;
if ($N2 > $N1)
$res[] = 100 / ($N2 - $N1);
}
if (count($res))
echo array_sum($res) / doubleval(count($res));
else
echo 0;