Linux のコマンド実行時間を計測したい!
みなさん、Linux のサーバーを触っていたりして、コマンドの実行時間を計りたくなったときががありますよね?
例えば、ある処理のバッチ実行に何分かかるのか、
DB の移行処理に何時間かかるのか、等々。
本番で実作業を始める前に、テスト環境で手順を確認しながら
時間も計って、サービスを何分止めようだとか、どれくらいのユーザーに影響が出そうか確認しておこうとか。
私は以前、そういう状況になったときに、コマンドを走らせつつ、
同時にストップウォッチを回して計測していたりしたこともありました。
ただ、その方法だと、時間がかかる処理だったりするといつの間にか終わってたりとかして、
きちんと時間を出すためにやり直す羽目になったりするんですよね…
ということで、今回時間を計りたいときに使ってもらいたいのが、 time
コマンドです!
time コマンドで実行時間を計ろう!
ということで実践。
例えば mysqldumb の時間を計る場合。こんな感じ。
time mysqldump -R -u{ユーザー名} -p {DB 名}> dump.sql
実行して DB のパスワードを入力、少し待つと…
結果が取れましたね!
数字が三つ出てますが、
- real: コマンド実行にかかった総時間
- user: ユーザーが処理に使った CPU 時間(入力待ちや IO 処理中は入らない)
- sys: OS が処理に使った時間
という感じになっているので、基本は一番上だけみたら良いです。
今回は 0m9.319s
ということで、0 分 9.3 秒かかったんですね!
これならタイマーも必要ないので、時間計測もラクラクです!
お昼休みに席を外している間に測定を…みたいなこともできますね!
覚えておくと意外に便利なコマンド
軽めな小ネタでしたが、いかがでしたでしょうか。
意外に覚えておくと、ふとしたときに役に立ったりすることがあるので、
こんなコマンドもあるんだなーと言うことで覚えておいてもらえれば良いかなと思います。