Linuxで異なるスワップファイルに異なる割り当て率を割り当てる方法は?

Linuxで異なるスワップファイルに異なる割り当て率を割り当てる方法は?

2 つのスワップファイルが必要です。 1つはSSDドライブ(SSDスワップファイル)にあり、もう1つはHDDドライブ(HDDスワップファイル)にあります。私のSSDの読み取り/書き込み速度はHDDの約4倍であるため、2つのスワップファイルで最大速度を得るには、HDD-SWAPよりもSSD-SWAPに4倍のデータ量を割り当てるシステムが必要です。たとえば、システムに5GBのスワップスペースが必要な場合は、ssd-swapで4GB、hdd-swapで1GBを使用したいと思います。しかし、私の実験からわかるように、記録された日付の量は両方のスワップファイルで同じです(例で言及されている各スワップファイルごとに2.5 GB)。

1つの解決策は、SSDに4つのスワップファイルを作成し、HDDドライブに1つのスワップファイルを作成することです。その後、システムは、上記の例では、各スワップファイルに1GBのデータを書き込み、SSDに4GB、SSDに1GBを書き込みます。 HDDに記録されます)。しかし、私はあまり満たされていないファイルシステムを好むので、2つのスワップファイルを使うことを好みます。

これらの結果を得るために、Linuxスワップファイルの設定にはどのような方法がありますか?

答え1

まず、一部の人々はSSDに切り替えることが悪い考えだと主張することを指摘する価値があります。以前は、SSDの書き込みが厳しく制限されたときにそうでしたが、今はそうではありません。 (ほとんどのSSDは書き込み耐久性が容量の1,000倍以上と評価され、スワップファイルは通常Aの小さな部分だけを占めています。)具体的な例を挙げると、今日の一般的な250GB SSDは、書き込み容量が100TBをはるかに超えると評価されています。正しく構成されたシステムと一般的なデスクトップまたはサーバー使用量のデフォルトのスワップ動作を使用すると、1日の平均スワップ使用量は数MBになります。これは、デバイスグレードの1/100000未満を意味します。また、ほとんどの問題は、discardスワップ領域エントリにオプションを指定するか、そのオプションをコマンドに追加することで軽減できます。/etc/fstab-dswapon

第二に、このようなスタガースイッチングデバイスを使用して認識されたパフォーマンスを向上させることは技術的に不可能です(この回答に対するあなたの回答によると、あなたが望むようです)。たとえ話で説明するのが最も簡単です。二人があなたのために物を保管していると想像してください。ある人は多くのものを非常にすばやく保存し、非常に迅速に返すことができますが、他の人はいくつかのものしか保存できません。ゆっくり。一度に多数のアイテムを保存し、一度にすべてを検索する必要がある場合は、最良の方法は各アイテムに比例量を割り当てることによって得られたアイテムを保存するのに同じ時間がかかることです。ただし、個々のアイテムを保存して検索する必要がある場合は、遅い人に時間を無駄にするので、この戦略は崩れます。この場合の最善のアプローチは、頻繁に保存して検索する必要があるアイテムをクイックアイテムに提供し、頻繁に不要なアイテムを遅いアイテムに提供することです。

ディスクと交換するのは2番目の場合と同じです。 2つの制約を追加し、定期的に何が必要なのか、何が必要なのかを知ることはできません(実際のシステムではいくつかのアイデアを得ることができますが、この方法は非常に困難です。結果として何も機能しません)。どのくらいの量を保存する必要があるのか​​わかりません。このような場合は、スペースがある限り、速い人にすべてを保存し、遅い人に過剰分を保存するのが最も効率的です。

したがって、ほとんどの場合、ハードドライブではなくSSDと交換する方が良いです。幸いなことに、実際にLinuxを使用すると、これを行うのはとても簡単です。スワップスペース(ファイルとパーティション)は、使用する優先順位を決定する非常にランダムな優先順位を持つことができます。これはoptionsと-pのオプションを使用して設定されます。デフォルトでは、すべての優先順位は-1です。つまり、アクティブな順序で使用されることを意味します。負の数より高い優先順位を設定すると、アイテムが使用される順序を制御できます。優先順位の高いスワップ領域(最大32767)は、優先順位の低いスワップ領域の前に使用され、同じ優先順位の領域は低い優先順位の領域内で使用されます。ラウンドロビン(RAID0設定と似ていますが、ブロック単位が大きく、並列化はありません)swaponprio=/etc/fstab

より遅いデバイスにいくつかのデータを保存したいと仮定すると、より速いデバイスにスペースがある場合でも、すべての領域を-1以上の同じ優先順位に設定することができますが、残念ながらはい、複数が必要です。 (理論的には、ルーピングデバイスやデバイスマッパーターゲットを使用して本当に創造性を発揮できますが、実際にはその価値があるよりも多くの問題があります)。

トピックから少し離れていますが、スワップファイルがrootユーザーとグループの所有であり、rootのみを読み書きできることを確認してください。そうしないと、任意のユーザーがシステムを簡単に損傷する可能性があります(またはアクセスしないでくださいデータにアクセスする可能性があります)。

関連情報