2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Linux] Linuxリソース情報取得

Last updated at Posted at 2020-01-15

個人メモです。まだまとまってないため随時更新予定。(動作確認はcentos7.6)

=======================================================================
#●全般

top

=======================================================================
#●CPU

cat /proc/cpuinfo

(抜粋)CPUの型番
model name : Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
(抜粋)OSが認識しているCPU数(論理数)
processor : 0
processor : 1

#●メモリ
##全体

#####○free

free -m

-m 表示結果をメガバイト単位で表示。
-s 秒数 指定した秒数ごとに表示。
-t 物理メモリとスナップの合計も表示。

vmstat -n -S m

#####○より詳細な確認

cat /proc/meminfo

MemTotal: 8069288 kB  カーネルが認識している全物理メモリ
MemFree: 6269572 kB  いかなる用途にも使われていないメモリ

---------------------------------------------
|            Buffers / Cached               | 
---------------------------------------------
| Active(file) / Inactive(file) |   Shmem   |
---------------------------------------------

Buffers + Cached = Active(file) + Inactive(file) + Shmem

--------------------------------------------------
|           Active(anon) + Inactive(anon)        | 
--------------------------------------------------
|   Shmem   |          AnonPages              |??|
--------------------------------------------------

Active(anon) + Inactive(anon) = Shmem + AnonPages

-----------------------------------------------------------------------------
|            Buffers / Cached               |           AnonPages        |??|
-----------------------------------------------------------------------------
| Active(file) + Inactive(file) |        Active(anon) + Inactive(anon)      | 
-----------------------------------------------------------------------------
|                               |   Shmem   |                               |
-----------------------------------------------------------------------------

---------------------------------------------------------------------------------
|            Buffers / Cached           |        AnonPages                   |??|
---------------------------------------------------------------------------------
| Active(file) + Inactive(file)  | Unevictalbe |  Active(anon) + Inactive(anon) |
---------------------------------------------------------------------------------

##プロセスごと

#####○ps (参考程度?)
psはプロセスの実際のメモリ使用量でなく、
実行中のプロセスが1つだけである場合に各プロセスが占有する実メモリの量とのこと。(通常数十のプロセスが実行)

[How to measure actual memory usage of an application or process?][m1]
[m1]:https://stackoverflow.com/questions/131303/how-to-measure-actual-memory-usage-of-an-application-or-process

ps aux
ps aux | grep postgre | awk '{sum += $6}END{print sum}'

名称 意味
VSZ (virtual set size) 仮想メモリ
RSS (Resident set size) 物理メモリの消費量
PSS (proportional set size) プロセスが実質的に所有しているメモリ
USS (unique set size) ひとつのプロセスが占有しているメモリ

#####○pmap -x
アドレス空間マッピング情報とメモリ割り当ての量

pmap -x <PID>

pmap -x 7876

7876: python3
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 4 0 0 r-x-- python3.6
0000000000601000 4 4 4 r---- python3.6
0000000000602000 4 4 4 rw--- python3.6

#####○cat /proc//smaps

ps -ef | grep [確認したいプロセス名]
cat /proc/<pid>/smaps

cat /proc/7876/smaps
00400000-00401000 r-xp 00000000 fd:00 55039406 /usr/bin/python3.6
Size: 4 kB
Rss: 0 kB
Pss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
Referenced: 0 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB

Shared_Clean と Shared_Dirty は他のプロセスと共有している値
Private_Clean と Private_Dirty の合計が、各プロセスが独自に確保したメモリ領域

cat /proc/<PID>/smaps | egrep 'Private_Clean|Private_Dirty' | awk '{sum += $2}END{print sum}'
cat /proc/1111/smaps | awk '/^Rss/{sum += $2}END{print sum}'
cat /proc/1111/smaps | awk '/^Pss/{sum += $2}END{print sum}'

======================================================================
#●ストレージ(容量)
⇒容量
物理ストレージ
認識しているデバイスとその容量を確認

fdisk -l

パーティションの容量とファイルシステムを確認

df -Th

マウントディレクトリ内で何がどれだけ容量を食っているか

du -k

ファイル単位

ls -l

●ストレージ(I/O)
○全デバイスへの全 I/O の合計

vmstat

○デバイスごとの I/O レポートティング IOPSの確認

iostat
cat /proc/diskstats
Bandwidth
iotop

blktrace 

=======================================================================
#●ネットワーク
○IPアドレス

ip -4 a

○ルーティングテーブル

route -rn
/proc/net/route

○疎通

ping
nc -vz [ip] [port]

○送受信のバイト数/パケット数、破棄パケット数、エラーパケット数

ifconfig
/proc/net/dev
/sys/class/net/$INTERFACE/statistics

○秒換算で確認
iftop
ifstat

○ネットワークのリンクアップ状況や認識速度の確認

ethtool
mii-tool

○使用NICの確認
それぞれのNICごとに確認しどのNICにて表示されるか確認

tcpdump -n -i eth0 dst port 9403 or src port 9403
tcpdump -n -i lo dst port 9403 or src port 9403

※ループバックインターフェースのみ通信が発生していれば、ループバック通信となる
 但し、サーバに付与されているパブリックIPあての通信がループバックになるが、
 TCP通信における動作ですので、OS依存となることに注意

=======================================================================
#●デバイス

lspci

#●環境変数

PIDが認識する環境変数の確認

/proc/<PID>/environ
2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?