タグ

ブックマーク / hirose31.hatenablog.jp (15)

  • dstatの万能感がハンパない - (ひ)メモ

    サーバーのリソースを見るにはグラフ化は重要ですが、推移ではなくリアルタイムな状況、例えば秒単位のスパイキーな負荷を見るには、サーバー上でvmstatやiostatなどの*statファミリーを叩く必要があります。 さて、vmstatはメモリの状況やブロック数単位のI/O状況は見られますが、バイト単位のI/O状況やネットワークの送信、受信バイト数を見ることはできません。 # vmstat 1 procs -----------memory---------- ---swap--- -----io----- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 0 4724956 355452 726532 0 0 54 484 3 3 1 0 99 0 0 2 0 0 47

    dstatの万能感がハンパない - (ひ)メモ
    hidehish
    hidehish 2012/03/05
    見てる:
  • LinuxのLVS(IPVS)でMySQLをロードバランスするときはtimeoutに注意 - (ひ)メモ

    構成 [appサーバ] -> [lvs] -> [MySQL]群 DRでMySQLのスレーブ群にロードバランス appサーバはDBコネクションのプーリング、永続化をしている 問題の現象 DBサーバ上ではmysqldへのコネクションが存在するのに、appサーバ上ではコネクションが存在しない。(netstat調べ) →無用なコネクションが残留するせいで、MySQLのmax_connectionsに達してしまう。 原因 MySQLの世界の無通信時のコネクションのタイムアウトはデフォルトで 28800秒 (8時間)。一方、IPVSの世界の無通信時のタイムアウトはESTABLISHEDなコネクションで900秒 (15分)。 # ipvsadm -Ln --timeout Timeout (tcp tcpfin udp): 900 120 300なので、DBコネクションの永続化等でコネクションを張りっ

    LinuxのLVS(IPVS)でMySQLをロードバランスするときはtimeoutに注意 - (ひ)メモ
    hidehish
    hidehish 2011/06/12
    見てる:
  • Teeny Nagios - Nagiosのスマートフォンビューを作ったよー - (ひ)メモ

    自分の場合、iPhoneでNagiosを見たい場合というのは、 アラートが飛んできたので状況を確認したい →ざっと状況をつかみたいので、一覧性の高いビューがいい 即時対応は必要なさそうなので、とりあえずアラートを止めたい →ホスト単位、またはサービス単位で「Schedule downtime」したい ぐらいなので、それに特化したスマートフォンビューを作りました。 プロジェクトホーム http://hirose31.github.com/teeny-nagios/ レポジトリ https://github.com/hirose31/teeny-nagios Mobile Safariで通常のNagiosのページを見てもいいんですが、操作性、一覧性がイマイチだなーと思ったのが作った動機です。 ホーム。ざっくり状況を確認するのに。 ホストの一覧。黄色はwarningが、赤色はcriticalが出

    Teeny Nagios - Nagiosのスマートフォンビューを作ったよー - (ひ)メモ
    hidehish
    hidehish 2011/06/11
    見てる:
  • nginxで特定ホスト以外からのアクセスをメンテナンス画面にする方法 (2) - (ひ)メモ

    d:id:sfujiwara:20100812:1281587030 の revise。 Nginxのifは条件節に&&(and)が使えない、ifのネストもできないので、複数の条件で判別したい場合は変数を使うといいよって感じです。 server { ... #error_page 500 502 503 504 /static/50x.html; ### maintenance error_page 500 502 504 /static/50x.html; set $go_maintenance "true"; if ($uri ~ "^/error/") { set $go_maintenance "false"; } if ($remote_addr ~ "^192\.0\.2\.") { set $go_maintenance "false"; } if ($remote_addr

    nginxで特定ホスト以外からのアクセスをメンテナンス画面にする方法 (2) - (ひ)メモ
    hidehish
    hidehish 2011/06/02
    見てる:
  • memcached(プロトコル)のデータレプリケーション - (ひ)メモ

    国内だけでなく国外(なぜか主に中国語)でもまだrepcachedについて言及してるのをちらほら見かけるのですが、repcachedはmemcached 1.2.8ベースですし(memcached 1.4.5に対応してる人もいるようですが)いまならKyoto Tycoon使えばいいんじゃないかと思うのです。 Kyoto Tycoonなら: memcachedプロトコルプラグインを使えば、Kyoto Tycoonがそのままmemcachedの代替になる(memcachedプロトコルを喋るクライアントコードはそのままでよい) Tokyo Tyrantと違ってexpireもOK memcachedの代替が目的なら、速いオンメモリDB(StashDBとか)でOK 非同期レプリケーションもできる ホットスタンバイ側のサーバリソースが無駄に思うなら、keyに応じてmodとかでリクエストするサーバを2台の

    memcached(プロトコル)のデータレプリケーション - (ひ)メモ
    hidehish
    hidehish 2011/06/02
    見てる:
  • Kyoto Tycoonの運用TIPSなどなど - (ひ)メモ

    チャオ!みんな、Kyoto Tycoonライフをエンジョイしてるかい!? 今日はKTライフを満喫してるミーからの運用TIPSアンドソーオンをお届けするYO! kchashmgrとktremotemgrコマンドの補完 人間の脳活動のピークは22歳の今日このごろ、みなさんいかがおすごし? もうね、ミーは全然コマンドオプションとか覚えられないからシェル(bash)で補完しまくってるYO! kchashmgrとktremotemgrだけだしオプション網羅してないし補完ルールもアレだけどオープン&シェアなマインドとガッツで気になる人はfork & push! Nagiosで死活監視 ナギオス!みんな使ってるよね? ミーはcheck_httpでKTのHTTP RPCのechoにアクセスしてデッドオアアライブの監視してる! define command { command_name check_kyot

    Kyoto Tycoonの運用TIPSなどなど - (ひ)メモ
    hidehish
    hidehish 2011/06/02
    見てる:
  • rsync -Rで中間ディレクトリがシンボリックリンクな場合の注意点 - (ひ)メモ

    複数サーバを管理する場合、管理コストの増加やオペレーションミスを避けるための施策として、「すべてのサーバの内容を同一に保つ」という管理方法があります。 サーバの内容を同一に保つには、小中規模ならrsyncと、パス指定の簡便化とミスを防ぐために-a -R (--relative)オプションを使うのがベストでしょう。 ただ、-Rを指定しているときに、同期コピー対象のパスにディレクトリへのシンボリックを含んでいる場合には注意が必要です。そこで今回はrsync 2.6とrsync 3のそれぞれについて、ふたつのケースについて検証してみたいと思います。 ケース1: 実ディレクトリが同じ 物理的なディレクトリ構造をそのまま見せるのではなく、論理的な意味あるディレクトリ名/構造として見せたい場合には、ディレクトリのシンボリックリンクを使うとよいです。 例えば: RAID等のストレージにあるディレクトリの

    rsync -Rで中間ディレクトリがシンボリックリンクな場合の注意点 - (ひ)メモ
    hidehish
    hidehish 2011/04/28
    見てる:
  • synergyで、キーボードだけでスクリーンを移動する - (ひ)メモ

    複数の PC を手元で操作 「Synergy」を使おう! -Win&Mac 混合対応版- - livedoor ディレクターブログ を読んで思い出したので。 通常、スクリーン間の移動はマウスポインタの移動によって行うのですが、switchToScreen(SCREEN_NAME) を使えばキーボード操作でもスクリーンの移動ができます。 「fvwm2で、ポインタ移動はマウスじゃなくてキーボード(Shift+Meta+矢印とか)で操作してます(キリッ」とかいう生粋のキーボーダーでなくても、多面スクリーンだとカレントスクリーンを見失うことがよくあると思うので、「このキーを押せばこのマシンがカレントスクリーンになる」ってのは便利なんじゃないかと思います。 自分は Linux にキーボード/マウスを繋いでいるのですが、~/.synergy.conf はこんな感じで。 カレントスクリーンがどこであって

    synergyで、キーボードだけでスクリーンを移動する - (ひ)メモ
    hidehish
    hidehish 2011/02/02
    見てる:
  • フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ

    目的 フロントがHTTPリクエストを受けて、バックエンドのアプリケーションサーバにreverse proxyするような構成において、指定秒数以内に何かしらのレスポンスを返したい。 200が返せない場合は、処理を打ち切って500を返したい。 背景 フロントでApacheやNginxをreverse proxyとして使っている場合、バックエンドが無応答になってしまうと、クライアントにレスポンスが返るのはデフォルトで数十〜数百秒後(ApacheのTimeoutのデフォルトは300秒、Nginxのproxy_read_timeoutのデフォルトは60秒)になってしまいます。 通常のWebサービスではこのオーダーのタイムアウトでもいいのかもしれませんが、数秒以内に(エラーでもいいので)レスポンスを返すことが求められる環境も存在します。(最近、特に多いのではないでしょうか:P) もちろんバックエンドが

    フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ
    hidehish
    hidehish 2010/06/24
  • ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ

    ぼくは長年こういう方法で管理してますよ、というお話です。Linuxです。 ディレクトリレイアウト概観 たとえば、asoとbmdという名前のソフトウエアをインストールしている状態はこんな感じ: /usr/local/ ┬ app/ ┬ aso → aso-1.3 │ ├ aso-1.2/ ┬ bin/ ┬ armored │ │ │ └ scrum │ │ ├ sbin/ ─ syd │ │ └ share/ ─ man/ │ ├ aso-1.3/ ┬ bin/ ┬ armored │ │ │ └ scrum │ │ ├ sbin/ ─ syd │ │ └ share/ ─ man/ │ ├ bmd → bmd-2.0 │ └ bmd-2.0/ ┬ bin/ ─ tri │ ├ include/ ─ angle.h │ └ lib/libsnk.so.2.0.0 ├ bin/ ┬ armor

    ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ
    hidehish
    hidehish 2009/12/20
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
    hidehish
    hidehish 2009/11/14
  • gitのブランチ名をプロンプトに表示すると結構便利 - (ひ)メモ

    gitの配布物に含まれる contrib/completion/git-completion.bash を . すると、gitのサブコマンドやそれに応じたオプション、加えて~/.gitconfigで自分用にaliasしたサブコマンドまで補完してくれるようになり、小学生もにっこりです。 同じく git-completion.bash の中で定義されてる関数 __git_ps1 を使ってシェルプロンプト($PS1)を設定すると、 #... if [ -r "$HOME/.bash_completion.d/git" ]; then # = git-completion.bash # boldにするエスケープシーケンスは省略してます PS1="${PS1}[\$(__git_ps1 \"%s)\")\w]\\$ " else PS1="${PS1}[\w]\\$ " fi #...こんなふうにg

    hidehish
    hidehish 2009/05/24
  • コードポケット - アプリケーションをささっと作るコツ - (ひ)メモ

    誰に教えられたのでもないのですが、ぼくは冬眠前のリスのようにコード片を溜め込んでいます。 コード片とは、ライブラリにするほどまとまった大きさではない、数行〜十数行のコードのことで、溜め込んだコード片は、アプリケーションやツールを作るときに使っています。 例えば「Perlでメール送るのどう書くんだっけかな」とか「Pythonでファイル開いて全部読むのどう書くんだっけかな」とかというときに、溜め込んだ中からコード片をさっと取り出してコピペした後、なじむようにちょっと修正して使っています。 コードポケット コードを溜め込んでいるディレクトリをぼくは「コードポケット」と名付けていて、コード片を取り出すことを「ポケットからコードを取り出す」と呼んでいます。先日、知り合いが似たようなことを実践していて、その人は「コードスケッチ」と呼んでました。いい名前ですね。 ぼくの場合、コードポケットは ~/lan

    コードポケット - アプリケーションをささっと作るコツ - (ひ)メモ
  • 負荷をかけるツール - HTTP編 - (ひ)メモ

    ApacheCon US 2007の、『Apache Performance Tuning / Part One: Scaling Up』, Sander Temme (PDF) より。 ab おなじみ、Apache付属のあいつ http_load http://www.acme.com/software/http_load/ flood http://httpd.apache.org/test/flood/ JMeter http://jakarta.apache.org/jmeter/ 最近のバージョンは使いやすくなったらしい あと、ほかには httperf http://www.hpl.hp.com/research/linux/httperf/ とか。

    負荷をかけるツール - HTTP編 - (ひ)メモ
  • 離れたところからGrowlで通知 - UDPのパケットをSSHでポートフォワードする方法 - (ひ)メモ

    Growlに、LANの外のマシンから通知リクエストを投げたい。 Growlは、リモートから通知リクエストを受ける機能がある。 UDPの9887番ポートを使用 が、Growlが動いているマシンと通知リクエストを行うマシンは、それぞれ異なるLANに属していて、直接通信できない。 そんなときお手軽便利なのは、SSHのポートフォワード。これでずるっとトンネルを開通すればいい。 が、TCPのパケットしかポートフォワードできない。 stoneにはUDPとTCPとを相互変換する機能があるらしい。 仙石浩明の日記: stone に UDP ⇔ TCP 相互変換機能を実装 少なくともstone-2.3dではこの機能が実装されている。(stoneのサイトからダウンロード可能) というわけで、 発信側のマシン Net::Growlとかで発信 stoneでUDPをTCP化 SSHのポートフォワード 受信側のマシン

    離れたところからGrowlで通知 - UDPのパケットをSSHでポートフォワードする方法 - (ひ)メモ
  • 1