-6

アプリケーションは、クエリ (選択、更新、挿入) の速度を必要とするリアルタイム サイトです。 低レイテンシは、クエリごとに 200 ミリ秒未満でなければなりません。

まあ、平均で各クエリの 98% です。ジョブ クエリが完了するまでの時間は 0.001 ~ 0.005 秒未満です。

問題は 1 時間に約 5 回発生し、最大 1 秒かかる場合があり、5 秒かかる場合もあります。問題の本当の原因はわかりません

問題を軽減するためにINNODBからMEMORYに移動することがわかりましたが、システムがクラッシュしたときにまだ問題があり、重要なことは回復が必要です。

Example query in sometime query more than 1 secound

# Time: 130328 20:27:40
# User@Host: ferge572w[ferge572w] @ localhost []
# Query_time: 1.339712  Lock_time: 0.000026 Rows_sent: 0  Rows_examined: 1
SET timestamp=1364477260;
UPDATE log_product SET credit=credit+1 WHERE id_product='149721921' and id_user='2029275' LIMIT 1;

table index: id_product, id_user
No.row: 33,491   table size: 5Mb

# Time: 130329  7:25:37
# User@Host: ferge572w[ferge572w] @ localhost []
# Query_time: 1.439856  Lock_time: 0.000031 Rows_sent: 0  Rows_examined: 1
SET timestamp=1364516737;
UPDATE product SET lastuser='hello',picperson='1',lastid='2030505',country='thailand',price=price+0.01,time=DATE_ADD(time, INTERVAL 3 SECOND) WHERE id='349721227' LIMIT 1;

table index: id
No.row: 35   table size: 2.1Mb

私のアプリケーションは PHP と MYSQL を使用します

問題は、クエリに最大 5 秒かかることがある理由です。

4

1 に答える 1

3

詳細についてはほとんど説明していません。ここで、できるだけ簡単な答えを提供します。

SSDを使用

まだ SSD を使用していない場合は、おそらくそれが問題です。従来のハード ドライブは、ランダム I/O が苦手で、ビジー状態で要求をタイムリーに処理できない場合に、動作が停止することがあります。MySQL は、I/O サイクルがなくなり、パフォーマンスが崖から落ちると、絶対的なパニックに陥るようです。

于 2013-03-28T19:20:34.230 に答える