k-likework

LIKEWORKで生きるためのブログ

プロセスメモリの使用量

メモ:Linuxで、2つのアプリケーションを同居する場合に、正常動作する仕様か?を調査した時のメモ

確認したのは下記2点。このページはメモリについて書きました。

  • メモリが足りるか?
  • プロセス名やポートがぶつからないか?

特定のプロセスのメモリ使用量の確認

アプリケーションのプロセスのメモリ使用量を調べます。

ps aux

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  58572 19024 ?        Ss    4月13  10:14 /usr/lib/systemd/systemd --switched-root --system -
              <--全てのプロセスが表示されるので長い-->

上記のプロセス(PID=1)では、仮想メモリサイズ「58572KB」、物理メモリサイズ「19024KB」と読める。

# 特定のプロセスメモリを確認する場合
ps aux | grep [プロセス名]

そもそも「aux」って?

auxはpsコマンドのオプションを3つ合わせたもの。

  • a:端末操作のプロセスを表示する
  • u:CPUやメモリの使用率などを表示する
  • x:端末操作以外のプロセスを表示する

auxで確認できる項目

auxでプロセスの何が確認できるのでしょうか?

項目 説明 備考
USER プロセスを所有しているユーザ名
PID 一意のプロセスID
%CPU プロセスのCPU使用率(%) プロセスの実行時間 / CPU使用時間
%MEM プロセスが確保している物理メモリ量
VSZ 仮想メモリサイズ(KB)
RSS 使用中の物理メモリサイズ(KB)
TTY 制御端末の種類及び番号
STAT プロセスのステータス S:割り込み可能なスリープ状態
s:セッションリーダ
D:割り込み不可能なスリープ状態
R:実行可能状態(待ち状態)
O:実行中
I:プロセス生成中
Z:親プロセスとの関係が切れた状態(ゾンビプロセス)
N:優先度低い
>:優先度高い
+:フォアグラウンドのプロセスグループに入っている
T:停止中
START プロセスを起動した時間
TIME 累積したCPU時間 プロセスが使用した全CPU時間 +
プロセスのためにカーネルが使用した全CPU時間
COMMAND プロセスのコマンド名

VSZとRSSの違いがはっきりしない・・・

  • VSZ:プロセスが確保している仮想メモリサイズ(プロセス起動時に確保される)
  • RSS:プロセスが確保している物理メモリサイズ

この違いを理解するには、下記URLが良さそうです。

Linux/メモリ確保とVSZとRSS - discypus

プロセスのVSZ,RSSとfree,meminfoを実機で確認 - のぴぴのメモ

PostgreSQLプロセスのメモリ使用量の確認

このアプリケーションはpostgreSQLを使用しているのですが、メモリ使用量の確認で留意点がありました。 別途、まとめます。