0

私のアプリケーションは、データベースとのチャット性のために問題に直面しています。多くのI/O操作またはデータベース呼び出しのため、フロー専用のバッチジョブを完了するのに時間がかかります。コードの最適化が進行中であり、このプロセスが良い結果を示すまでには少し時間がかかります。

  • RAMdiskを実稼働環境にインストールし、jdkとSQLサーバーをRAMDiskにインストールできますか?
  • これはすべてのI/O操作に役立ちますか?
  • 少なくともバッチジョブの場合、パフォーマンスを向上させることはできますか?
4

2 に答える 2

2

@BaileyS が示唆したように、良い妥協点は耐久性のある SSD ドライブを使用することです。大量のデータがある場合は、SSD をデータベース インデックスの保存のみに使用し、通常のドライブにデータを保持することができます。

RAM ディスクを使用することはお勧めしません。頻繁にバックアップする場合や、その上のデータが重要でない場合を除きます。

代わりに、OS のファイル キャッシュを最大化するようにします。ファイルが RAM にキャッシュされている場合、それらの操作は RAM ディスク上にある場合と非常に似ています。Linux では、カーネルの値を下げることができますvfs_cache_pressure。これは、カーネルがキャッシュされたファイルを RAM に保持しようとすることを意味します。またvm.swappiness、100 に設定すると、システムは未使用のメモリ ページをより積極的にスワップ アウトし、RAM をキャッシュに使用できるようにします。これにより、処理が大幅に高速化されます。より積極的なファイル システム キャッシュ用に Linux システムを構成できますか? を参照してください。

于 2012-11-20T20:21:00.593 に答える
0

大部分の時間がデータベースで I/O の待機に費やされていると仮定すると、RAM ディスクは確実に役に立ちます (ただし、耐久性は失われます)。のようなインメモリ データベースを使用しない理由はありません。ネットワーク レイテンシを削減するために組み込みモードを使用することも考えられます。

于 2012-11-20T19:44:55.643 に答える