Monthly Archives: 2月 2015

リモートブランチのbehindを調べる方法

こんにちは

株式会社Loco Partners エンジニアの大須賀です。

弊社ではソースコードの管理にGithubを使用しています。
GithubではBranchの一覧ページで、トピックブランチがmasterに対してコミットいくつぶん進んでいるか/遅れているかを視認できるようになっています。

Screen Shot 2015-02-26 at 9.42.42 AM

masterから遅れているブランチの作業者に対して、チャットでrebaseを促すツールを作ろうと思い、下記のようなスクリプトを作成しました。

「git rev-list –left-right branch1…branch2」は、branch1とbranch2のコミットの差を表示するコマンドです。
その出力からahead/behindコミット数を割り出し、表示します。

Linuxのメモリ使用量

こんにちは
株式会社Loco Partners エンジニアの大須賀です。

弊社で開発・運用をしている宿泊予約サイト「relux」のWebサーバは、AWSのEC2でAmazon Linuxを使用しています。

適切なEC2のインスタンスタイプを選ぶにあたり、メモリの使用量は重要な指標の一つです。
Linuxでメモリの使用量を見る2つのコマンドについて説明をします。

freeコマンド

$ free -m
total used free shared buffers cached
Mem: 478 454 24 0 142 92
-/+ buffers/cache: 219 259
Swap: 1474 2 1472

この結果を見ると、478MBのうち454MBが使用されていて、残りが24MBしか無い逼迫した状況のようにも見えますが、実際はそんなことはありません。
Memの行のuserdの値には実行中のプロセスが使用しているメモリの他、buffers,cachedの値も加算されています。
buffers,cachedはどちらも、ディスクIOを高速に行うためのキャッシュなのですが、その中には解放できる領域が存在します(解放できるのに解放していないのは使い回しをするため)。メモリの実際の空き領域は、(Mem:の行のfreeの値 + buffers,cachedのうち解放できる領域) ということになります。

buffers,cachedのうち解放できる領域はどれ程あるのかはvmstatコマンドで調べることができます。

$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free inact active si so bi bo in cs us sy id wa
1 0 2176 24688 29776 388344 0 0 0 1 0 0 0 0 100 0

上記出力のうち、inactの数値が解放できる領域のサイズです。
freeとinactの数値を合わせたものが利用可能なメモリ量なので、この例の場合だと54MB程が利用可能といえます。

※この例だとinactが少ないですが、実際はもっと多い(ことが多い)と思います。この例のような状態だったら、メモリの増設をしたほうが良いですね。

CakePHP2でComponent初期化より前に処理を書く方法

こんにちは

株式会社Loco Partners エンジニアの大須賀です。

弊社で運用をしている宿泊予約サイトreluxは、CakePHP2で開発しています。

CakePHPではControllerのアクションよりも前に処理を行いたい場合、ControllerのbeforeFilter()というコールバックメソッドの中に書くことが一般的です。
ですが、beforeFilter()はComponentの初期化よりも後に呼び出されるという点に注意が必要です。

beforeFilter() よりも前に呼び出されるControllerのメソッドは `__construct()` と `startupProcess()` の2つです。
Componentの初期化よりも前に実行したい処理があれば、これら二つのどちらかをオーバーライドして処理を書きましょう。

主催したDevOps関連の勉強会をまとめました

こんにちは。

株式会社Loco PartnersでCTOをしている古田です。

最近、日本上陸を果たしたコーヒー界の“Apple”(大袈裟)「ブルーボトルコーヒー」に行きたくてやきもきしてます。

並んで待つことが大嫌いなので、行列がなくなった頃に行きます。

 

さて、弊社では去年末から複数の勉強会を開催しています。

その中でも人気のあったDevOps関連のイベントについて、振り返りも兼ねてまとめ記事を作ります。

 

Slack×Hubot 勉強会!(参加費無料!! ピザ&ビール付き)10月24日

http://devops.connpass.com/event/9256/

LT発表者

初めてのDevOpsに関するイベント。弊社でも導入したばかりのSlackとHubotにテーマを絞って開催しました。

各社・各自でHubotにどんなことをさせているか、という事例共有という話が多かったです。

 

DevOps勉強会!Chat×Bot×CI×Git(参加無料!!ピザ&ビール付き)11月26日

http://devops.connpass.com/event/9886/

LT発表者

  • nanapi 遠山様(発表資料
  • MUGENUP 奥田様
  • ランサーズ 上野様
  • リクルートHD メディアテクノロジーラボ 鈴木様
  • Loco Partners 古田(発表資料
  • Loco Partners 山口(発表資料

第2回目 は、テーマ範囲を広げてDevOps全般としました。

前回よりも技術的に深く具体的な話が多かったかと思います。またこちらでお会いした方との人脈が次回のイベントに繋がっていきました。

 

少数開発チームのためのDevOps&ChatOps勉強会!(参加無料!!ピザ&ビール付き)1月22日

http://devops.connpass.com/event/11091/

LT発表者

  • ietty 戸村様
  • NTTコミュニケーションズ 草間様
  • NTTコミュニケーションズ 五十嵐様
  • ユーザベース 杉浦様
  • Loco Partners 古田(発表資料)

年が明けて第3回を実施。

前回イベントでDevOpsは大手企業もかなり興味を持っていることが分かったので、第2回に参加されたNTTさんにもTLをお願いしました。