タグ

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

  • ISUCON5予選に参加して2位で予選通過しました - blog.nomadscafe.jp

    ISUCON5 の予選にメルカリのインフラ系エンジニアで結成したチーム「GoBold」で参加して、無事2位で通過しました。チームのメンバーは、@cubicdaiya、@shmorimo、@kazeburoの3人で、普段から横にならんで座って、メルカリのパフォーマンス改善やサーバ環境の整備に携わっています。 今回の予選問題、ずいぶん盛ってきたなーというのが最初の印象。モリスさんも予選問題を選のようにしたいと言っていたし、その通りになっていました。マシンの性能に対しての扱うデータ量もメモリに乗り切らないであろうスレスレのラインでkamipoさんの調整も神だなと思いました。おかげでやることが満載だし、素晴らしい問題でした。運営の941さんも含め当にお疲れさまでした。選もよろしくお願いします。 チームのメンバーのblog ISUCON5予選 2位で通過しました - 考える人、コードを書く人

    peketamin
    peketamin 2015/09/28
  • 「100万円欲しいかー!」「おー!!」YAPC::Asia Tokyo 2015 で「ISUCONの勝ち方」を喋って来た - blog.nomadscafe.jp

    技術的な内容も後半にありますが、ISUCONがどうして始まったのか、ISUCONで良い成績をだすためにはどんな準備をして、チューニングのためにどんなことを考え、調査するのが良いのかについて喋ってきました。 発表が2日目の朝イチでしたが、多くの方にきて頂き、ありがとうございます。この発表でISUCONになるべく多くの方に興味を持って頂き、参加する方が増えればいいなと思ってます。 今年のISUCONの参加者募集はすでに始まってます。 ISUCON5 オンライン予選の参加登録を開始&参加チームとメンバーリスト : ISUCON公式Blog ぜひ、ご応募ください。私はメルカリのインフラチームのエンジニアと共に出場します。よろしくお願いします。 Lightning Talk @uzulla氏がPHPの話を所望されていたので、PHPのエラーログ周りを整理しつつNorikraの話をしました 1日目にLi

    peketamin
    peketamin 2015/08/27
  • 株式会社メルカリに入社しました - blog.nomadscafe.jp

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

    peketamin
    peketamin 2015/02/03
  • h2o と server_starter で graceful restart with Docker - blog.nomadscafe.jp

    h2o はserver_starter経由のgraceful restartをサポートしているので試してみた。ついでにdockerで動かしてみた。 h2o/h2o 実際にwrkでベンチマークしながらコンテナにHUPシグナルを送り、graceful restartを行ってみたのが次の動画 左上がh2oをdocker経由で起動しているウィンドウ、HUPを受けてh2oのプロセスを入れ替えている様子がわかります。。左下はwrkの実行、右側はコンテナにHUPを送ってます。 HUPシグナルはdocker killを使って送ります。 $ docker kill --signal="HUP" $(docker ps |grep kazeburo/h2o|awk '{print $1}') wrkの結果はこんな感じ。エラーは出ていません vagrant@vagrant-ubuntu-trusty-64:~/

    peketamin
    peketamin 2015/01/22
  • 「Webエンジニアが知っておきたいインフラの基本」はぜひこの冬休みにWebエンジニア・ディレクタに読んでみて欲しい一冊 - blog.nomadscafe.jp

    サーバの監視やモニタリングなどのサービス・ソリューションを提供するMSP(マネージメントサービスプロバイダ)のハートビーツの馬場さんが「Webエンジニアが知っておきたいインフラの基」というを出版されました。 献頂きありがとうございます!! 冬休みは実家に帰ったり、旅行に行ったりと何かとイベント事が多くなかなかを読む時間が取れなかったり、年が明ければ弟妹・甥っ子姪っ子にお年玉を上げないとならず、自由に使えるお金も減ってしまうかもしれません。なので、読んでみて欲しいが何冊もあっても困ってしまいますね。そこで自分がお勧めしたいのが、この一冊「Webエンジニアが知っておきたいインフラの基」です。 屋に行く時間がない方も安心。電子版があります Webエンジニアが知っておきたいインフラの基 インフラの設計から構成、監視、チューニングまで【委託】 - 達人出版会 http://tatsu

  • 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

  • 「ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版」を公開しました - blog.nomadscafe.jp

    昨日のエントリで紹介した「Webアプリケーションの パフォーマンス向上のコツ 実践編」ですが、いくつかスライドを追加して、「完全版」として公開しました。 ISUCONだけに限らず、一般的なWebアプリケーション、SQLのチューニングの参考となる資料となっていると思いますので、見て頂けたら嬉しいです。 <追記> ISUCON4 オンライン予選の参加登録が開始されています!!!Webアプリケーションを書いている方もインフラを扱っているエンジニアも運用エンジニアも、ぜひチャレンジしてください!!私もでます!! 参加はこちらから↓↓↓↓ ISUCON4 オンライン予選の参加登録を開始しました \n\n\nISUCONだけに限らず、一般的なWebアプリケーション、SQLのチューニングの参考となる資料となっていると思いますので、見て頂けたら嬉しいです。\n\n## <追記>\n\nISUCON4 オン

    peketamin
    peketamin 2014/08/22
  • GitHubとDocker HubのAutomated Buildを組み合わせてGrowthForecastのDocker imageの作成を自動化したハナシ - blog.nomadscafe.jp

    タイトルがそのままですが、GrowthForecastのDocker imageを作りました。 https://registry.hub.docker.com/u/kazeburo/growthforecast/ 使い方は単純に起動するだけなら次のようになります。 $ docker run -p 5125:5125 kazeburo/growthforecast これだと、データが永続化されないので、適当なボリュームをマウントします。 $ docker run -p 5125:5125 -v /host/data:/var/lib/growthforecast kazeburo/growthforecast 起動オプションを変更したい場合は、コマンドを渡すか、Dockerfileを書いてビルドすると良いでしょう。 $ docker run -p 5125:5125 -v /host/dat

    peketamin
    peketamin 2014/06/26
  • listen()のbacklogが不足した際のTCP_DEFER_ACCEPTの動作について - blog.nomadscafe.jp

    TCP_DEFER_ACCEPTは、LinuxでサポートされているTCPのオプションで、サーバ側で使用した場合にはaccept(2)からのブロック解除をTCP接続が完了したタイミングではなく最初のデータが到着したタイミングで行ってくれるオプションです。 Webサーバ・アプリケーションサーバではリクエストが到着してからaccept(2)のブロックを解除するので、リクエストの到着をWebサーバ・アプリケーションサーバで待つ必要がなくなり、特にprefork型のサーバでは効率的にプロセスを使えるようになるという利点があります。PerlではStarletがこの機能を有効にしています ところが、某サービスでTCP_DEFER_ACCEPTが有効にも関わらず、accept後のreadでデータが読めず、最悪の場合、デフォルトのtimeoutである5分間プロセスがストールすることがありました。strace

  • 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

    peketamin
    peketamin 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 の数を増やす事で

    peketamin
    peketamin 2013/12/12
  • G-WANはなぜ速いのか?をnginxと比べながら検証してみた - blog.nomadscafe.jp

    ツチノコブログのWEBサーバベンチマークツール比較の記事で紹介されていた。WebサーバのG-WAN。この記事によると凄く速いようです。 Intel Xeon E5-2640 (6コア/12スレッド 2.50GHz) を2つというサーバで gwan  334944 req/s nginx 111842 req/s と、速いと言われているnginxの3倍の速度を出しています。 このベンチマーク結果がとても気になったので、なぜG-WANが速いのか、自分でも検証してみました。 結論から言うと以下の2つ。 1) G-WANはデフォルトで物理CPUに合わせた数のスレッドを起動する 2) HTMLファイルも一度読み込んでキャッシュする という事です。 今回はAWSのcc2.8xlarge(E5-2670 8コア/16スレッド 2.60GHz *2)を使ってベンチマークを行いました。OSはAmazon L

    peketamin
    peketamin 2013/09/04
  • Monoceros が HTTP/1.1に対応しました & nginx と組み合わせたベンチマーク - blog.nomadscafe.jp

    C10K対応Prefork型高速PSGI/Plackサーバの Monoceros をHTTP/1.1に対応させました。 https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros MonocerosではHTTPのKeepAliveに対応して、大量の接続を捌く事ができますが、リリース時点ではHTTP/1.0 KeepAliveにしか対応していませんでした。しかし、nginxのupsream などでは、keepaliveを有効にしてHTTPセッションを使い回したい場合にHTTP/1.1が求められます。 以前このあたりの事をしらべてblog書いています nginx-1.1.x で httpなupstreamにもkeepaliveができるようになったので検証してみた https://blog.nomads

    peketamin
    peketamin 2013/05/17
  • モニカジ#3 #monitoringcasual に参加してMHA for MySQLの管理ツールの話をしてきた - blog.nomadscafe.jp

    監視をテーマに参加者全員がゆるふわに好き放題しゃべる Monitoring Casual Talk に参加してきました Zussar: http://www.zusaar.com/event/521056 発表した内容はこちら。監視の話なのかどうかは謎 MHA for MySQLの基構成と弊社で使っているMHA管理ツールの紹介です。masterha_managerの設定とプロセス管理、そしてオンラインでのマスター切り替えをWebUIから行えるの非常に便利なツールです。オープンソースになってないのに喋りました。すみません。 今回感じたのが、モニカジ参加者かいわいでの監視ツールが zabbix か munin + nagios に固まってきている点。zabbix勢はツールの使いこなしに悩んでいて、nagios勢は設定ファイルの自動生成あたりがホットな話題という感じでした。 弊社は cloud

    peketamin
    peketamin 2013/03/10
  • Nagios と derived でMySQLのスロークエリの量を監視する - blog.nomadscafe.jp

    新しい機能をリリースした際に、MySQLに対して効率的ではないクエリが発行されてしまって、それが積もってサービス全体に影響が出てしまう前に発見してアラートをあげたい。 発見する手立てとしてはCPU使用率やInnoDBのROW OPERATIONSが考えられるところですが、今回はスロークエリが発生した回数を監視することにした。ちなみにいつものことながら対象とするMySQLは4.0系。long_query_timeがオンラインで変更できません。。。はい MySQLのスロークエリが発生した回数は、show status のSlow_queriesという項目でみることができて mysql> show status like 'Slow_queries'; +---------------+-------+ | Variable_name | Value | +---------------+---

    peketamin
    peketamin 2013/02/14
  • 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

    peketamin
    peketamin 2013/02/10
  • 数字を出力するコマンドを定期的に実行して、秒間の変化量を memcachedプロトコルで取れるサーバを書いた - blog.nomadscafe.jp

    Nagiosを使っていると、その瞬間の絶対値だけじゃなく、差分や変化量を取得してその数値を監視したくなりますよね。ならないとしたら、今すぐこの記事を読むのをやめて病院に行って下さい。 Nagiosで変化量を測定するには、プラグインの中で前の数値をどこかファイルにでも保存し、比較するという手があります。このcheck_bandwidthはその方法を取っているようです。 ただ、これだと汎用性があまりないので、監視対象サーバ側に定期的に指定したコマンドを実行して、その数値を外部から取得できるサーバを書いてみました。 CPAN: https://metacpan.org/release/App-derived *出てくるまで時間がかかるようです github: https://github.com/kazeburo/App-derived 使い方 インストールはcpanmで $ cpanm -n

  • HRForecast - もうひとつのデータビジュアライズツール - blog.nomadscafe.jp

    ずいぶん前から作って動かしてはいるのですが、GrowthForecastの他にもうひとつのグラフ作成ツールを公開しています。 https://github.com/kazeburo/HRForecast デイリーで更新される数値のビジュアライズに使う事が出来ます。GrowthForecastにはない過去データの登録もできます。 モリスさんのスライドでも少し登場しています。弊社では主にHiveでの集計の書き出し先として使っています http://www.slideshare.net/tagomoris/log-analysis-with-hadoop-in-livedoor-2013 画面はこんな感じ 他のページにembedするHTMLの発行やCSVでダウンロードをサポートしています データの登録APIについて データの登録は、GrowthForecastと同じようにURIに対してPOSTリ

  • apachectl -k restart は stop && start じゃないので気をつけましょう - blog.nomadscafe.jp

    Apacheを起動するときに使う事もある apachectl の -k restart は stop && start ではないので注意しましょう。 ServerLimitやThreadLimitなどの一部の設定は、restart では適用されず、stop && start が必要になります。 apachectl は実はshellscriptで出来ています。中をのぞくと #!/bin/sh .. HTTPD='../httpd' .. start|stop|restart|graceful|graceful-stop) $HTTPD -k $ARGV ERROR=$? ;; と書かれています。restartはhttpdコマンドにそのまま渡されるようです。 そこでhttpdコマンドのドキュメントを読むと詳しくは Stopping Apache httpd http://httpd.apach

    peketamin
    peketamin 2013/02/01