タグ

ブックマーク / blog.nomadscafe.jp (36)

  • 株式会社メルカリに入社しました - blog.nomadscafe.jp

    入社なう pic.twitter.com/OSi3NaCAnV — masahiro nagano (@kazeburo) February 2, 2015 1000万ダウンロードと会社の2周年という記念の日に入社しました。 2周年を迎えたメルカリ、ダウンロード数は1000万超に - TechCrunch iOS、Androidアプリのダウンロード数はもちろん、商品の出品数や流通額も大幅に伸びています。また、アメリカでの展開等も進んでいるので、サーバ・フロントのエンジニアを募集しています。ご興味のある方はぜひご連絡くださいませ。 3月には六木ヒルズへのオフィス引越も予定されています。mixi入社前にlivedoorのセミナーでヒルズへ行ってから9年。ここに通うことになるとは思いもしませんでした。 今後の仕事 仕事は変わらずサーバ周りの運用・パフォーマンス改善、スケーラビリティの向上です。

  • Gazelle: new Simple and Fast Plack Handler for Performance Freaks - blog.nomadscafe.jp

    Gazelle という新しいPlack::Handler(Server)をリリースしました https://metacpan.org/release/Gazelle 前のISUCONの結果報告で「Chobi」として紹介していたものを名前を変更しました。 GazelleはnginxやApacheでreverse proxyを行うことを前提に書かれたPlack::Handlerです。nginxの後ろにunix domain socketを利用して配置した場合、”Hello World”のベンチマークで、Starmanの3倍、Starletの1.7倍程度高速に動作します。 一番左はnginxで静的ファイルを配信した場合のQPSです ベンチマークの詳細はこちら↓です https://github.com/kazeburo/Gazelle/wiki/Benchmark 特徴など Gazelleは以下

  • ISUCON4 で優勝してきました!!! #isucon - blog.nomadscafe.jp

    去年に引き続き、ISUCONにLINEの選抜チーム「チーム生ハム原木」で出場して優勝することが出来ました!!!! @tagomoris、@sugyan お疲れ様でした!! #isucon 2014で優勝しました - すぎゃーんメモ 最後の最後、残り15分でnginxの設定を行う場所を間違えていたということに気付き、ローカルのベンチマークでしか検証ができず、どの程度のスコアになるのか、またfailするのか分からない状況でしたが、結果的に良いスコアになってほっとしました。 自分でも何度も言いながら「nginxのrewriteはinternal redirect」の大原則を忘れていました。はい。1日100回唱えるようにします。 予選アプリケーションの復習 劇的なスコアは出ていませんが、地道に復習をしていて、 $ ~/benchmarker bench --workload 8 07:26:29

    koba04
    koba04 2014/11/10
    優勝もすごいし、予選アプリケーションの復習を地道にやってるってところが本当にスゴいと思った。
  • dstat + fluentd + Elasticsearch + kibana でサーバモニタリングする - blog.nomadscafe.jp

    普段はサーバのメトリクス可視化のためにcloudforecastを使っていますが、某案件用に数秒単位で数十台のサーバのメトリクスを表示したいので、記事タイトルのような構成を作ってみた。 dstatでとった各種値の他に、nginxとmemcachedの情報も合わせて表示させています。 セットアップ もろもろのセットアップのメモ 監視サーバ まず、監視サーバにElasticsearchとkibanaをいれる。環境はCentOS6 $ sudo yum install java-1.7.0-openjdk $ sudo rpm -Uvh https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.x.x.noarch.rpm Elasticsearchは特に設定なく起動 $ sudo service

  • 一時ファイルとdentry cacheとメモリ - blog.nomadscafe.jp

    わりと長い間悩んでいたんだけど、最近解決したのでメモ。 サービスで利用しているsmalllightの画像変換サーバが、Apacheが使っているメモリ以上のメモリを使用し、Swapしたりメモリ枯渇でサーバがダウンするなどのことが何度かありました。 ↑メモリの動きはこんな感じ いろいろ調べた結果「dentry cache」なるものがメモリ多くを占めていることがわかりました。dentry cacheはディレクトリやファイル名とinodeとを結びつけに使われるキャッシュです。smalllightでは画像を変換する際に一時ファイルを作成するので、その情報が残るようです。 手元で再現させる 番で使っているサーバはCentOS5系ですが、手元のVagrant上のCentOS6(ファイルシステムはext4)で、再現させてみました。 use Parallel::Prefork; use File::Tem

    koba04
    koba04 2014/01/09
  • memcached おすすめ起動オプションまとめ - blog.nomadscafe.jp

    ここを書き直して転載 memcachedに関する記事は「第1回 memcachedの基:memcachedを知り尽くす|gihyo.jp … 技術評論社」など何回か書いていますが、最近のmemcachedでの起動オプションのおすすめをまとめてみようと思います。なおこの記事はMemcached Advent Calendarではありません。 まとめるとこんな感じです。 $ memcached -v -p 11211 -U 0 -u memcached -m 1024 \ -c 100000 -t 4 -C -B ascii ひとつずつ簡単に紹介します。 -v ログ出力 ログを verbose モードで起動します。エラーや警告が表示されます。弊社ではmemachedをdaemontools経由で起動し、ログを記録しています。 -v -vオプションは -vv、-vvv と v の数を増やす事で

  • 4歳の息子と0歳の娘がいる父親がおすすめの絵本を書いてみた - blog.nomadscafe.jp

    941さんが絵名作100リストというエントリーをあげていたので便乗してうちにあるからオススメを紹介してみる。 うちには4歳の息子と0歳の娘がいますが、(息子から見た)おばあちゃんがらでぃっしゅぼーやの絵くらぶというのに申し込んでくれていて、毎月絵が1冊届きます。親と息子でを選ぶと息子が好きな電車とか乗り物とか電車のに偏ってしまうと思うので、毎月いろんな絵が届くのはかなり良い。息子も新しいが来るのを楽しみにしています。 それに加えて、毎週木曜日に保育園からを借りてくるのと、近所の図書館で借りるがあるので、棚はいつもいっぱいです。 ずいぶん前からひらがなカタカナが読めていた息子なので一人でもを読むけど、毎日寝る前に2冊を読んでいます。寝落ちそうになりながら読んでいる事もあるけど、息子・娘ともにが好きになって、をきっかけに世界を広げていって欲しいと思うところです。

    koba04
    koba04 2013/12/04
    もっと絵本読んであげないとなぁ
  • YAPC::Asia 2013 Tokyo で Best Talk Awards 第3位いただきました。 - blog.nomadscafe.jp

    トークの内容はひとつ前のエントリにて紹介していますが、なんとBest Talk Awards 第3位をいただきました!ありがとうございます! 牧さん、941さん、JPAの皆様、ボランティアの皆様、参加した全てのPerl Mongersの皆様と、と子供たちに感謝です。 ベストトーク賞第3位の賞品は「国内の技術カンファレンスの参加チケット費用」ということでPerlに限らず、様々なカンファレンスに参加できるようです。せっかくなのでPerl以外で、LT発表ができるところに行ってみたいのでオススメがあれば @kazeburo 宛にメンション頂けると嬉しいです! YAPC::Asia 2013 2日目は、藤原さんの「社内ISUCONの作り方」、弊社の話ですが、牧さんの「当にあったレガシーな話」、myfinderさんの「フルテストも50msで終わらせたい」あたりがよかった。ISUCONの課題はもっと

    koba04
    koba04 2013/09/24
    おめでとうございます!
  • 「ISUCON 夏期講習」のサーバ環境のつくりかた - blog.nomadscafe.jp

    秋に第三回が開催されるISUCONですが、学生さん限定で「ISUCON 夏期講習」が開催されました。イベントは、tagomorisからWebアプリケーションについての座学を行ったあとに、ISUCON2の問題にチャレンジしてみるという内容でした。 参加者の中にはWebアプリケーションの開発・運用を既にやっている方もいましたが、それ以外の方にとっては、普段からプログラミング言語に触れていても、サーバの設定やデータベース・Webアプリケーションのチューニングといったものは未知の世界で、何から手をつけて行ったら良いかわからず、苦労していた方が多かったように感じました。 今回の「ISUCON 夏期講習」では、ISUCON2の問題に取り組む環境としてEC2の仮想サーバを用意しました。参加者には事前に環境を構築してもってきてもらうという予定でしたが、ノートPC上の仮想サーバなどでは性能が出にくく難しいだ

  • PSGI/Plackアプリケーションの起動方法いろいろと本番環境アレコレ - blog.nomadscafe.jp

    PSGI/Plack/PSGIアプリケーションを動かす時に一番使われているのは plackup でしょう。 $ cat app.psgi use Plack::Builder; use MyApp; my $app = MyApp->psgi_app; builder { enable 'ServerStatus::Lite', => ..; $app; }; $ plackup -E production -s Starlet --max-workers 30 --port 5000 -a app.psgi plackup コマンドの -s にハンドラ名を指定して起動します。番環境では -E や $ENV{PLACK_ENV} を指定してStackTraceやLintといった開発に便利なPlack::Middlewareが追加されないようにする必要がありますね。 Starmanの場合は

    koba04
    koba04 2013/06/07
  • Monoceros というPrefork型だけどC10Kの接続を捌くことができるPSGI/Plackサーバ書きました - blog.nomadscafe.jp

    Monoceros というPSGI/Plackサーバ書きました https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros StarmanやStarletのようなPreforkなアプリケーションサーバでは、コネクションの維持イコールプロセスの占有なので、HTTPのKeepAliveは無効にするのが一般的ですが、負荷の高いサービスではTIME_WAIT状態のソケットが溜まったり、SYN-ACKの再送問題などあり、KeepAliveを使いたいという欲求があったりなかったりします。 Monoceros はリクエストを処理するworkerの他に、イベントドリブンで動くコネクション管理プロセスを立てて、クライアントからの接続ソケットをunix domain socketを使いプロセス間でやりとりします。待機

  • Plack/PSGIアプリケーションのメモリリークをDevel::Leak::Objectでチェック - blog.nomadscafe.jp

    dannさんが以前Catalystでやってたのを参考に、Plack/PSGIアプリケーションのメモリリークを Devel::Leak::Object で調べる方法 plackup を -MDevel::Leak::Object 付けて起動 $ plackup -MDevel::Leak::Object=GLOBAL_bless -e '$Devel::Leak::Object::TRACKSOURCELINES = 1' -s Starlet --max-workers=1 app.psgi -e ‘$Devel::Leak::Object::TRACKSOURCELINES = 1’ を付けると行数まで出力してくれる app.psgiはこんなの sub { my $env = shift; my $ref;$ref = bless \$ref, 'XXX'; [200,['Content

  • ウェブオペレーションエンジニアはリリース前のソースコードのココを見ているッ! - blog.nomadscafe.jp

    「ウェブオペレーションエンジニアはリリース前のソースコードのココを見る!」みたいな記事があればいいね — masahiro nagano (@kazeburo) November 20, 2012 ちょいと前にツイートしたこの件のまとめ。新規サービスのリリースや既存サービスに新しい機能が追加される際に、しばしばそのソースコードを確認しているのですが、僕がどんなところを見ているのかまとめてみました。 そのサービスへの導線とランディングページの確認 まず、そのサービスへの導線やランディングページを確認します。そしてその一番アクセスがあろうページ、一つか二つに確認対象を絞ります — masahiro nagano (@kazeburo) November 20, 2012 どんな素敵なサービスも、機能も適切な誘導がなければ使われる事はありません。また誘導次第では大量のアクセスが一度にサーバに対し

  • DBI->connect 時に使う鉄板オプションを教えて! - blog.nomadscafe.jp

    perlでデータベースを使う時に誰もが必ず使うDBI。その接続時に使うconnectメソッドの第4引数に設定しているオプションがサービスによりまちまちなんだけど、だれか鉄板設定を教えてください。 僕が使うのが、 my $dbh = DBI->connect($dsn, $user, $password, { AutoCommit => 1, PrintError => 0, RaiseError => 1, ShowErrorStatement => 1, AutoInactiveDestroy => 1, }); これ。 加えて、mysqlであれば mysql_enable_utf8 => 1 mysql_auto_reconnect => 0, SQLiteだと sqlite_unicode => 1 sqlite_use_immediate_transaction => 1 を追加し

  • MySQLの設定ファイル my.cnf をgithubにて公開しました & チューニングポイントの紹介 - blog.nomadscafe.jp

    YAPC::Asiaのスライドで予告していた通り、実際に弊社のいくつかのサービスで使っている my.cnf を公開しました。 github: https://github.com/kazeburo/mysetup/tree/master/mysql 今回、公開した理由はMySQl Beginners Talksの発表の中でも触れている通りです。MySQLのソースコード中に含まれるサンプルのmy.cnfが最近のサーバハードウェアや運用に合わなくなって来ているという状況で、自分の設定にイマイチ自信が持てていない人は少なくないはず。そこで各社秘伝のタレ的な my.cnf をOpen & Shareすることで、モダンなmy.cnfを作り上げる事ができるんじゃないかという考えの下、今回 github にて公開しました。 ファイルは4つあり、それぞれ MySQL 4.0、5.1、5.5、そしてテスト中

    koba04
    koba04 2012/10/05
  • GrowthForecastというグラフ表示ツールで捗る話 - blog.nomadscafe.jp

    追記 2012/06/22 公式ページを作りました。そちらも参考にしてくださいませ GrowthForecast - Lightning fast Graphing / Visualization http://kazeburo.github.com/GrowthForecast/ Kansai.pmのLTでも紹介したんだけど、APIを叩く事でグラフを更新するツールを書きました。話の発端としては「cloudforecastのグラフを外からAPIで更新したい」ということでしたが、cloudforecastではグラフの追加が重い処理になってしまうので、別のプロダクトとしています。 サーバの負荷などのメトリクスを収集し、グラフ化することで、システムに掛かっている負荷を把握し、パフォーマンスに影響がでるまえに対策をうったり、改善の結果を知る事ができますが、同じ事はシステムだけではなく提供しているサ

  • Kansai.pm #14 に参加して発表しました - blog.nomadscafe.jp

    GrowthForecastについては、また別のエントリーとして詳しく紹介したいと思います。 kentaro氏のAPNs周りの実装のトーク、papix氏のYAPC::Asiaに行ってきたアツい話、またgardejo氏の汎用機で如何にPerlを使うかのLTなど面白く聞かせて頂きました。実はKansai.pmに参加するのは今回で2回目で、1回目は京都に住んでいる際に行ったlapis25氏のプレゼン中にもあった第六回だったりするのですが、その時と今回と共通して感じた事としてWebサービス以外の場所でもPerlが多く使われているんだなぁということがあります。普段Yokohama.pmに参加したり、社内で会話をしていると、ほぼ全てWebサービスに関連した話となってしまいますが、実際にはもっと広く、メインフレーム・汎用機上のプログラムを処理する為にPerlを使ったいたり、大学の研究で活用されているんだ

  • チート対策とhttp_loadに仕掛けた罠の話 #isucon - blog.nomadscafe.jp

    完全に文化祭疲れで昼寝3時間ぐらいしてしまいましたが、懇親会で聞かせて頂いた話やblogやtwitterをみる限り好評だったようで、うれしく思っています。ISUCONに参加して頂いた方、社内で協力して頂いた方ありがとうございました いくつか至らぬ点がありますが、明日以降に公式にフォローさせて頂きたいと思っています。 さて、既に公開されているので見た方は多いと思いますが、今回ISUCONで使ったベンチマークツールは大きく分けて次の3つのツールに分かれています。 (1) 1post/secでコメントを投稿し、1秒後にコメントをしたページと、インデックスおよび適当な記事のDOMチェックを行う node.js (2) http_load + patch (3) css/js/imageのMD5値を検証する perl script 最終的な順位はhttp_loadが行ったリクエスト数で決まるのでもし

  • Covering Index と self-join と MySQL - blog.nomadscafe.jp

    某サービスのクエリチューニングのお話。 ブログとか日記とかそういうサービス系で次のようなテーブルがあったとします。 CREATE TABLE entries ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, posted_by TINYINT UNSIGNED NOT NULL, --#PC、mobileなどどこから投稿されたかのフラグ title VARCHAR(512) NOT NULL, body TEXT NOT NULL, created_at DATETIME NOT NULL, updated_at TIMESTAMP NOT NULL, status TINYINT UNSIGNED NOT NULL, INDEX (user_id,created_at

    koba04
    koba04 2011/08/15
  • Webアプリケーションエンジニアに知っていて欲しいインフラの知識 - blog.nomadscafe.jp

    過去に何回か、Webアプリケーションエンジニア向けのインフラ勉強会があったらいいなぁとtwitterにつぶやいたことがありますが、じゃぁ実際どんな内容が良いのか、あまりまとまっていませんでしたので、整理してみました。 まぁ「Webアプリケーションエンジニアに知っていて欲しいインフラの知識」と言いながらWebアプリケーションの運用の仕事をしている自分でも専門にやっている方からみて完璧に答えられる自信はありません。ただ今の世の中ググれば答えは見つかるので「概要は知っている」そして「詳細を調べる方法を知っている」ぐらいで問題ないと思っています。 ネットワークにおけるレイヤ2,3,4,7の概要 TCP/IPの通信開始、通信終了時の状態遷移の把握 IPアドレス、セグメント、スタティックルーティング、NAT CPUのトレンド HDDの構造 RAIDレベル、RAIDカードのBBUの役割 SSDの特徴 ハ

    koba04
    koba04 2011/03/09
    必要だと思いつつなかなか出来ていないこと。