服务器IO问题(疑似Redis导致的)
PHP中文网
PHP中文网 2017-04-24 09:13:53
0
2
752

某生产环境服务器(多个服务都安装在1台服务器上)

服务器负载一致居高不下,升级过硬件以后有好转,CPU和内存的有所缓解,不过磁盘IO的依然如故;

使用nmon查看由多块磁盘组成一个LVM分区,写一直是100%;

使用lsof查看,该分区的主要读写的是MySQL和Redis;

使用iotop查看io排行,前几个分别是:

[jbd2/dm-0-8]
[flush-253:0]
[redis]
[mysql]

对前2个进程不太了解,有没有那位比较熟悉的大神指点下,前2个进程的用途以及他们和Redis的IO优化建议;

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
小葫芦

この問題をトラブルシューティングするには、次の 3 つの側面を考慮してください。
1. アプリケーション層

  • アプリケーションのパフォーマンスの問題があるかどうかを確認するための redis ステータス監視

  • mysql ステータス監視、スロークエリログおよびその他の関連する問題点を表示

2. システム層
flush-253:0 および jbd2/dm-0-8 これらはすべて、実際にディスクとファイル システムを処理するオペレーティング システムのプロセスです。アプリケーション層によって生成されます。

3. ハードウェア
ディスクのステータス、サーバーのハードウェアの問題を確認します

いいねを押す +0
黄舟

保存のrdbモードに関連する高いredis ioの問題が発生しました
redisのデフォルト設定
save 900 1
save 300 10
save 60 10000
上記は、サービスが少なくとも1回実行されたことを意味します。
900 秒以内 変更、またはサーバーが 300 秒以内に少なくとも 10 回変更された、またはサーバーが 60 秒以内に少なくとも 10,000 回変更された場合、保存がトリガーされます。rdb メソッドは、メインプロセスを子プロセスにフォークします。プロセスをフォークしてから、プロセスのすべてのデータがディスクに保存されることに注意してください。たとえば、10G のメモリを占有している場合、最大 900 秒ごとに保存されます。 10G メモリ内のすべてのデータはディスクに保存されます。デバイスの IO 能力が比較的低い場合、または Redis データ量が大きい場合、保存操作は保存サイクル内に完了しません。保存が続行され、IO が高くなります。
解決策は、
1 Redis の保存サイクルを延長する
1 つの Redis プロセスで大量のデータを保存しないことです

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート