- 投稿日:2019-12-30T15:44:51+09:00
ログ監視
サーバーログを監視する
本番、検証、開発、どれでもですが
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って書いてみました
- 投稿日:2019-12-30T10:25:41+09:00
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
というように様々な種類があるため、常に「今回はどのようなアクセスパターンが発生する処理なのか」等を意識するとボトルネックの発見に円滑に近づけたりすると思います。