タグ

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

  • dstat + fluentd + Graphite + Grafana でサーバモニタリングする - blog.nomadscafe.jp

    ES + kibanaでサーバモニタリングをやってみたのですが、ESのCPU負荷がかなり高くて、リアルタイムにモニタリングできない状況だったので、graphite + grafanaにしてみた。ちなみに、ESのサーバのCPU負荷はこんな感じ。 GrafanaはGraphite用のDash boardを作るツール。最近、influxDBにも対応していてなかなか野心的。 Grafana - Graphite Dashboard kibanaをforkしただけあって、画面はそっくり。まだ修正もれがあるのか、メッセージにkibanaって文字がでてくることもある セットアップ もろもろのセットアップのメモ 監視サーバ まず、監視サーバにGraphiteとGrafanaをいれる。環境はCentOS6 CentOS6.x - CentOSにRPMでGraphite+Diamondをインストールする -

  • 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

  • 「Mobageを支える技術」を読みました - blog.nomadscafe.jp

    DeNAさんの「Mobageを支える技術」を献頂きました。nekokakさんありがとうございます。 今日発売です このは4部構成になっています Part 1 ソーシャルゲーム開発技術 Part 2 ソーシャルゲーム運用技術 Part 3 ソーシャルゲーム効率化技術 Part 4 ソーシャルゲーム分析技術 最初はガラケーやスマホなどのどちらかというと、フロントよりの話があり、Part2と3で、インフラ・データベース・アプリケーションのチューニングなどの話題が出て、Part4ではデータマイニングが紹介されます。目次をみるだけでもDeNAを支える技術をできるだけ多く盛り込んだだということがわかります。その分、若干書評が書きにくく、万人にお勧めするのが難しいだなと思いました。 DeNAがさばいている35億PV/dayというリクエスト数と同等レベルのアクセスを相手にしければならないエンジニア

  • 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

  • MySQLのbinlogをmysqlbinlogとperlワンライナーでカジュアルに解析する - blog.nomadscafe.jp

    MySQLを運用していて特定の時間帯だけ更新クエリが増えているのを見つけたときにバイナリログを探ったりすることはまぁまぁあると思います。最近はmysqlbinlogperlのワンライナーをつかって調べています mysqlbinlogをつかって特定の時間帯のログを調べるのは $ mysqlbinlog --start-datetime="2012-07-31 09:41:00" --stop-datetime="2012-07-31 09:45:00" mysql-bin.941 こんな感じですね。ちなみにMySQL 4.0.x のmysqlbinlogにはstart-datetime、stop-datetimeのオプションがないので新しいバージョンが入っているサーバに転送するなりして実行しています。 この出力は #120731 09:41:48 server id 9316 end_lo

    nubes
    nubes 2013/07/01
    これ便利情報すぎるー
  • アプリケーションがマルチスレッドでもマルチコアCPUを活かせない件 - blog.nomadscafe.jp

    もっと詳しい方のフォロー募集です アプリケーションがマルチスレッドになってもネットワーク処理が分散されなければマルチコアを活かせない典型的な例です。id:viverの古橋さんがs100kpsとしてあげていた件にも近いかも。 memcachedで現象を確認します。最近のmemcachedはマルチスレッドで動くようになっているので、まずはそれを確認します。 $ memcached-tool localhost stats|grep threads threads 4 スレッドが4つで起動しています。 負荷がそれなりにある状態(8000req/sec程度)で、コマンドラインでtopを開き、「1」キーを押して、CPUごとの使用率を表示します。(例はFedora8 kernel-2.6.23) Tasks: 77 total, 1 running, 76 sleeping, 0 stopped, 0

  • CentOS 6.2 で RPS/RFS を使ってネットワークの割り込み処理を複数コアに分散してみた - blog.nomadscafe.jp

    以前(2010年)に「アプリケーションがマルチスレッドでもマルチコアCPUを活かせない件」というエントリにてCPUのコアが増えても割り込み処理が分散されないのでスケールされないと書いたけど、その後Linux KernelにRPS/RFSなる機能が追加され、割り込み処理が分散できるようになり、CentOS 6.2 でも使えるらしいので試してみました。 RPS/RFSについての紹介は VIOPS06で「RPS・RFS等最新Linux Kernel事例」と題してお話してきました http://d.hatena.ne.jp/syuu1228/20110722/1311322653 Linux内核 RPS/RFS功能详细测试分析 http://www.igigo.net/archives/204 が詳しい。2番目のはほぼ読めないけど、性能比較のグラフが分かりやすい。 今回試したサーバは、 OS: C

  • やったー PerlでProcfileベースのプロセス管理ツール foreman の互換コマンド "proclet" できたよ - blog.nomadscafe.jp

    Webアプリケーション開発時などに依存するバックグラウンドプロセスを管理するツールとして rubyで作られた foreman というツールがあります Procfileという名前のファイルに worker: ./bin/worker web: plackup web.psgi と書いて $ foreman start とやると指定したプロセスを起動してくれるらしいです。 cho45やtokuhiromからの提案もあったので、Procletをベースに同様の機能を持つprocletコマンドを作り、Procletに同梱してリリースしました。 https://metacpan.org/module/Proclet バージョン0.11で追加されました。 インストールは $ cpanm Proclet 使い方 実装されていない機能もあるけどだいたいforemanと一緒です Procfileを用意して p

  • Plackを使ってApacheナシでNagiosをインストールする方法 - blog.nomadscafe.jp

    Plack上でPHP(php-cgi)を動かすモジュール、Plack::App::PHPCGIと任意のCGIも動かせるPlack::App::CGIBinを使ってApacheナシでNagiosをインストールする方法 まず、php-cgiをインストールする。CentOSの場合、php(53)?-cliというパッケージがあるのでそれを使います $ sudo yum install php53-cli #centos5。centos6だとphp-cli 次にnagiosを動かすユーザを作成します $ sudo /usr/sbin/adduser nagios nagios体とpluginをダウンロードしていれます。その際にApacheの設定はインストールしません $ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagio

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

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

    nubes
    nubes 2012/12/09
  • 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、そしてテスト中

    nubes
    nubes 2012/10/05
  • DBIx::DSN::Resolver ってのを書いた - blog.nomadscafe.jp

    YAPC::Asia Tokyo 2012 始まりましたね。 それとはあまり関係なく DBIx::DSN::Resolver というモジュールを書いてリリースしました https://metacpan.org/release/DBIx-DSN-Resolver 何をするモジュールなのかというと、DBIでデータベースに接続する際に使うDSN中のホスト名を名前解決してくれるモジュールです。mobageでxaicronが書いていたのを参考にして作りました dbi:mysql:database=mytbl;host=dbserver.local これを dbi:mysql:database=mytbl;host=10.9.4.1 と変換してくれます。 また、名前解決する機能を差し替える事ができるので、そこでキャッシュを挟む事も可能です。Cache::Memory::Simpleを使うと以下のよう

    nubes
    nubes 2012/09/28
  • ロードアベレージを監視して任意のコマンドを実行するコマンド - blog.nomadscafe.jp

    とあるサーバでロードアベレージが上がったときに何が起きているか知りたくなったので書いてみました。他に似たツールがあれば教えて欲しいです cpan: https://metacpan.org/release/App-LoadWatcher github: https://github.com/kazeburo/App-LoadWatcher インストール インストールはcpanmを使います $ cpanm App::LoadWatcher cpanmが入っていないなら $ curl -L http://cpanmin.us/ | perl - App::LoadWatcher とすると楽です 使い方 ロードアベレージが「0.6」以上のときにuptimeを表示するには $ load_watcher -l 0.6 -- uptime こんな感じです。ハイフン2つ書いたあとにコマンドを書きます オ

    nubes
    nubes 2012/07/26
  • Monitoring Casual Talk #1 に参加してきた! #monitoringcasual - blog.nomadscafe.jp

    いやー、おもしろかった。主催の @kenjiskywalker さんはじめ皆様ありがとうございます。 Monitoring Casual Talk #1 : ATND http://atnd.org/events/29621 みんな共通した悩みがあるんだなと改めて思いました。とくにアラートを受け取るための携帯の着信音。自分は「鳩時計」が苦手です。ぱぽーぱぽー。 あとはカクさんDisが多かったですね。個人的にもマウスメインで設定を行う運用ツールは使いたくないです。 自分の発表資料はslideshareに上げました。年始の「hb qp bp study 新年LT&ビアバッシュ2012」で少し喋ったDHWChainの話のアップデート版と、監視ツールを選ぶ際に思う事を放言しています。 アプリケーションエンジニアvimemacsについてあれこれ言うように、運用を行うエンジニアも主たる仕事道具であ

  • 今こそ見直す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

    nubes
    nubes 2012/01/19
    mod_bumpy_life を使って一斉に apache プロセスが死ぬのを避ける。
  • プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp

    kazuhoさんが「プロのサーバ管理者の間では存在価値が疑問視されて久しい (Min|Max)SpareServers だと思う」と書いたり、hirose31さんが去年のYAPC::Asiaで{Start,{Min,Max}Spare}Servers,MaxClientsは同じにしているよと発表したり、実際前職のサーバはそのように設定されていたのですが、自分でうまく説明ができてなかったので、調べながら書いてみた。 当はイントラブログ用に書いていたものですが、がんばったので転載。 前提として、CPUの使用率におけるsystemとfork Re: クラウドがネットワークゲーム開発者にもたらしてくれたもの - blog.nomadscafe.jpでも書いている通りforkってのはサーバにとって重い部類の処理になります。つまり負荷の高いときにforkを大量に行うのはしてはならないことの1つです。

    nubes
    nubes 2012/01/19
    ビジーなときに folk するのは避けるべき。
  • nagios

    2007/2/14 Copyright 2007 kazeburo@nomadscafe.jp Nagios の Plugin を Perl で + NRPE 長野 雅広 blog.nomadscafe.jp id:kazeburo 2007/2/14 Copyright 2007 kazeburo@nomadscafe.jp - 1 - Nagios 2007/2/14 Copyright 2007 kazeburo@nomadscafe.jp - 2 - Nagiosとは � オープンソースで開発されている、システムとネットワー クの監視ソフトウェア � 読み方は「ナギオス」 � プラグインやWebインターフェイスの一部がPerl � M社やH社をはじめ実績も多数 2007/2/14 Copyright 2007 kazeburo@nomadscafe.jp - 3 - Nagiosの

    nubes
    nubes 2011/11/20
    Nagiosプラグインの作成方法
  • YAPC::Asia Tokyo 2011 で発表してきました。 - blog.nomadscafe.jp

    今年もYAPC::Asiaに参加してきました! 牧さん、941さんをはじめスタッフの皆様、スピーカーの皆様、そして参加者の方、お疲れさまでした。ありがとうー。 去年の発表はcloudforecastでしたが、今年は、「運用しやすいWebアプリケーションの構築方法」としてログ、DBI、memcached、matricsと4つほどトピックをあげて紹介しました。 YAPC::Asiaが始まるまえに id:tagomoris が「YAPC::ASIAで、あるいは他の勉強会で、しゃべりたいこと、聞きたいこと」というエントリーで、以下のようなことを書いていました。 ソフトウェア関連の勉強会に行ってしゃべらせてもらうとき、当然「自分は何をやったのか」を話しに行く。世の中にあるコレがこうなってるよというセッションももちろんあるけど、もちろんその話をする人はカタログを読み上げてるだけじゃなくて、その人が読み

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

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

  • 1