
topコマンドで表示されるVIRT、RESおよびSWAPの意味について教えてください。
CentOS5.4上で動作しているアプリケーションの使用メモリについて調査しています。
サーバのメモリ容量は512MBで、この上でスワップアウトしないようにアプリケーションの起動数(常駐)を調整しようとしています。
topコマンドでプロセスが使用している物理メモリ容量はRES項目を見れば良いことがわかっていますが、VIRT(仮想メモリの総量)とSWAP(スワップされたサイズ)が具体的に何を示しているのかがわからず、困っています。
topコマンドの出力結果は下の通りです。
この検証用サーバでは暫定的にパーティション設定でスワップ領域を作成していません。
しかしtopコマンドではVIRTとRESの数値は差異があり、SWAP項目も大きな値を示しているプロセスがあります。
スワップ領域が無いのではtopコマンドはVIRTとRESが同じになり、SWAPはゼロとなると予想していたのですがどうしてならないのですか?
top - 03:35:44 up 36 min, 3 users, load average: 0.13, 0.17, 0.20
Tasks: 90 total, 1 running, 89 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 1.3%sy, 0.0%ni, 98.0%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0%st
Mem: 515340k total, 452152k used, 63188k free, 18132k buffers
Swap: 0k total, 0k used, 0k free, 347404k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
4602 tomcat 25 0 645m 28m 6996 S 0.0 5.8 0:04.12 616m java
2227 root 34 19 25656 10m 2108 S 0.0 2.0 0:00.12 14m yum-updatesd
1680 root 17 0 11580 9964 240 S 0.0 1.9 0:00.02 1616 restorecond
1936 haldaemo 18 0 5472 3676 1688 S 0.0 0.7 0:01.20 1796 hald
2499 root 18 0 10540 2916 1504 S 0.0 0.6 0:00.03 7624 httpd
3672 root 15 0 10064 2888 2308 S 0.7 0.6 0:02.50 7176 sshd
3927 root 20 0 9916 2880 2308 S 0.0 0.6 0:00.34 7036 sshd
2054 root 18 0 10116 2328 1696 S 0.0 0.5 0:00.04 7788 cupsd
2500 apache 25 0 10540 2088 640 S 0.0 0.4 0:00.00 8452 httpd
どうしてもズレるので画像を添付してます。


No.1ベストアンサー
- 回答日時:
答えにたどり着く前に、若干長めの説明が必要です。
> topコマンドで表示されるVIRT、RESおよびSWAPの意味について教えてください。
RESは、ご認識の通り、そのプロセスの物理メモリ使用量です。
VIRTとして表示されている仮想メモリ総量とは、そのプロセスの
仮想アドレス空間の中で、有効となっているページの総量です。
これに計上されるのは、参考リンクの「仮想記憶の概念図」でカラフルに
描かれている「物理メモリ」や「スワップ」に対応するページのほか、
以下のようなものも含まれます。
・プロセスが確保したメモリのうち、まだ一回もアクセスして
いない部分。
⇒アクセスしたときに初めて物理メモリが割り当てられ、
RESにも計上されていきます。
(javaのRESに比べてかなり大きいVIRTは、これによるものと
思われます。大きなヒープサイズを指定していませんか?)
・プロセスが ファイルを仮想メモリ空間にmmap(2) したが、
まだ一回もアクセスしていない部分。
⇒Linux(UNIX) には、あたかもメモリをアクセスするかのように
ファイルを読み書きできる mmap(2) という機能があり、
かなり多用されています。mmap直後のファイルは、
VIRTには計上されますが、物理メモリには読み込まれずRESには計上
されません。ファイルをmmapした仮想メモリ空間にアクセスした
部分が、物理メモリに読み込まれRESに計上されます。
> スワップ領域が無いのではtopコマンドはVIRTとRESが同じになり、
> SWAPはゼロとなると予想していたのですがどうしてならないのですか?
実は、SWAPとして表示される数値は、単に VIRT と RES の差です。
VERT(仮想メモリ総量)の中には、物理メモリ(RES)やスワップ領域の
使用量だけなく上記で挙げたような仮想空間の部分の合計が含まれ
ますから、スワップ領域がゼロでも、上記で挙げたような空間が
SWAP として表れているのです。
個人的にはこの数値をSWAPと呼ぶのは、かなり不適切だと思いますが、
多くのLinuxディストリビューションのtopコマンドで表示される
SWAP欄は、そういう計算をしているということです。
参考URL:http://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3% …
とても具体的な説明でよく分かりました。
プログラム上でメモリ確保を行っても、その領域が使用されるまでは実際には確保されていないという最適化のようなもののためにVIRTとRESに差が出るようなことになっているんですね。
起動するアプリケーションの数は、アプリを起動していろいろと操作してみてからRESの値を参考に決めようと思います。
SWAP値は名前どおりのスワップアウトした値でないのは混乱させられますね、注意します。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- UNIX・Linux swapが機能しているかの確認について 2 2022/09/18 13:17
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PowerPoint(パワーポイント) ExcelのVBAコードについて教えてください。 3 2022/05/25 14:32
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- 数学 ω=(z-1)/(z+1)によって、領域Res z>0 は│ω│< 1 に写ることを示せ。 8 2023/01/08 09:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linux OS 上でのマシンスペック...
-
umountはなぜunmountではなくum...
-
Ubuntuの削除(MBR)の修復ができ...
-
コンベンショナルメモリ不足で...
-
freeとpsでメモリ使用量が違う?
-
Swap領域が使用されてない
-
centosサーバーが重い時のTOPコ...
-
Dirコマンドでフォルダ内ファイ...
-
SONYの音楽ソフト「x-アプリ」...
-
ファイル名についている「-」と...
-
aquos HDD交換品について
-
ヒアドキュメントの動作
-
正規表現を標準環境で使う方法
-
KNOPPIXがHDDを認識しません
-
端末(ターミナル)から端末を...
-
nddコマンドを対話式で使用した...
-
VBAでDOSコマンドを実行する に...
-
ファイル名一覧の印刷
-
tar.bz2ファイルのインストール...
-
メールが読めない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
topコマンドで表示されるVIRT、...
-
freeとpsでメモリ使用量が違う?
-
ps aux ps auxw psauxwwの違い
-
postaliasとpostmapコマンドに...
-
CPU 使用率について(ps,top,sar)
-
Linuxが突然フリーズしました
-
FreeBSDでのCPU占有率とメモリ...
-
AIXでシステム内の全プロセスメ...
-
vmstatコマンドについて
-
SSDドライブにデフラグは必要か...
-
TOPでの表示
-
実行中のプロセス数をカウント...
-
Swap領域が使用されてない
-
サーバーのメモリーの状態
-
freeコマンドのfree,swapについて
-
DNS(BIND)を起動できない
-
Ubuntuの削除(MBR)の修復ができ...
-
Dirコマンドでフォルダ内ファイ...
-
SONYの音楽ソフト「x-アプリ」...
-
batである文字列内に特定の文字...
おすすめ情報