サーバー運用備忘録

ロードアベレージを見る

w

コマンドなどでロードアベレージを確認。
ラフに考えるとCPUのコア数以下ならまぁ大丈夫そうみたいな数値。

ディスクI/Oを見る

vmstat 2

2秒毎にディスクI/Oを見る。
bi (ブロックデバイスからの読み込み)
bo (ブロックデバイスへの書き込み)
これが0にならずに継続的に100とかを超えているとディスクI/Oがボトルネックになっている可能性。

ネットワークトラフィックを見る
OS標準コマンドではないのでyumとかパッケージマネージャーでvnstatを入れる。

 vnstat -i eth0 -l

これで停止するまでトラフィックを監視できる。

CPU、メモリ負荷確認

htop

これも標準ではないコマンド。topと比べて表示が綺麗でわかりやすい。

array_column便利

多次元配列から一部の要素だけ抜き出したいという時にどうすればいいのか?
ループで取り出すというのが古い言語的な発想だけど、俺たちのPHPならそういう便利道具が元々あるのでは?と調べてみたらあった。

$hoge = [
            ['id' => 1, 'name' => 'stratocaster', 'price' => 70000],
            ['id' => 2, 'name' => 'les paul', 'price' => 150000],
        ];

こんなのがあったとして、nameだけ取り出したいとする。

        $piyo = array_column($hoge, 'name');

とすれば取り出せる。
さらに第3引数で新しい配列のインデックスを指定できる。

        $price_list = array_column($hoge, 'price', 'name');

とすると、nameをキーにした配列になる。

array(2) { ["stratocaster"]=> int(70000) ["les paul"]=> int(150000) }

こんな感じ。地味にあると使える場面がありそうな関数です。

IntelliJ系IDEでJavaScriptのコーディングスタイルを変更する

例えば自分の場合はPhpStormをメインで使っているのだけど、その場合はデフォルトだとJavaScriptPHP的なコーディングスタイルになってしまう。
そういう場合にJavaScriptのコーディングスタイルを変更したい場合の設定。
Preferences -> Editor -> Code Style -> JavaScript まで行き、Set from...を押すとGoogleなどのコーディングスタイルが設定できる。

設定画面

apacheのログが標準出力になっているDockerイメージがあった

環境構築で外部のイメージを使ったところ、apacheのログが標準出力になっていた。
こういう場合、docker-composeコマンドでコンテナ内に入らなくてもログが確認出来る。
例えばwebという名前のコンテナにしていた場合は以下のような感じで確認できる。

docker-compose logs web

AWSコマンドでEC2インスタンス一覧を作成

--queryで欲しい情報を指定する。今回はインスタンスID、インスタンスタイプ、名前が付いていたら名前を取得。
--outputで出力したい形式を指定する。デフォルトはJSON。textかtableが人間には読みやすい。

aws ec2 describe-instances --query "Reservations[*].Instances[*].{Id:InstanceId,Type:InstanceType,Name:Tags[?Key==`Name`]|[0].Value}" --output table