タグ

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

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

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

    otsune
    otsune 2015/02/03
  • 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の課題はもっと

    otsune
    otsune 2013/09/24
  • Starlet が HTTP/1.1 に対応しました / wrkによるベンチマークとYAPC::Asiaのトーク宣伝 - blog.nomadscafe.jp

    Starlet が HTTP/1.1 に対応しました。これによりでnginxのupstream keepaliveなどが捗ると思われます https://metacpan.org/release/Starlet https://github.com/kazuho/Starlet ながらくStarletはHTTP/1.0 + keepaliveなサーバでしたが、version 0.20にてHTTP/1.1に対応しました。具体的に対応したスペックは以下。 HTTP/1.1 keepalive Transfer-Encoding: chunked (Request & Response) Expect HTTP Pipelining StarmanやMonocerosとだいたい同じ動きをするようになっていると思われます。 なお、導入にあたっては、リバースプロキシ等と組み合わせた場合の動作パターン

    otsune
    otsune 2013/08/26
  • 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の場合は

    otsune
    otsune 2013/06/11
  • Nagiosのcheck_snmpプラグインの --rate オプションを試す - blog.nomadscafe.jp

    Nagiosのプラグインで、データ転送速度など、変化量・差分を監視するには、プラグインでどこかファイルに監視結果を保存しておいて比較するという手が使えると2つ前のエントリ書きましたが、 check_snmpでもそれがサポートされていたので試してみました。恥ずかしながら知りませんでした。 check_snmpの「—rate」というオプションがそれ。 --rate Enable rate calculation. See 'Rate Calculation' below --rate-multiplier Converts rate per second. For example, set to 60 to convert to per minute Rate Calculation: In many places, SNMP returns counters that are only me

    otsune
    otsune 2013/02/09
  • isucon2 を開催しました。あるいは、優勝組の5倍のスコアを出す方法 - blog.nomadscafe.jp

    去年の第一回では、次の日に3時間の昼寝をしていたようですが、今年は開催中に体調を崩してしまい、参加者の皆様がハックをしている最中にクッションで横になっているという状態になってしました。セットアップの不手際と合わせて申し訳ないと思っています。また家の事情的なこともあり、準備段階であまり協力できなかった中、ibuchoさん、941さん、やぶたさん、tagomoris、sugyanには感謝しております。そして参加者、協力して下さった方みなさまに感謝しております livedoor Techブログ : #isucon2 リアルタイムフォトレポート 更新終了 livedoor Techブログ : #isucon2 参加者・関連エントリまとめ tagomoris/isucon2 - GitHub ISUCON2では課題となったチケット販売サイトのアプリケーションの作成はsugyanが行い、ベンチマークツ

    otsune
    otsune 2012/11/07
  • 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、そしてテスト中

    otsune
    otsune 2012/10/06
  • File::RotateLogs っていうログをファイルに記録していくモジュールを書いた - blog.nomadscafe.jp

    「君のPSGIファイルを僕のミドルウェアでいっぱいにしたい」という台詞を思いついたけど使い道がない kazeburo です 似たようなログ記録モジュールはCPANにいくつかあるんだけど、File::RotateLogsっていうのを書いてCPANにあげました https://metacpan.org/release/File-RotateLogs 特徴は以下の通り strftimeベースのファイル名生成 秒数指定のrotation rotation時に最新のファイルへのsymlink 古いログはforkしてバックグラウンドで削除 使い方 Proclet と組み合わせると my $app = builder { enable 'AccessLog'; $app; }; my $rotatelogs = File::RotateLogs->new( logfile => '/path/to/ap

    otsune
    otsune 2012/08/31
  • zshのzargsが便利そうなのでperlで書いた - blog.nomadscafe.jp

    zshのzargsコマンドの使い方 - 技術メモ帳 それFile::Zglobでできるかもいうことでperlで書いてみた。zshじゃなくても使える。 zargsはxargs相当のコマンド実行機能もあるけど、ファイル一覧さえ作れればxargs使えばいい。 #!/usr/bin/env perl use strict; use warnings; use File::Zglob; use Getopt::Long; use Pod::Usage; our $VERSION=$File::Zglob::VERSION; GetOptions ( 'h|help' => \my $help, 'v|version' => \my $version, ) or pod2usage(2); $version and do { print "zglob: $VERSION\n"; exit 0 }; p

    otsune
    otsune 2012/08/13
  • cron等をつかって外部のAPIに問い合わせる場合は、毎時0分を避けるのが大人のマナー - blog.nomadscafe.jp

    なんかtwitterで書いたらウケたっぽいので cronをつかって外部のAPIに問い合わせる場合は、毎時0分をさけるのオススメ!!!!お兄さんとの約束だ!!! — masahiro nagano (@kazeburo) August 9, 2012 某サービスのAPIへの問い合わせ件数を調べると、毎時 0分台(0秒から59秒)のアクセスは1分から59分までの1分間の平均アクセス数の5倍から8倍にもなります。 これはおそらく、crontabの設定が 0 * * * * /path/to/call_foreign_api になっていることが多いからじゃないかなぁと思うのです。 その結果、サーバのロードアベレージは このように毎時0分だけ跳ね上がってしまいます。サービスを快適に提供できなくなる可能性があるので、APIの利用を制限したり、サーバを追加しなければなりません。これはサービス利用者、サー

    otsune
    otsune 2012/08/10
    jitter使えばよくね
  • Proclet という supervisor モジュール書いてリリースした - blog.nomadscafe.jp

    FreeBSD・OpenBSDと他で ps -e の動作が違ってハマってしまいましたが、Proclet という簡単なsupervisor・プロセス管理モジュールをCPANにあげました。 Proclet - minimalistic Supervisor https://metacpan.org/module/Proclet GrowthForecastでは、growthforecast.pl というスクリプトを実行するだけでWebサーバと2つのWorkerが起動します。CloudForecastのように個別に実行が必要になると使うのも面倒ですよね。 growthforecast.pl を実行後、pstreeで見るとこうなってます。growthforecast.plがsupervisor的に動作し、終了したプロセスがあれば自動で起動し直します。 -+= 70330 kazeburo perl

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

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

    otsune
    otsune 2012/06/07
  • Twiggy::Prefork をリリースしました - blog.nomadscafe.jp

    だいぶ以前 Plack::Server::AnyEvent::Prefork というのを書いて某所で使っていたのですが、ここ数日で事例がもうひとつ増えたついでに Twiggy ベースに書き直してCPANリリースしました。 https://metacpan.org/module/Twiggy::Prefork 使うには、 $ plackup -s Twiggy::Prefork -a app.psgi な感じで、Server::Starterにも対応しているので、 $ start_server --port 5000 -- plackup -s Twiggy::Prefork -a app.psgi とすれば、hot-deployも可能です。 起動オプションは、Twiggyがサポートしているオプションに加えて、 —max-workers preforkするworker数 —max-reqs-

    otsune
    otsune 2012/06/02
  • Apache 2.2.15から入った mod_reqtimeout を Reverse Proxyで使う場合の注意点 - blog.nomadscafe.jp

    slowloris対策として、Apacheの2.1.15から入ったモジュールにmod_reqtimeoutというのがあります。 RequestReadTimeout header=10 body=30 このように設定することで、headerの受信が10秒以内、bodyの受信が30秒以内に完了しない場合、「408」エラーとできます。簡単で便利そうですね 公式ドキュメント http://httpd.apache.org/docs/2.2/en/mod/mod_reqtimeout.html ただし、 Apacheをreverse proxyとして使用している場合はTimeoutにならず、リクエストの一部がproxy先に送られるという問題があるので注意が必要というか、はまったのでその話。 ちなみに、すでにBugzillaには上がっているけど、2.2系ではまだ対応完了してない https://is

    otsune
    otsune 2012/02/17
  • Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011 - blog.nomadscafe.jp

    xaicronとネタが被ったようだけど気にしない>< livedoorでOperations EngineerやってるkazeburoだYo。最近livedoorからオープンソース化された3億ファイルを管理してるオブジェクトストレージ「STF」でも使ってるMessage QueueのQ4Mのインストール方法を紹介するよ! カジュアルだからインストールだけ! 知ってる人も多いと思うけどQ4Mはkazuhoさんによって開発されたMySQLのストレージエンジンとして実装されてるMessage Queue。livedoorではもちろん、mixiやDeNAをはじめソーシャルゲーム各社でも使われている。 Message Queueの説明や使い方はDIS_COMMENTでテーブルスペースフルの神様が書いてるので参考になるね! Perl Hackers Hub 第10回 ジョブキューで後回し大作戦―Th

    otsune
    otsune 2011/12/09
  • チート対策と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が行ったリクエスト数で決まるのでもし

    otsune
    otsune 2011/08/31
    「はまちちゃん機能」とか「やたらとhttp rangeヘッダーを細かくアクセスする機能」とかも?
  • Software Design 2011年9月号に運用エンジニアに関する記事を寄稿しました - blog.nomadscafe.jp

    Software Design 2011年9月号にて『運用エンジニア「攻め」の仕事術」という特集の最初の章を担当させて頂きました。 運用エンジニアとはどんな職業で、何をすべきなのかを10年ぐらい前の昔話や前職の経験、今の職場で感じることなど自分の経歴を含めて書かせて頂きました。 今回の特集は、自分の他に@riywoさんや馬場さん(@netmarkjp)などの方々も記事を書いています。Mobageの半年で10億PV以上増えた話やアツい運用話、馬場さんの専業ならではの監視運用の話も非常に参考になりました。 中でも、馬場さんの記事中の、「障害対応のときに冷静でいる為のポイント」が参考になったので引用します 否が応でも心拍が早くなるので、心拍が早くなっていることを確認して自覚する 「冷静に」を心がける。心がけても冷静でいられないから、余計に心がける 呼吸、口調、タイプスピードを意図的にスピードダウ

    otsune
    otsune 2011/08/19
  • memcached-1.4.7-rc1でmixiの大規模障害の原因となったmemcachedの不具合が全て解消されました - blog.nomadscafe.jp

    こちらとこちらのエントリーの続き memcached 1.4.6でmixiの障害の原因となったaccept_new_connsがスレッドセーフじゃない件は修正されているはずだったのですが、検証したところ別のスレッド競合による不具合が発生し、Bugは全て解消されてはいませんでした。 この件についてmixiたんぽぽGの森さんと調査していたところ、memcachedのcommiterにtwitter上で補足され、つたない英語で報告をあげていたら1.4.7-rc1で修正されたのでその報告。 memcached 1.4.6での不具合再現方法 まず、1.4.6で不具合を再現させる方法について。mixiのエンジニアブログと同じように、memcachedは次のオプションで起動し、 $ ./memcached -U 0 -u nobody -p 11222 -t 4 -m 16000 -C -c 1000

    otsune
    otsune 2011/08/12
  • 今こそ見直すApacheの設定 - blog.nomadscafe.jp

    nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW

    otsune
    otsune 2011/07/07
  • Femo サービス終了のお知らせ - blog.nomadscafe.jp

    2005年12月から運用していました Femo ですが、このたび誠に勝手ながら今月末 2011年6月30日(木)をもちましてサービス終了をさせて頂きました。これまで利用して頂いた方には大変ご迷惑をおかけしますが、ご理解、ご協力をお願いいたします。

    otsune
    otsune 2011/06/23