Apacheは9GBのRAMを使用しますが、htopには2.7GBのRAMしか表示されません。なぜ?

Apacheは9GBのRAMを使用しますが、htopには2.7GBのRAMしか表示されません。なぜ?

私のウェブサイトは一日の特定の時間に非常に遅いので、原因を探しています。現在、Apacheのメモリ使用量を研究しており、現在使用されているRAMの量を知らせる2つのツールがあります。

Apache 2コンパニオン:

curl -sL https://raw.githubusercontent.com/richardforth/apache2buddy/master/apache2buddy.pl | perl

返品:

apache2 is currently using 8849.18 MB of memory.

その後、使用するコマンドがありますps

ps -ylC apache2 --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'

返品:

Tot=9047860(258)
Avg=9047860/258=34.2473MB

したがって、この行に基づいて、Apache2は約9GBのRAMを使用しており、これはApache2Buddyの結果と一致します。

しかし、これを実行すると、htop私が得るものは次のようになります。

ここに画像の説明を入力してください。

総メモリ使用量は2.7GBに過ぎないようです。結果の違いはなぜそんなに大きいのですか?

ベストアンサー1

常駐サイズには共有ページが含まれます。これには共有ライブラリ(この場合はapache2バイナリ自体)が含まれます。使用しているツールはすべての共有メモリをプロセスごとに1回カウントしますが、物理メモリでは1回しか表示されないため、常駐サイズを追加すると予想されるよりもはるかに少なくなります。

プロセスの実際のメモリ使用量をよりよく理解するには、/proc/<pid>/smapsここで説明されている各セクションを調べて値を比較するRss必要がありますShared_...。カーネルは、各プロセスのRSS共有(図を参照)を計算して、関心のある計算を実行するのに役立ちますPss

おすすめ記事