1

最近、次の機能を備えた新しいサーバーをインストールしました。

  • debianスクイーズ
  • 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 [s]
古いサーバーの結果:平均書き込み時間:0.0032 [s]

テスト用のデータベースは次のとおりです。

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

どこで検索すればいいのかわかりません。誰かが同じパフォーマンスの問題を観察しますか?
どんな助けでも大歓迎です。

4

1 に答える 1

3

これは既知の「問題」です-ext4にはデフォルトで有効になっているバリアが付属しています(ext3とは対照的)-ext4fsバリアに関する重大なパフォーマンスの問題を参照してください:

ext4fsからext3fsへのこの側面の重要な違いは、ext4fsにはバリアが有効になっていることです。これは、ファイルシステムの整合性を向上させようとするファイルシステム機能(ext3fsではオプション)です。ただし、これにはコストがかかります。アプリケーションのユースケースによっては、ファイルシステムのスループットが大幅に低下する可能性があります。

于 2012-12-15T17:20:56.487 に答える