CLIのみの環境でスペックを調べる方法です。
中古PCを買ったときや仕事で新しいマシンが来たときとかとりあえず打ってみるコマンドたち。
HWシリアル番号、BIOSのバージョン情報、搭載されているメモリモジュールのメモリサイズなど
見るだけで楽しい情報を取得していきます。
特に役立つ情報があるわけではないのでお暇な方どうぞ。
基本
# カーネルバージョン
$ uname -r
# -m CPUのタイプを表示する
# -n PCのホスト名を表示する
# -r カーネルのバージョンを表示する
# -s OS名を表示する
# -v OSのリリース日を表示する
# -a すべての情報を表示する
# ディストリビューション
# Redhat/CentOS
$ cat /etc/redhat-release
$ cat /etc/issue
# Fedora Core
$ cat /etc/fedora-release
# Debian
$ cat /etc/debian_version
$ cat /etc/issue
# Turbolinux
$ cat /etc/turbolinux-release
# SuSE Linux
$ cat /etc/SuSE-release
# Mandriva Linux
$ cat /etc/mandriva-release
# Vine Linux
$ cat /etc/vine-release
# 自身のマシン名
$ hostname
# -d DNSドメインの名前を表示
# -f FQDN(Fully Qualified Domain Name)を表示
# BIOS確認
$ sudo dmidecode
# マザーボード
$ sudo dmidecode -t baseboard
# カーネルの出力したメッセージ確認
$ dmesg -l alert
# -x 表示レベル(level)と表示対象(facility)を表示
# -L 色付きで表示
CPU
# CPU情報
$ cat /proc/cpuinfo
$ lscpu
# プロセス毎のCPU使用率などをリアルタイムで(sarでも見たり)
$ top
# -d 更新の間隔を指定
# -n 表示回数を指定
# システムの負荷平均、稼働時間も見れる
$ w
$ uptime
# -s 起動した日時が表示される
# -p 表示フォーマットを変更する(個人的に好き)
メモリ
# メモリ情報
$ cat /proc/meminfo
# メモリの空き情報
$ free
# -b バイト単位で表示
# -k KB単位で表示
# -m MB単位で表示
# -g GB単位で表示
# --tera TB単位で表示
# 仮想メモリやディスクI/Oの統計情報
$ vmstat -s
vmstatコマンドはオプションが多数あります。下記をご参照ください
https://tech.nikkeibp.co.jp/it/article/COLUMN/20060228/230989/
ディスク
# 全ディスクの使用量と空き容量
$ df -hT
# 特定ディレクトリ配下の使用量
$ du -skh | sort -nr
# ブロックデバイスのパーティション情報を表示
$ parted -l
# 接続されているHDDやUSBドライブを調べる
$ lsblk
# パーティションの情報確認
$ sudo fdisk -l /dev/sda
# 物理的な情報を詳しく(あまり使わない)
$ sudo hdparm -i /dev/sda
# マウントしてないデバイスの容量
$ sudo smartctl -a /dev/sda | grep “User Capacity”
ネットワーク
# ネットワークのデバイス情報
$ ip a sh dev ens27f0
# LISTENしているポート一覧
$ sudo ss -antul
ビデオカード
$ lspci | grep VGA
ここからは若干それますがよく使うコマンド
カーネルパラメータ
カーネルパラメータは以下2つで設定を行う
①/etc/sysctl.conf
②/proc配下
①はシステム起動時に反映されるため、恒久的に適用したい場合にはこちらへ記載する
②は再起動すると設定が元に戻る。一時的に設定を弄りたい時用。
sysctlコマンドは、サーバー稼働中にカーネルパラメータを設定・変更するコマンド
sysctl [オプション]
のような書式で実行します。色々と資料を見ましたがusageが一番見やすかった。。。
$ sysctl
Usage:
sysctl [options] [variable[=value] ...]
Options:
-a, --all display all variables
-A alias of -a
-X alias of -a
--deprecated include deprecated parameters to listing
-b, --binary print value without new line
-e, --ignore ignore unknown variables errors
-N, --names print variable names without values
-n, --values print only values of a variables
-p, --load[=<file>] read values from file
-f alias of -p
--system read values from all system directories
-r, --pattern <expression>
select setting that match expression
-q, --quiet do not echo variable set
-w, --write enable writing a value to variable
-o does nothing
-x does nothing
-d alias of -h
-h, --help display this help and exit
-V, --version output version information and exit
For more details see sysctl(8).
システムモニタリング sarコマンド
sarとは、sysstatパッケージに含まれている、システムの統計情報を取得するコマンド
オプション | 確認項目 |
---|---|
-u | CPU |
-u -P ALL | CPUを各コアごとに |
-q | ロードアベレージ |
-r | メモリ |
-W | スワップ |
-n DEV | ネットワーク |
-b | ディスクIO |
簡単な使い方は下記
# 日時を指定してメモリ状況を見る
$ sar -r -f /var/log/sa/sa02 -s 12:00:00 -e 13:00:00
# kbmemfree メモリ空き容量(kb)
# kbmemused メモリ使用量(kb)
# %memused メモリ使用率
# kbswpfree スワップ空き容量(kb)
# kbswpused スワップ使用量(kb)
# %swpused スワップ使用率
# ディスクI/O確認
$ sar -b -s 21:00:00
# tps 秒間I/Oリクエスト 数の合計
# rtps 秒間読み込みIOリクエスト数の合計
# wtps 秒間書き込みIOリクエスト数の合計
# bread/s 秒間読み込み(ブロック単位)IOリクエストのデータ量の合計
# bwrtn/s 秒間書き込み(ブロック単位)IOリクエストのデータ量の合計
# CPU使用率
$ sar -u -s 21:00:00
# %user アプリケーション(ユーザプロセス)が使用している状態
# %system カーネル(OSなど)が使用している状態
# %iowait ディスクI/O待ち状態
# %idle CPUが何の処理もしない待機状態(I/O待ちの時間は除く)
その他
AWSインスタンスのスペック比較記事が面白かったのでご紹介
現行世代全18種類EC2インスタンスのHW情報をコマンドで比較してみた
https://dev.classmethod.jp/cloud/aws/ec2-instance-detail/
参考
Linuxでコマンドラインからマシンスペックを確認する方法
https://qiita.com/DaisukeMiyamoto/items/98ef077ddf44b5727c29
sar(sysstat)によるボトルネック特定
https://qiita.com/kidach1/items/07637a5baa0da7d52e6a