2

WHM にアクセスしてサーバーのメモリ使用量を確認すると、メモリの 16% しか使用されていないと表示されます。しかし、SSH を使用してサーバーに接続し、コマンド「free -m」を実行すると、80% が使用中であることが示されます。何故ですか?MySQL や Apache などで実行されているすべてのアプリケーションの正確なメモリ使用量を知りたいのですが、どうすればそれを確認できますか?

ありがとう

4

1 に答える 1

1

彼らが言うように、「それは複雑です」。

Linuxは、ディスクのバッファリングとキャッシュに未使用のメモリを使用します。それは物事をスピードアップします。ただし、 freeの-/ + buffers/cache行を確認する必要がある場合があります。

'ps'は、任意のプロセス、またはすべてのプロセスについて、%cpu%mem累積cpu-timerss(常駐セットサイズ、プロセスが使用しているスワップされていない物理メモリ)、size(プロセスがすべての書き込み可能なページをダーティにしてからスワップアウトする場合に必要となる非常に概算のスワップスペース)、 vsize(プロセス全体の仮想メモリ使用量(vm_lib + vm_exe + vm_data + vm_stack))など。

任意のプロセスについて、/ proc / $ PID / status(人間が読める形式)をcatし、 VmSizeVmLckVmRSSVmDataVmStkVmExeVmLibVmPTEの値を他の値とともに確認できます...

しかし、それは初心者向けです...プロセスはメモリを割り当てることはできますが、使用することはできません。(メモリを割り当てることはできますが、メモリページは実際に使用されるまで作成/発行されません。その全体がオンデマンドです。)

プロセスはハードウェア空間にマッピングでき、実際にはシステムRAMからではない大量のメモリを使用しているように見えます。(Xサーバーは時々これを行うことが知られています。カーネルドライバーに関係するいくつかの奇妙なものです...)

実行可能ファイルがあります。これは通常、メモリマップトファイルです。つまり、スワップインされたパーツはRAMを占有しますが、スワップアウトされたときにスワップファイルのスペースを占有することはありません。

プロセスは他のメモリマップトファイルを持つことができます...

同じRAMページが複数のプログラムによって同時に使用される共有メモリライブラリがあります。

それで、私たちは、記憶に関する限り、正確に何が重要で何が重要でないのかを尋ねなければなりません。

于 2010-12-30T17:02:06.337 に答える