タグ

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

  • Linuxでiptablesを使ってDSRする - (ひ)メモ

    1. リアルサーバ側にもグローバルIPを振る必要がある(IPが少ないところは結構きついかも). リアルサーバでは、VIPをループバックインターフェースにIP aliasすればいいので、リアルサーバの数だけグローバルIPアドレスを消費するってことはないような。(誤読してるかも ただ、この方式だと、VIPの数だけいちいちリアルサーバにIP aliasして回らないといけないので、わりと大規模(VIPがたくさんある or リアルサーバがたくさんある)だとめんどくさいことこの上ない。 で、リアルサーバでこんなiptablesのルールを設定すれば、IP aliasしないでDSRできそうというのが主題。 VIP=10.1.1.0/24 iptables -t nat -A PREROUTING -d $VIP -j REDIRECT多分、これでいけると思うんですけどちと自信なし。検証 and 詳しい説明

    Linuxでiptablesを使ってDSRする - (ひ)メモ
  • ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したりするPerlモジュールを書きました。 https://metacpan.org/release/Sys-PageCache https://github.com/hirose31/Sys-PageCache Linux なら動くはずですが、動かなかったら教えてください。あと一応、FreeBSD 8.3以上でも動くと思います。 既存の実装にGooglelinux-ftoolsやエヌハヤシ氏のpagecache-toolがありますが、これのPerlモジュール実装(XS)になります。 https://code.google.com/p/linux-ftools/ https://github.com/nhayashi/pagecache-tool たまにfreeコマンドでみるとbuffers/cacheがっててswapしてる

    ファイル指定で、ページキャッシュにのっているか確認したり追い出したり - (ひ)メモ
  • プロセスが起動した日時を知りたい - (ひ)メモ

    プロセスの起動日時は ps の START カラムでわかりますが、24時間経過すると表示上時刻がわかりません。 $ ps auxwwwwww | grep -e PID -e redis-server USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND hirose31 775 0.1 0.0 36328 2008 ? Sl Sep26 17:47 /home/hirose31/repos/redis/redis/src/redis-server /usr/oreno/etc/redis/oreno.confでは、日時(日付+時刻)を知るにはどうしたらよいでしょうか? ps -o lstart $ ps axwwwwwwwww -o user,pid,lstart,cmd | grep -e PID -e redis-server

    プロセスが起動した日時を知りたい - (ひ)メモ
  • ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ

    ぼくは長年こういう方法で管理してますよ、というお話です。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

    ソースから自前ビルドしたソフトウエアの効率的な管理方法 - (ひ)メモ
  • HTML5のapplication cacheがつかえない件 - (ひ)メモ

    ちょっと思い違いをしていたのでメモっておきます。 HTML5にはオフラインでも参照できるapplication cacheという機構があります。 HTML5 Rocks - A Beginner's Guide to Using the Application Cache 6.6 Offline Web applications ― HTML Standard 「ローカルキャッシュなんで速いし!サーバーの負荷も減るし!!」と思ってちょっと試してみたんですが、これ、動的なページが基Webサービスには役に立ちません。 application cacheは、HTMLに <!DOCTYPE html> <html manifest="/cache.manifest"> <head> ...という風にキャッシュの指示ファイル cache.manifest を指定して、そこでキャッシュするとかしな

    HTML5のapplication cacheがつかえない件 - (ひ)メモ
  • 前月を知る - sh編 - (ひ)メモ

    shっていうかdateコマンドですけど。 安直に「1 month ago」でいいじゃん!と思った人は負けです(ぼくもですけど><)。 これはいいんだけど、 $ date '+%Y-%m-%d %T.%N'; date '+%Y-%m-%d %T.%N' -d '1 month ago' 2010-09-16 18:05:00.342008278 2010-08-16 18:05:00.344293593 このケースだと前月になってない # date 053100002010 >/dev/null; date '+%Y-%m-%d %T.%N'; date '+%Y-%m-%d %T.%N' -d '1 month ago' 2010-05-31 00:00:00.000000000 2010-05-01 00:00:00.004000016set $(date '+%Y %m') y=$1

    前月を知る - sh編 - (ひ)メモ
  • フロント/バックの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のチューニング 春の陣 - (ひ)メモ
  • そろそろFiciaについてひとこと言っておくか - (ひ)メモ

    えとらぼの『Ficia (フィシア)』、追加容量を大幅値下げ 〜315円(税込)で 100GB まで! 動画も写真もさくっとアップ〜 えとらぼ、写真ストレージサービス「Ficia」の追加容量を値下げ:ニュース - CNET Japan ぼくも携わっているフォトストレージサービスFiciaの利用料金が大幅に値下げになりました! これまで 2GBまで無料 2GB〜12GBまで315円/月 以後10GBごとに315円/月が加算 ↓ これから 2GBまで無料 2GB〜100GBまで315円/月 以後100GBごとに315円/月が加算 これまでの料金は、正直に言って高かったと思うのですが、今回の改訂でだいぶお手頃な価格(容量)になったのではないかと思います。 値下げに加え、機能的にも骨子のコンセプトの部分がだいぶ整ってきており、いい機会だと思うので、今まで我慢してきたFiciaに対する思いの丈をここ

  • kumofsの死活監視はこんな感じでNagiosでやってます - (ひ)メモ

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

    kumofsの死活監視はこんな感じでNagiosでやってます - (ひ)メモ
  • 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にまつわるエトセトラ」というタイトルでしゃべってきました - (ひ)メモ
  • Emacs 23.1よもやま - (ひ)メモ

    3月ぐらいの23.0.51から23.1への移行。 sense-region が動かなくなった k1Lowさんが矩形選択(のハイライトのfaceがちゃんと動くように)できるようにしてくれました!\(^o^)/ http://gist.github.com/171931 (sense-region.elでいじるところ) http://gist.github.com/171928 (設定例) regionのfaceがよく未定義になる いちいち (custom-set-faces '(region ((t (:background "SkyBlue")))))とかしてます。。。 (kbd "M-a") が wrong-type-argument characterp ... と怒られる 関数characterpが23.1から使えるようになったんだけど、wnn7egg.elにも同名の関数が定義されて

    Emacs 23.1よもやま - (ひ)メモ
  • InnoDBテーブルでunique keyがある場合、それをprimary keyにするべきかどうか - (ひ)メモ

    InnoDBなテーブルのお話です。 とあるテーブルで、いくつかあるカラムのうち、ただひとつのカラムがunique keyになり得るものだとします。 こういうときは、そのunique keyは無条件でprimary keyにしたほうがイイ!と思ってたんですが、調べてみると必ずしもそうでないようなので、今のところのモヤモヤをまとめてみます。 教えて! 偉い人!! 予備知識 High Performance MySQL 作者: Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D. Zawodny,Arjen Lentz出版社/メーカー: Oreilly & Associates Inc発売日: 2008/06/01メディア: ペーパーバック購入: 4人 クリック: 33回この商品を含むブログ (8件) を見るからの超抜粋。しかしこのは神

    InnoDBテーブルでunique keyがある場合、それをprimary keyにするべきかどうか - (ひ)メモ
  • Eye-Fi用のアップローダブリッジ - Doumeki (百目鬼) - を作りました - (ひ)メモ

    Eye-Fi用のアップローダブリッジを作りました。名前は Doumeki (百目鬼) といいます。 http://github.com/hirose31/doumeki/tree/master Doumeki を使うと、Eye-Fi からアップロードされた写真を複数のフォトストレージにアップロードすることができます。 図にするとこんな感じです。 動機 いまのところ、 Eye-Fi 単体でできることはこうなんですが: リモートのフォトストレージへのアップロード (ただし一か所だけ) Eye-Fi Managerが動いているパソコンへのアップロード Wi-FiのAd-Hoc接続した相手のパソコンへのアップロード (今のところ日未発売のProのみ) 自分の場合、 複数のフォトストレージに同時にアップロードしたい でも、フォトストレージは一か所しか選べない LAN 内のファイルサーバにアップロー

    Eye-Fi用のアップローダブリッジ - Doumeki (百目鬼) - を作りました - (ひ)メモ
  • mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ

    追記: rehash(auto-rehashも含む)すると、SQL文の補完(seleでタブ打鍵とか)が効かなくなるよと、はす向かいの人に教えてもらいました。 個人的には、SQLは「mysql> help select」とかでオンラインヘルプがびょっと出るので、スキーマの補完ができるんならSQLの補完はとりあえずあきらめてもいいかなと思っています。 常々、テーブル名とか補完できるといいなーと思っていたので、ボロっときいてみたら教えてもらいました。あざーーーーっす! id:mikihoshi++ id:tokuhirom++ id:precuredaisuki++ おかげで効率が300%上がりました。(Benchmark::Stopwatchで計測) http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option

    mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法 - (ひ)メモ
  • 慣習を気にせずsyslog-ngの設定をしてみた - (ひ)メモ

    たいていのsyslogのデフォルトの設定だと、 同じログが結構な量、複数のファイルに記録されて(IO負荷的、ディスクサイズ的に)無駄だなぁ 日付のフォーマットが機械処理しづらいなぁ ローテートがめんどいなぁ と思ってたので、今つくってる環境では慣習を気にせずに syslog-ng (v2.0.9) の設定をしてみたのでそのメモです。 不要なログは記録しない options { ... mark_freq(0); stats_freq(0); ... } 日付の形式を変える options { ... ts_format(iso); ... }これで、こんなの Dec 19 16:44:20 HOST ...から、こんなの 2008-12-19T14:07:52+09:00 HOST ...に変わります。 facilityごとにわける facilityごとのfilterを作る。 destic

    慣習を気にせずsyslog-ngの設定をしてみた - (ひ)メモ
  • 1