オペレーターが使用するメモリーと Linux サーバーで使用可能なメモリーを GUI に表示する必要があります。
それでは、使用法として表示する論理的に正しい値は何ですか?
[root@host ~]# free
total used free shared buff/cache available
Mem: 131753676 110324960 1433296 4182648 19995420 16240640
Swap: 2097148 652076 1445072
used
または(total
- available
)?
違いは次のとおりです。 110324960 対 115513036 または 5188076kb ~= ~5GB では、この 5GB は何ですか?効果的に使用されますか、使用可能ですか、それとも使用できません、使用されませんか?メモリ使用率%でどのような表示が正確ですか?
これは、2つのJavaサービスを実行するCentOS 7.3 PC用です。
しかし、PostgreSQLサーバーにはまったく異なる画像があります。
[root@postgres_server1 ~]# free
total used free shared buff/cache available
Mem: 131753684 7364056 77736740 15598120 46652888 107942020
Swap: 2097148 0 2097148
used
どこと( - )total
の違いはavailable
はるかに大きいですか:16447608 kb〜= 15.7 GB
答え1
使用量が何を反映すべきかによって異なります。 Inの出力free
:
- 「使用済み」は「フル - 空きスペース - バッファ - キャッシュ」として計算されるため、キャッシュを除いて現在有用なデータを格納しているメモリ量を反映します。
- 「使用可能」は、他の目的ですぐに使用できる物理メモリーの量でなければなりません。
「すべて使用可能」とは、「現在使用中であり、交換できないすべての物理メモリ」を意味します。それと「使用済み」(あなたが言及した5GBと15GB)の違いは、まだ他の場所では利用できないデータを現在保存している物理メモリの量です。つまりダーティバッファ(したがってPostgreSQLはディスクへの書き込みを待つより多くのデータを持つことになります)「使用可能」は、プログラムが占有されずに要求できる物理メモリの最大量を反映します。強制スワップ(何も保証されませんが、プログラムがそれほど多くのメモリを使用している場合は、当時のシステムの残りの動作を考慮しても、とにかくスワップされません)。
したがって、両方の値は使用されたメモリを反映しますが、定義はわずかに異なります。どちらを使用するかはあなた(またはあなたの要件)によって異なります。 「使用可能」は「使用可能」より正確であるため、1つだけアーカイブしたい場合は、より便利な値になる可能性があります。
それについて考えるもう一つの方法は、価値観が答える質問を検討することです。
- 「中古」は、128GiB RAMが現在のワークロードに役立つかどうかを示します。
- 「使用可能」は、残りの容量を示します。
- 「フル - 使用可能」は、実際に必要な物理RAMの量を示します(つまりキャッシュによるパフォーマンスの向上を見逃したい場合は、次のサーバーまたはVMをどれだけ小さくすることができますか?
完全な妥協はないので、free
両方の値が表示されます。
Linux メモリ管理システムでは、メモリをすぐに使用できます。そしてディストリビューションで移植可能な使用可能なメモリ量を取得するには?「利用可能」が正確に何を意味するかについての詳細を提供してください。 「バフ/キャッシュ」には、回収できないメモリが含まれており(ディスクに書き込まれていないため)、回収できますが、「バフ/キャッシュ」に含まれない他のメモリプールがあるため、「バフ/キャッシュ」と同じではありません。 。
答え2
既存の回答に加えて:
この「簡単な」質問は、メモリ管理という非常に重要なトピックをカバーしています。これはカーネルの主な「サブシステム」でもあります。 「より多くのメモリを購入する」はまだ普遍的な真実です。しかし、どのくらいのものを持っているかは問題ではありません。すべてのオペレーティングシステムは、RAM共有がかかり、交換され、スラッシングされる状況に対処する必要があります。
資源の効率的な使用と枯渇の間には微妙な違いがある。私はあなたの数字を見て、次の説明を思いつきました。
Java:
「used」は「total」の83%を表します。この数字は高いです。そして、スワップが有効になっており、非常に小さく、まだ利用可能なスペースがあります。
「無料」はそれ自体で言います。 1%未満。 16%はどこに行きましたか? 「使用可能」というのが16GBですが、この場合は16%程度です。
「共有」(4G)と「バッファ/キャッシュ」(19G)は、これらの「使用可能な」16Gよりわずかに多いです。これは、コアがその3分の2を「犠牲」にした可能性があることを反映しています。ところで、システムでJavaが実行される方法がこのようになりました。
したがって、欠落している6番目のx =合計 - (使用済み+無料) (132G - (110+1))はここで21Gであり、「avail」(16G)および「sh」+「b/c 」(23G)にあります。 。
左から右に読み、free
最初に「スワップ」を確認してから、「共有」および/または「バッファ/キャッシュ」として使用する方法と「使用可能な」量を尋ねる必要があります。
交換が有効になると赤い火が入り、「Free」が1%未満ですが、16%使用可能で、交換履歴が「OK」と表示されます。
(スワップは132Gに比べて小さすぎると思います。Javaサービスも可能です。行為何)
SQLの例:
これはこれがどのように「すべきか」を示しています。十分なRAMとアプリとOSが連携する必要があります。
5%のみ使用されます。しかし、50%は無料ではありません。これは「共有」として使用され、「バフ/キャッシュ」のままです。交換が有効になっていません。繰り返しますが、61Gをすべて得ることはできず、そのうちの良い部分だけを得ることができます。
新しい単語を定義することは役に立ちません。それは単に解釈の問題です。最後はカーネルを認識し、トップレベルのfree
概要に適しています。今、この情報を使って「オペレーター」に彼が何をしたいのか尋ねなければなりませんでした。あるいは、今は尋ねずに知ることができます。