Недавно я установил новый сервер с:

  • сжатие дебиана
  • apache2
  • php5.3.3-7
  • sqlite

При переносе моего приложения со старого сервера я заметил, что оно работает намного медленнее. Я изолировал проблему, обновления sqlite работают более чем в 10 раз медленнее.

Оба sqlite имеют версию 2.8.17, более старый сервер работает под управлением PHP версии 5.2.6-1 + lenny3 Вот тестовый скрипт, который я использовал:

function write($value) {
    $dbh = sqlite_open('mt.sq');
    $sql = "REPLACE INTO hash (key,value,lm) VALUES ('test','$value','dummy')";
    sqlite_query($dbh, $sql);
    $dbh = sqlite_close($dbh);
}

$n = 100;
$start = microtime(true);
for($i=0;$i<$n;$i++) write($i);
$avg = (microtime(true) - $start) / $n;
echo "Average write time: ".$avg."[s]";

Результаты для нового сервера: Среднее время записи: 0,0795 [с]
Результаты на старом сервере: Среднее время записи: 0,0032 [с]

Вот база данных для тестирования:

BEGIN TRANSACTION;
CREATE TABLE hash(
    key PRIMARY KEY,
    value,
    lm
);
INSERT INTO hash VALUES('test',99,'dummy');
COMMIT;

Я не знаю, где искать. У кого-нибудь наблюдаются такие же проблемы с производительностью?
Любая помощь будет высоко ценится.

1
Marcha 15 Дек 2012 в 15:52
Есть ли аппаратные различия между машинами?
 – 
Oldskool
15 Дек 2012 в 16:04
Какая файловая система на debian?
 – 
zb'
15 Дек 2012 в 16:08
Старый сервер: 2 x Intel (R) Core (TM) 2 Duo CPU E7200 @ 2,53 ГГц / 2 Гб RAM / Ext3 / Debian 5.0.1 Новый сервер: 4 x Intel (R) Xeon (R) CPU E3-1225 V2 @ 3.20GHz / 16Gb Ram / Ext4 / Debian 6.0.6 Используя phpsysinfo, новый кажется в 2,5 раза быстрее (System Bogomips 25k против 10k для старого)
 – 
Marcha
15 Дек 2012 в 16:58
Какие есть варианты монтирования файловой системы?
 – 
CL.
15 Дек 2012 в 17:08
@CL. Не уверен, что это то, что вы ожидаете, вот таблица fstab старого сервера: /dev/md2 /var ext3 defaults 0 2 и одного из нового: /dev/md2 /var ext4 defaults,relatime 0 2
 – 
Marcha
15 Дек 2012 в 17:39

1 ответ

Лучший ответ

Это известная «проблема» - в ext4 по умолчанию включены барьеры (в отличие от ext3) - см. Серьезные проблемы с производительностью из-за барьеров ext4fs :

Важное отличие в этом аспекте от ext4fs от ext3fs заключается в том, что ext4fs поставляется с включенными барьерами , что является функцией файловой системы (необязательной в ext3fs), которая пытается улучшить целостность файловой системы. Но за это приходится платить: в зависимости от сценария использования вашего приложения это может значительно снизить пропускную способность файловой системы .

3
cmeerw 15 Дек 2012 в 21:20
Я изменил барьер = 0 в fstab, и теперь он работает с той же скоростью. Я узнаю о барьерах, прежде чем выбирать, остану ли я их отключенными или нет. Большое спасибо всем вам.
 – 
Marcha
16 Дек 2012 в 15:54