コマンドで一気に複数アプリを起動して自分のワークスペースを立ち上げる
Macのみです。タイトルのままです。特に大したアレじゃないのですが、便利でずっと使ってるので共有がてらメモです。
普段、ずっと立ち上げてるアプリってあると思います。僕の場合は、
- iTerm
- Google Chrome
- Airmail
- Slack
- Facebook Messanger
- LINE
- iCal
あたりは仕事で常に使うので立ち上がってる状態。
Macでは、$ open -a
でアプリケションを起動できるので、それのaliasを以下のように貼れば、OS立ち上げ後などに一気に仕事できる環境まで持っていけます。
# zshrc alias playground="open -a 'google chrome' | open -a 'Airmail Beta 2' | open -a ical | open -a slack | open -a 'FreeChat for Facebook Messenger' | open -a 'line'"
めっちゃ小技だけどめちゃ便利。
余談。
仮想デスクトップの現状の使い方ベストは、
- Desktop1: ターミナル
- Desktop2: Google Chrome
- Desktop3: コミュニケーションツール突っ込む&&その他ワークスペース
- Desktop4: iCal (Full Screen)
nginxでRailsのアプリケーションと独立したファイルへのアクセスを設定する
別に何のアプリケーションでもいいのですが、nginxで他のアプリケーションを動かしつつ、独立したファイルへのアクセスも可能にするための設定メモ。
nginxのconfファイルを以下のようにします。
server { # ...(omission)... location /path/to/directory/ { access_log /var/log/nginx/temp_access.log; error_log /var/log/nginx/temp_error.log debug; root /var/www/; try_files $uri /file.txt; } # ...(omission)... }
/var/www/path/to/directory/
の中にファイルを 対象のファイル (この例ではfile.txt
) を設置します。
try_files
でファイルを指定するときに、ファイル名の前に /
が必要なので注意です。ここでハマってめっちゃ時間食った。。。
error_logのdebugを使うと、infoレベルのログもエラーログに吐き出してくれるのでむっちゃ便利です。400とかだとエラーログ吐いてくれない。大事。
error_log /path/to/directory debug;
MySQLのチューニングやること
参考リンク
基本指針
具体的な方法
1. バッファサイズを適切に設定する
- innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。
MySQLの推奨の70%で設定してみる。
- key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。
- sort_buffer_size・・・ソート処理に利用するバッファである。OLTPでは256K〜1Mぐらいを割り当てると良い。これがあまり大きすぎると、メモリの割り当てのオーバーヘッドが大きくなるので注意しよう。DWH系の処理などで大きなソートが必要な場合、セッションごとに動的に調整すると良い。
- read_buffer_size・・・全件スキャンをするときに利用するバッファ。OLTPでは128K〜512Kぐらいを割り当てると良い。
- read_rnd_buffer_size・・・ソート処理でインデックスを利用する場合に利用するバッファ。OLTPでは256K〜1MぐらいをDWH系の処理などで大きなソートが必要な場合、セッションごとに動的に調整すると良い。 http://nippondanji.blogspot.jp/2009/02/mysql10.html
パラメータの数値は以下を参考にしました。
/etc/my.cnf/
innodb_buffer_pool_size = 512M innodb_log_file_size=64M innodb_additional_mem_pool_size = 5M key_buffer_size = 64M join_buffer_size = 256K read_buffer_size = 256K max_allowed_packet = 2M read_rnd_buffer_size = 1M sort_buffer_size = 1M query_cache_limit = 4M query_cache_size = 128M query_cache_type = 1 max_connections = 100 # default max_heap_table_size = 4M tmp_table_size = 4M
2. indexを適切に貼る
“適切に"というところも大事。全てにindexを貼ってしまうと、
3. テーブルの最適化
できるだけカラムサイズが小さくなるデータタイプを選択すること
ex. 数値を保存するときにVARCHARなどは使わないように!!INTやBIGINTの方がデータサイズはずっと小さくなる!
その他
メモリの消費量が大きいなと思ったとき
table_definition_cache
を400くらいに設定しておくとかなりメモリの消費量を抑えることができます。
設定していたときのEC2サーバーで、ここまでのチューニングでMEM%が30%前後だったのが、20%前後で落ち着くようになりました。
MySQL :: MySQL 5.6 Reference Manual :: 5.1.5 Server System Variables