Скорость работы с диском

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Скорость работы с диском

Непрочитанное сообщение icb » 2014-02-10 19:01:00

Установил Bitrix на сервер FreeBSD. Запустил монитор производительности и получил странные значение на пустом сервере.
Эталон (файловых операций в секунду) 10.000, а я получаю около 5.700
Код проверки довольно простой:

Код: Выделить всё

<?

function getmicrotime()
{
   list($usec, $sec) = explode(" ", microtime());
   return ((float)$usec + (float)$sec);
}

$res = array();
$file_name = "test_file.#i#";
$content = "<?\$s='".str_repeat("x", 1024)."';?><?/*".str_repeat("y", 1024)."*/?><?\$r='".str_repeat("z", 1024)."';?>";

for($j = 0; $j < 4; $j++)
{
	$N1 = 0;
	$N2 = 0;

	$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);
}

echo 'fs = ' . array_sum($res)/doubleval(count($res)) . '<br>';

?>
Почему могут получаться такие маленькие значения?

Попробовал увеличить количество операций, смотрю при этом gstat и не вижу нагрузку на HDD.
Получается PHP не использует HDD на полную мощность?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alex Keda » 2014-02-17 22:39:32

получается сам пых тормозит.
попробуйте поиграться с дисковыми кэшами
Убей их всех! Бог потом рассортирует...

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-02-18 10:14:08

Очень на это похоже, особенно учитывая нормальную скорость и нагрузку на диск от dd.
Но вот вопрос - что именно тюнить? Неужели у всех PHP нормально грузит диск?

fidaj
мл. сержант
Сообщения: 136
Зарегистрирован: 2009-12-19 20:54:03

Re: Скорость работы с диском

Непрочитанное сообщение fidaj » 2014-02-18 19:32:19

php с какими опциями собран?

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-02-19 14:11:10

Код: Выделить всё

OPTIONS_SET= \
	CLI \
	IPV6 \
	MAILHEAD \
	FPM \
	SUHOSIN

OPTIONS_UNSET= \
	CGI

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alex Keda » 2014-02-23 21:18:56

Код: Выделить всё

bkp0$ php t.php 
fs = 7823.8631589473<br>

bkp0$ cd /home/tmp/
bkp0$ mv /tmp/t.php ./
bkp0$ php t.php
fs = 7155.5147381159<br>

bkp0$ 
первый вариант - tmpfs, второй - UFS2
копеечная разница в скорости грит что затык не в скорости доступа к диску
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Neus
майор
Сообщения: 2012
Зарегистрирован: 2008-09-08 21:59:56

Re: Скорость работы с диском

Непрочитанное сообщение Neus » 2014-02-24 7:49:49

https://www.linux.org.ru/forum/admin/9878905
тут тож чел маеца

Аватара пользователя
Alvares
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-10 12:48:08
Откуда: Воронеж
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alvares » 2014-02-24 7:51:53

шойта у меня скачет от 2000 до 8500 на ext4 и reiser3. Причем пофиг, на какой. И там и там результаты разнятся. Это на виртуалке.
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-02-24 13:58:29

Т.е. дело не в диске, а в PHP или FreeBSD?
Что тюнить?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alex Keda » 2014-02-25 22:51:07

фиг знает...
натюните чёнить - расскажите

у нас тоже некторые кипятком писаются от этих тестов....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Neus
майор
Сообщения: 2012
Зарегистрирован: 2008-09-08 21:59:56

Re: Скорость работы с диском

Непрочитанное сообщение Neus » 2014-02-26 7:07:12

!есть идея - прогнать эти тесты в Linux-Jail :)

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-02-27 10:54:10

