2

ディスクにスワップされたかなりの量のデータを含む redis インスタンスがあります。マシンから大量のメモリを解放できたので、スワップされたものはすべて問題なくメモリに収まるはずです。パフォーマンスの問題やダウンタイムを最小限に抑えるためにこれを行うための最良の戦略は何ですか? 単純に、すべてのキーを読み取ると、すべてがメモリにプッシュされると思います。db をディスクにダンプし、redis-server を強制終了して、再度オンにすることもできるようです。Redis または Linux のメモリ ツールを使用するより良い方法はありますか?

4

1 に答える 1

2

OS が Redis メモリの一部をページアウトした (つまり、古い Redis バージョンの非推奨の仮想メモリ機能を使用していない) と仮定すると、すべてのデータへのアクセスを強制する最も簡単な方法は、(BGSAVE を使用して) データベースをダンプすることです。

データベースのダンプ中、すべてのキーとその内容はバックグラウンド プロセスによってアクセスされるため、OS は対応するメモリをページインする必要があります。スワッピング アクティビティにより多くの I/O が生成されますが、ブロックされるだけです。バックグラウンド スレッド。トラフィックを処理するメインの Redis プロセスにはほとんど影響がありません (AOF を使用しない場合)。

Redis を再起動する必要はありません。バックグラウンドで保存するだけで十分です。

于 2013-07-24T10:45:30.063 に答える