hana_shinのLinux技術ブログ

Linuxの技術情報を掲載しています。特にネットワークをメインに掲載していきます。

トラブルシューティング

CPU使用率、メモリ使用量、ディスクアクセスの高いプロセスの調べ方

1 はじめに 2 検証環境 3 CPU使用率の高いプロセスを調べる方法(--sort=-%cpu) 3.1 事前準備 3.2 動作確認 4 メモリ使用量の高いプロセスを調べる方法(--sort=-rss) 4.1 事前準備 4.2 動作確認 5 ディスクアクセスの割合が高いプロセスを調べる方法 Y 参考図…

stress-ngコマンドの使い方(UDP編)

1 はじめに 2 検証環境 3 パッケージのインストール方法 4 オプション一覧 5 送受信のプロセス数を指定する方法(--udp) 6 受信待ちのポート番号を指定する方法(--udp-port) 7 IPv4またはIPv6を指定する方法(--udp-domain) 8 実行回数を指定する方法(--udp-op…

perf topコマンドの使い方

1 perf topコマンドとは? 2 検証環境 3 インストール方法 4 コマンド一覧 5 テストプログラムの作成 6 基本的な使い方 7 モニタするCPUを指定する方法(-C) 8 カーネルモードで実行している関数を表示する方法(-U) 9 ユーザモードで実行している関数を方法(-K…

sarコマンドの%stealの意味について

ランキング参加中Linux 1 はじめに 1.1 概要 1.2 出力例 1.3 検証方針 2 検証環境 2.1 版数の確認 2.2 搭載CPU数の確認 3 実験1 3.1 事前準備 3.2 動作検証(kvmホストのCPUに負荷をかける) 3.3 動作検証(仮想マシンのCPUに負荷をかける) 4 実験2 5 まとめ…

tcpdumpのフックポイント、Netfilterのチェイン、Qdiscのカーネル内の場所

1 はじめに 2 検証環境 3 鳥瞰図 4 関数の概要 4.1 受信処理 4.2 送信処理 4.3 転送処理 Z 参考情報 1 はじめに tcpdumpのフックポイント、Netfilterのチェイン、Qdiscの場所についてまとめました。これらの位置を理解しておくと、ネットワークのトラブルシ…

bashスクリプトのデバッグ方法

1 はじめに 2 検証環境 3 スクリプトにデバッグオプションを設定する方法 3.1 スクリプトが実行する処理を表示する方法(-x) 3.2 エラーが発生したらスクリプトを終了する方法(set -e/set +e) 3.2.1 スクリプト全体に適用する方法(set -e) 3.2.2 スクリプトの…

bashdbの使い方

1 bashdbとは? 2 検証環境 3 インストール方法 4 事前準備 5 bashdbのコマンド一覧 6 ソースコードを表示する方法(list) 7 スクリプトをステップ実行する方法(step) 8 スクリプトをステップ実行する方法(next) 9 スクリプトを最初から実行する方法(run) 10 …

crashコマンドの使い方

1 crashコマンドとは? 2 検証環境 3 インストール方法 4 crashコマンド起動方法 5 コマンド一覧、ヘルプを表示する方法(help) 5.1 コマンド一覧を表示する方法 5.2 コマンドのヘルプを表示する方法 6 logコマンドの使い方 6.1 引数無しで実行する方法 6.2 時…

SystemTapの使い方(User-Space Probing)

1 User-Space Probingとは? 2 検証環境 3 debuginfoパッケージのインストール 4 ユーザプログラムにプローブを設定する方法 4.1 テストプログラムの作成 4.2 関数の入り口にプローブを設定する方法 4.3 関数から復帰する場所にプローブを設定する方法 4.4 フ…

SystemTapの使い方

1 SystemTapとは? 2 検証環境 3 事前準備 4 プローブの設定方法 4.1 カーネルにプローブを設定する方法 4.1.1 カーネル関数の入り口にプローブを設定する方法 4.1.2 カーネル関数から復帰する場所にプローブを設定する方法 4.1.3 ファイルの指定した場所にプ…

ltraceコマンドの使い方

1 ltraceコマンドとは? 2 検証環境 3 インストール方法 4 オプション一覧 5 テストプログラム(以降TP)の作成 6 ライブラリ関数の実行順序を表示する方法 7 時刻情報を表示する方法 7.1 関数の実行時刻(秒単位)の表示方法(-t) 7.2 関数の実行時刻(マイク…

ncコマンドの使い方(ネットワーク実験の幅が広がるなぁ~)

0 はじめに 1 ncコマンドとは 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 インストール方法 4 オプション一覧 5 事前準備 6 IPv4オプションの使い方 6.1 TCPソケットの使い方 6.2 UDPソケットの使い方 6.3 送信元ポート番号を指定する方法(-p) 7 IPv6オプ…

ssコマンドのRecv-Q,Send-Qの意味について(LISTEN状態のとき)

1 はじめに 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 テストプログラム(以降TP)の作成 4.1 サーバ側 4.2 クライアント側 5 Send-Qの確認 5.1 TPの引数に1を指定した場合 5.2 TPの引数に2を指定した場合 5.3 TPの引数に256を指定した場合 6 …

ssコマンドのRecv-Q,Send-Qの意味について(ESTABLISHED状態のとき)

1 はじめに 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 事前準備 4 Recv-Qの確認 5 Send-Qの確認 Z 参考情報 1 はじめに ssコマンドを実行すると、Recv-QとSend-Q という項目が表示されます。本記事では、Recv-QとSend-Qの意味について説明します。なお、s…

conntrackコマンドの使い方

1 conntrackコマンドとは? 2 検証環境 3 インストール方法 4 オプション一覧 5 リアルタイムに表示する方法(-E) 6 特定のプロトコルのトラッキング情報を表示する方法(-p) 6.1 TCPのトラッキング情報を表示する方法(-p tcp) 6.2 TCPの状態で絞り込む方法(--s…

trace-cmdコマンドの使い方

1 trace-cmdコマンドとは? 2 検証環境 3 インストール方法 4 コマンド、オプション一覧 5 listコマンドの使い方 5.1 トレーサを表示する方法(-t) 5.2 イベントを表示する方法(-e) 5.3 利用可能な関数名を表示する方法(-f) 5.4 利用可能なオプションを表示す…

tsharkコマンドの使い方

ランキング参加中Linux 1 tsharkコマンドとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 インストール方法 4 オプション一覧 5 事前準備(一般ユーザの作成) 6 インタフェース一覧を表示する方法(-D) 7 Capture vs Display Filters 8 TCPパケットを絞り込…

sadfコマンドの使い方

1 sadfコマンドとは? 2 検証環境 3 インストール方法 4 オプション一覧 5 事前準備 6 時刻の表示方法 6.1 時刻をUTCで表示する方法(オプションなし) 6.2 時刻をローカル時刻で表示する方法(-T) 7 時刻で絞り込む方法(-s,-e) 8 CPUの統計情報を表示する方法 …

sarコマンドの使い方

1 sarコマンドとは? 2 検証環境 3 インストール方法 4 事前準備 5 CPU 5.1 全てのCPUの統計情報を参照する方法(-P ALL) 5.2特定CPUの統計情報を参照する方法(-P ) 6 メモリ 6.1 メモリ使用量(-r) 6.2 メモリページ(-R) 7 ディスク 8 ネットワーク 8.1 NICの…

iotopコマンドの使い方

1 iotopコマンドとは? 2 検証環境 3 iotopコマンドのインストール方法 4 オプション一覧 5 Non-Interactiveモード(-b) 5.1 時刻を表示する方法(-t) 5.2 iotopコマンドの実行間隔を変更する方法(-d) 5.3 I/Oを実行しているプロセスだけを表示する方法(-o) 5.4…

ECONNREFUSEDとECONNRESETについて

1 ECONNREFUSEDとECONNRESETとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 検証 3.1 ECONNREFUSED(TCPの場合) 3.2 ECONNREFUSED(UDPの場合) 3.3 ECONNRESET Z 参考情報 1 ECONNREFUSEDとECONNRESETとは? エラー種別 意味 ECONNREFUSED TCPの状態がSYN-S…

nice,reniceコマンドの使い方

1 nice,reniceコマンドとは? 2 検証環境 3 プロセス起動時のNICE値を変更する方法 3.1 デフォルト値の確認 3.2 デフォルト値の変更方法(最高優先度) 3.3 デフォルト値の変更方法(最低優先度) 4 実行中プロセスのNICE値を変更する方法 4.1 PID単位で変更す…

topコマンドの使い方

1 topコマンドとは? 2 検証環境 3 実行方法/終了方法 4 ヘルプの表示、終了方法 5 フィルタリングの使い方(u) その1 6 フィルタリングの使い方(o) その2 6.1 CPU使用率で絞り込む方法 6.2 PIDで絞り込む方法 6.3 COMMAND名で絞り込む方法 7 フィールドのカ…

stress-ngコマンドの使い方

1 stress-ngコマンドとは? 2 検証環境 3 パッケージのインストール方法 4 オプション一覧 5 共通オプションの使い方 5.1 stress-ngコマンド実行時のメッセージ出力を抑止する方法(-q) 5.2 stress-ngコマンドの実行時間を指定する方法(-t <時間>) 5.3 指定し…

ネットワークのトラブルシューティングのときに使うコマンド

1 はじめに 2 コマンド一覧 2.1 ネットワーク関連 2.2 その他 Z 参考情報 1 はじめに ネットワークのトラブルシューティングのときに使うコマンドについてまとめました。 2 コマンド一覧 2.1 ネットワーク関連 コマンド名 概要 詳細情報 nc 簡易なクライアン…

tcコマンドの使い方

ランキング参加中Linux 1 tcコマンドとは? 2 検証環境 2.1 ネットワーク構成 2.2 版数 3 qdiscの種類 4 クラスレスqdiscの設定、削除 4.1 設定、削除の書式 4.2 pfifoの設定、削除の方法 4.3 sfqの設定、削除の方法 4.4 tbfの設定、削除の方法 4.5 netemの設…

ShellCheckコマンドの使い方

1 ShellCheckコマンドとは? 2 検証環境 3 インストール方法 4 チェック方法 4.1 テスト用シェルスクリプトの作成 4.2 shellcheckによるチェック 4.3 エラーコードの探し方 4.4 スクリプトの修正 4.5 shellcheckによるチェック Z 参考情報 1 ShellCheckコマン…

dmesgコマンドの使い方

1 dmesgコマンドとは? 2 検証環境 3 オプション一覧 3 基本的な使い方 4 時刻に関するオプションの使い方 4.1 人間が読みやすいかたちで表示する方法(-T) 4.2 メッセージ出力時刻の差分を表示する方法(-d) 4.3 時刻を表示しない方法(-t) 5 メッセージの出力…

ip netnsコマンドの使い方(host-router-host環境構築編)

1 はじめに 2 検証環境 3 構築する環境 4 構築手順 4.1 ホストの作成 4.2 ルータの作成 4.3 ポートの作成 4.4 ポートの接続 4.5 IPアドレスの設定 4.6 ポートのリンクアップ 4.7 ルーティングテーブルの設定 4.8 ルーティングの有効化 5 設定内容の確認 5.1 …

ip netnsコマンドの使い方(host-bridge-host環境構築編)

1 はじめに 2 検証環境 3 構築する環境 4 構築手順 4.1 ホストの作成 4.2 ブリッジの作成 4.3 ポートの作成 4.4 IPアドレスの設定 4.5 ポートのリンクアップ 5 設定内容の確認 6 動作確認 7 環境構築用シェルスクリプト 7.1 構築 7.2 削除 Z 参考情報 1 はじ…