タグ

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

  • Nginxでproxy_passにホスト名を書いた時の名前解決のタイミング - (ひ)メモ

    Nginx 1.4.2で試しました。 ネームサーバーは、ローカルのunboundをlocal-zone, local-dataを使って簡易コンテンツサーバーにして試しました。 local-zone: "oreno." static local-data: "api.oreno. 30 IN A 192.0.2.11" # local-data: "api.oreno. 30 IN A 192.0.2.12" proxy_passにホスト名を書くと→名前解決は一度だけ このように Nginx の設定を書いた場合、 location /api { proxy_pass http://api.oreno:9999; } 「api.oreno」の名前解決は、nginxの起動時に行われます 名前解決できない場合は、nginxは起動しません 名前解決できた場合は、ずっとそのIPアドレスにreverse

    Nginxでproxy_passにホスト名を書いた時の名前解決のタイミング - (ひ)メモ
    tarchan
    tarchan 2013/11/13
    >名前解決は、nginxの起動時に行われます
  • プロセス間の期限付き排他ロック - (ひ)メモ

    追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメント欄でのやりとりの通り、穴がある(クリティカルセクションに複数プロセスが突入する可能性がある)のでちょっと出直してきます!! やりたいこと プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい 例えば、フェイルオーバーを実行するスクリプトは、何度も実行できるとフェイルオーバー/バックを繰り返してフラップするので、一度フェイルオーバーしたら一定時間は実行できないようにしたい 実装 シンボリックリンクを使って排他制御する 期限切れは、シンボ

    プロセス間の期限付き排他ロック - (ひ)メモ
  • フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ

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

    フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ
  • 実録MySQLのチューニング 春の陣 - (ひ)メモ

    long_query_time = 0.5 とか閾値を小さめにしてもスロークエリが出なくなったけど、CPU(user)使用率高いとか、なんか足引っ張ってるクエリがあるっぽいなぁという場合のお話です。 「実録」の通り、現在絶賛進行中ですので、逐次動きがあったら書き足していくつもりです。 「あれを見た方がいい」とか「これをあーした方がいい」とかあれば、コメントかTwitterで @hirose31 までお知らせいただけるとうれしいです! 使用しているのは、MySQL 5.1.41 です。 前提: サーバーリソースのグラフ GangliaでもCactiでもMuninでもなんでもいいんですが、サーバリソースのグラフ化は必須です。チューニングした際の効果測定や、そろそろリソースい潰してやばいとかの予測にも使えます。 自分はDBサーバの場合このあたりをグラフ化してます。 CPU使用率 (user,

    実録MySQLのチューニング 春の陣 - (ひ)メモ
  • kumofsの死活監視はこんな感じでNagiosでやってます - (ひ)メモ

    分散Key-Valueストア「kumofs」を公開しました! - 古橋貞之の日記 \(^o^)/ kumofsは、弊社のフォトストレージサービス Ficia で現在大絶賛モリモリ稼働中なんですが、その死活監視は自家製の Nagios プラグインで行っています。 というわけで、kumofsをサービスで使いたい人の一助になればと思い、ぼくが実際に行っている kumofs の監視について紹介したいと思います。 サーバノードとマネージャノード サーバノードとマネージャノードの監視には、それぞれのノードに対してステータスを問い合わせるコマンドを発行して、その応答で死活を判断するスクリプトを書いて使っています。 kumofs公開記念ということでgithubにpushっておきました。 http://github.com/etolabo/nagios-check_kumofs 問い合わせの処理は、管理用コ

    kumofsの死活監視はこんな感じでNagiosでやってます - (ひ)メモ
  • 実録、ほぼ無停止な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のフェイルオーバ (動画もあるよ) - (ひ)メモ
  • YAPC::Asia 2009で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきました - (ひ)メモ

    YAPC::Asia 2009 第一日目で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきましたのでその資料を公開します。 『Ficia』インフラとPerlにまつわるエトセトラView more documents from Masaaki HIROSE. 他の方のスライドも http://www.slideshare.net/event/yapcasia-2009 から参照できるようでっす。 以下、今回のトークの内容で参考にさせてもらったURLのリストです。 Linux のプロセスが Copy on Write で共有しているメモリのサイズを調べる - naoyaのはてなダイアリー http://d.hatena.ne.jp/naoya/20080212/1202830671 mod_perl における C10K Problem, 竹迫 良範 http

    YAPC::Asia 2009で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきました - (ひ)メモ
  • NagiosからのアラートをIRCにも通知してみた - (ひ)メモ

    Nagiosのアラート通知をメールだけじゃなくてIRCにも通知したいなぁと思ったのでやってみました。 IRC bot 今までだと Plagger 付属の plagger-ircbot を走らせて、適宜 POE の IKC で通知命令を送っていたんですが、ちょっと CPAN を探してみたら、 Bot::BasicBot::Pluggable というのがありました。 karmaもつけられていいなーと思ってこれを使おうと思ったんですが、POE を使っているものの IKC で連携する機能がありません。 そこでこのモジュールを継承して、Bot::IKCBot::Pluggable というのを作りました。 http://github.com/hirose31/p5-bot-ikcbot-pluggable/tree/master Bot::IKCBot::Pluggable BasicBotとの違いは

    NagiosからのアラートをIRCにも通知してみた - (ひ)メモ
  • 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

  • DNS NOTIFYを受け取ってくれる無料のセカンダリDNSサービスと、NOTIFYを送るスクリプト - (ひ)メモ

    個人所有のドメインのDNSサーバは、マスタは自宅サーバ(djbdns)でセカンダリはXNameの無料のセカンダリネームサーバのサービスを使っていました。 それなりに動いてくれていたXNameですが、不満な点が1つありました。それは、マスタを変更したときのゾーン情報の伝搬に時間がかかる点です。XNameは数台のセカンダリネームサーバを提供していて、伝搬速度はサーバによってもタイミングによってもばらばらですが、早いときは数十分、遅いときは5,6時間たってようやく更新されることもありました。 XNameもDNS NOTIFY受けてくれたらいいのになーなんて思いつつも、個人所有ドメインでそんなシビアなサービスもしてないので、ま、いっかーと思っていたんですが、先日、EveryDNS.netがダウンして巷でわーぎゃーわーぎゃーな騒ぎになったときに、ちょろっと調べてみたらいくつかDNS NOTIFYを受

    DNS NOTIFYを受け取ってくれる無料のセカンダリDNSサービスと、NOTIFYを送るスクリプト - (ひ)メモ
  • コードポケット - アプリケーションをささっと作るコツ - (ひ)メモ

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

    コードポケット - アプリケーションをささっと作るコツ - (ひ)メモ
  • gitの中央repos運用時のパーミッションの調整 - (ひ)メモ

    gitで、bareな中央reposにpushしたい。 使うプロトコルは: http:// は遅いのでいや git:// はgit-daemon的に認証がちょっとやわそうなのでいまいち いい方法があったら教えてください>< pushする人らはsshアカウントがあるので、git+ssh:// でいいや 複数ユーザがpushするので、パーミッションに気を使わなければならない: 共通のグループ(例:sandbox)に属させて、chown -R root:sandbox sandbox.git; chmod -R g+w sandbox; find sandbox -type d|xargs chmod 2775 すればグループの統一はOK 問題は sandbox.git/objects/ 下とかに新規で作られるディレクトリのパーミッション。 ~/.bashrcでumask 002すればいいんだけど

    gitの中央repos運用時のパーミッションの調整 - (ひ)メモ
  • nanoa.cgiというのをurlに入れたくない → RewriteRuleでやってみる - (ひ)メモ

    RewriteRule ^(.*)$ /~danjou/nanoa/nanoa.cgi/$1 [PT] Soffritto::Journal 自分はこんな感じでやってます。 RewriteRule ^/(pasteme)/([[:alnum:]-]+) /nanoa/nanoa.cgi/$1/?id=$2 [PT] RewriteRule ^/(pasteme|qrcode)/?$ /nanoa/nanoa.cgi/$1/ [PT] /pasteme/ を /nanoa/nanoa.cgi/pasteme/ にマップ /pasteme/PASTE_ID を /nanoa/nanoa.cgi/pasteme/?id=PASTE_ID にマップ /qrcode/ を /nanoa/nanoa.cgi/qrcode/ にマップ あと、uri_forはオーバーライドってます。 sub rewrit

    nanoa.cgiというのをurlに入れたくない → RewriteRuleでやってみる - (ひ)メモ
  • あるあるおハマリ大事典 - Macでシリアル接続したいの - (ひ)メモ

    Macからjermでシリアル接続するときには、SUNTACのVS-60Rを使ってました。TigerやLeopardで、ドライバ要らずで挿せばすぐ使える (/dev/cu.usbmodemUSB-COM) のがポイントでした。 今までは Linux が動いている PC のシリアルポートに繋ぐために使ってたんですが、先日某スイッチングハブのコンソールに繋ぐのに使ってみるとどうも反応がない。 …ってのをtwitterでつぶやいてたら id:vm_converter さんにいろいろ教えていただきました。 まず、VS-60Rがスイッチで使えなかった原因はこうです。 スイッチのシリアルコンソールの仕様で、接続するアプリケーションでハードウエアのフロー制御をオフにする必要がありました。それに従ってjermやminicomの設定ではオフにしていたんですがそれでも繋がらない。おかしーなーと思ったら。。。 S

    あるあるおハマリ大事典 - Macでシリアル接続したいの - (ひ)メモ
  • Eye-Fiの記憶領域が2GBのままの理由 - (ひ)メモ

    個人的にはEye-Fiは手放せないアイテムになってるんですが、それでも 2GBのSDカードに比べると高すぎる → フツーの人は買わないだろうなぁ せめて大容量のモデルを出せばいいのに と常々思っていました。 が、しかし、これはEye-Fiをストレージとして見ているがゆえの意見であり、Eye-Fiの真価はそこにはないわけで、おかど違いな意見であると今更ながら最近やっと気がついたので、そのことについて書いてみます。 ちょうどEye-Fi創業者Yuval Korenのインタビューが公開され、その中でもインタビュアーが同じような質問をしています。 --日では、安いところを探せば2GバイトのSDカードは数百円で売られています。それに対して1万円近くするEye-Fiですが、どのようにEye-Fiのよさをアピールしていきますか? 写真を撮るまでの行為としては、いままでのSDカードもわれわれのSD型カー

    Eye-Fiの記憶領域が2GBのままの理由 - (ひ)メモ
    tarchan
    tarchan 2009/01/21
    互換性が最優先でしょう。
  • 1