натюните чёнить - расскажите
Знать бы что тюнить.
Ни в PHP, ни во FreeBSD вроде настроек похожих нет.
у нас тоже некторые кипятком писаются от этих тестов.
Все у кого Битрикс думают что FreeBSD гораздо медленнее Linux :(

Аватара пользователя
Alvares
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-10 12:48:08
Откуда: Воронеж
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alvares » 2014-02-27 14:44:32

Виртуалки на Virtualbox. Заглушены все сервисы, голая система

Код: Выделить всё

% uname -r
9.2-STABLE
% php -v
PHP 5.4.25 (cli) (built: Feb 12 2014 19:18:23)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
% php test.php
fs = 3550.4322506692
А вот Linux:

Код: Выделить всё

gentoo# uname -r
3.10.25-gentoo
gentoo# php -v
PHP 5.5.9-pl0-gentoo (cli) (built: Feb 18 2014 17:44:30)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
gentoo# php test.php
fs = 3627.0783751911 EXT2
fs = 2724.7319906955 EXT4
fs = 2890.7234607040 EXT3
fs = 3063.5931094975 REISERFS 3.6
fs = 2199.7672248935 BTRFS 3.12
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-02-27 14:50:41

Очень странно. Как же они тогда получили 10000?

Аватара пользователя
Alvares
прапорщик
Сообщения: 485
Зарегистрирован: 2008-07-10 12:48:08
Откуда: Воронеж
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alvares » 2014-02-27 14:57:21

Freebsd ZFS. Пул сделан на файле /test_zfs
fs = 2529.9389358613
atime=on/off compression on/off практически не влияют.
Но надо заметить, что это i386 256M RAM на виртуалке. x64 под рукой нет. Может, там повеселее чуть будет, хотя не уверен.
Да и проц буджетный Pentium-E5200
Бог создал людей сильными и слабыми. Сэмюэл Кольт сделал их равными...

Аватара пользователя
DevZone
рядовой
Сообщения: 41
Зарегистрирован: 2012-04-14 8:04:05

Re: Скорость работы с диском

Непрочитанное сообщение DevZone » 2014-03-01 6:35:28

icb писал(а):Все у кого Битрикс думают что FreeBSD гораздо медленнее Linux :(
На деле все наоборот

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Скорость работы с диском

Непрочитанное сообщение Bayerische » 2014-03-01 7:38:07

http://searchengines.guru/showthread.php?t=789377
Тесты Битрикс говорят только об одном: что из Битрикса надо уволить тех, кто придумал там заниматься нагрузочным тестированием. Причем гнать их надо с позором у всех на глазах. Лучше не делать никак, чем делать дерьмо.
Суть в том, что тест Битрикса сделан под сам Битрикс, т.е. он синтетический. Забить на это гавно.

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-03-03 8:06:33

Понятно про тест Битрикса.
Но почему PHP не может использовать диск на всю катушку? В чем причина таких ограничений?

Аватара пользователя
DevZone
рядовой
Сообщения: 41
Зарегистрирован: 2012-04-14 8:04:05

Re: Скорость работы с диском

Непрочитанное сообщение DevZone » 2014-03-03 21:16:44

Пусть попробуют запустить HHVM ( http://www.freshports.org/lang/hiphop-php/ )
Возможно в самой пыхе оверхеды

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35476
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение Alex Keda » 2014-03-04 21:26:41

DevZone писал(а):Пусть попробуют запустить HHVM ( http://www.freshports.org/lang/hiphop-php/ )
Возможно в самой пыхе оверхеды
прикольная штука, но мне например не подойдёт - у нас биллинг - на одних Eval() и построен =))
Убей их всех! Бог потом рассортирует...

Аватара пользователя
DevZone
рядовой
Сообщения: 41
Зарегистрирован: 2012-04-14 8:04:05

Re: Скорость работы с диском

Непрочитанное сообщение DevZone » 2014-03-04 21:38:18

https://wiki.php.net/rfc/performanceimprovements
Alex Keda писал(а):прикольная штука, но мне например не подойдёт - у нас биллинг - на одних Eval() и построен =))
php55 + opcache тогда пробуйте

Тюнинг одной штуки под битриксы http://haydenjames.io/set-monitor-phps- ... correctly/

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Скорость работы с диском

Непрочитанное сообщение icb » 2014-03-05 1:57:40

Тюнинг одной штуки под битриксы http://haydenjames.io/set-monitor-phps- ... correctly/
Странно:

Код: Выделить всё

var_dump(realpath_cache_get());
array(0) { }
Может в этом и проблема? Но почему не используется realpath_cache? Как исправить?

Аватара пользователя
DevZone
рядовой
Сообщения: 41
Зарегистрирован: 2012-04-14 8:04:05

Re: Скорость работы с диском

Непрочитанное сообщение DevZone » 2014-03-05 2:56:21

icb писал(а):Странно:

Код: Выделить всё

var_dump(realpath_cache_get());
array(0) { }
Может в этом и проблема? Но почему не используется realpath_cache? Как исправить?
Похоже на баг в php

Кстати тем кто использует NFS для кластеризации http://php.webtutor.pl/en/2011/06/02/ru ... -solution/

ev
ст. лейтенант
Сообщения: 1325
Зарегистрирован: 2008-07-27 17:11:30
Откуда: Москва

Re: Скорость работы с диском

Непрочитанное сообщение ev » 2014-03-06 7:22:52

Может в этом и проблема? Но почему не используется realpath_cache? Как исправить?
это баг битрикса, много лет его не хотят исправлять (ну а что вы хотели от разработчиков пхп? их команда уже стала именем нарицательным в быдлокодинге)
суть в том, что при включении open_basedir перестает работать realpath_cache

но отключение open_basedir с включением realpath_cache все равно не даст большого прироста производительности файловой подсистемы
хотя тест битрикса и покажет прирост на 20-40% из-за его алгоритма (открытие множества файлов, а именно при открытии идут потери в данном случае)

Аватара пользователя
tom.cat
старшина
Сообщения: 449
Зарегистрирован: 2007-11-24 20:23:49
Откуда: Москва
Контактная информация:

Re: Скорость работы с диском

Непрочитанное сообщение tom.cat » 2014-03-09 16:07:09

Виртуалка:

Код: Выделить всё

$ uname -r
9.2-RELEASE-p3
$ php -v
PHP 5.4.25 (cli) (built: Feb 14 2014 17:11:16)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies with eAccelerator v1.0-dev, Copyright (c) 2004-2012 eAccelerator, by eAccelerator

 # php test.php
    fs = 6995.0527176103
When you see pigs fly it means Windows has become open source