20191230のLinuxに関する記事は2件です。

ログ監視

サーバーログを監視する

本番、検証、開発、どれでもですが
APサーバーのserver.log的なファイルに、ログがどんどん書かれるわけで
モジュールが正常に動いているかなど、外から見えないシステムの動きを監視するために
リリースするたびにログを監視する作業がありますよね

その際、まぁTeraTermなどでlinuxサーバーに接続して、ログファイルを見るわけですが
どのコマンド使う?って話です

王道のtail

まぁこれでしょ
tail -f ファイルパス
たとえば

tail -f /asd/asdasdasd/asdasdasd/server.log

みたいな
これで上書きされるファイルをリアルタイムで監視できます

新時代のless

いまどきtailは情弱
less +F ファイルパス
たとえば

less +F /sdd/sdsdsd/sdsdsd/server.log

これでtail -fと同じ機能
Ctrl + Cで更新しなくなる
なんなら

less /sdd/sdsdsd/sdsdsd/server.log

を実行したあとにshift + f(大文字のF)打てばいい

んで、Grep的なことができる

更新しないモードの時に&を入力すると、入力欄が出てくる
そこに「完全一致」ワードまたは「qqq | eee」と入力すればOR検索
大文字小文字を区別するので正確にタイプしよう

また、&を入力後に!を入力すれば、not-matchモード(不一致検索)になる

わざわざログファイルをローカルにダウンロードして、サクラエディタでGrepなんてしなくても、その場で検索できるのだ

しかも自動更新しないモード中なら、Bキーで上ページ、Spaceキーで下ページ、Gキーで一番上まで、Shift + Gキーで一番下まで
一気に飛べる

lessはtailの上位互換といっても過言ではないとおもう

Windowsなら

Power-Shellを起動しよう
winキー + XキーからのAキーでできるはず

んで

Get-Content -wait -tail 10 -encod UTF8 -path パス

ここの10の部分は最初に取得する行数です、tail -fは指定しないと初期で10なので10って書いてみました

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linuxで認識されているディスクの処理速度を簡単に測る方法

TL;DR

OS やミドルウェアといった様々なレイヤーを扱っていても、ディスクの Read/Write 速度というものは必ずボトルネックになりえる要素として存在する。ディスクがボトルネックになっているか疑わしいと考えた時、簡易的にディスクのスループットを計測する方法を紹介。

  • ddコマンド、pv コマンドを利用することでディスクスループットが簡易的に計測することが可能

利用シーン

一例となりますが、ファイル圧縮処理を行う時に圧縮処理がなぜか遅い、といった場合等に紹介する方法での調査が有用だと考えます。

ディスクの Read スループットを計測する

dd コマンドを利用して計測対象のディスクを if に設定、 of/dev/null を指定することで Read スループットを計測することが可能です。ちなみに注意としては dd コマンドとなるため、あくまでシーケンシャルのアクセスになることを意識することが大事だと思います。

  • /dev/sda1 の Read スループットを計測する例
dd if=/dev/sda1 of=/dev/null bs=16k status=progress

出力は下記のような内容となります。

584122368 bytes (584 MB) copied, 4.61756 s, 127 MB/s

各コマンドにおける処理速度を計測する

上記で紹介した方法は、ほぼ純粋なディスク速度となります。ですが利用シーンの例にもある通り、例えば圧縮処理が遅いといった時に、それが純粋なディスク速度が遅いのか圧縮処理がボトルネックになっていて遅いのか切り分けたい場合があると思います。そのような場合に有効なのが各コマンドの処理速度を計測することができる pv コマンドとなります。

pv コマンドとは

pv コマンドはパイプ処理を実施する時に、パイプを渡るデータ量を計測するコマンドとなります。例えば、下記のような例がある場合 tar コマンドから lz4 コマンドへ渡るデータ量、すなわち tar コマンドの処理がどの程度の速度で実施されているか確認することができます。これによって、下記コマンドの実行速度がなぜか遅いといった場合に tar コマンドがボトルネックになっているのか、lz4 コマンドがボトルネックになっているか当たりをつけることができます。

tar -b 256 -cvf - /data/ | lz4 -c

使い方

下記のように計測したいパイプの間に pv コマンドを挟むことで計測することが可能です。

  • tar コマンドの速度を計測する例
tar -b 256 -cvf - /data/ | pv | lz4 -c > /dev/null
  • lz4 コマンドの速度を計測する例
tar -b 256 -cvf - /data/mysql/ | lz4 -c | pv > /dev/null

出力は下記のような内容となります。

8.66GiB 0:00:04 [2.19GiB/s] [  <=>           ]

おわりに

ディスクの性能を測る方法は数多くあると思いますが、今回は手軽に確認ができる方法として上記方法を紹介しました。ディスクへのアクセスもRead Write に加えて Random IO Sequential IO、速度の指標も IOPS Throughput というように様々な種類があるため、常に「今回はどのようなアクセスパターンが発生する処理なのか」等を意識するとボトルネックの発見に円滑に近づけたりすると思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む