タグ

ブックマーク / dsas.blog.klab.org (35)

  • DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

    MySQLのチューニングにおいて非常に重要となるメモリ(バッファ)関連のパラメータについて、 チューニングのポイント DSASのとあるDBサーバ(実メモリ4GB)の実際の設定値 をまとめてみます。 また、必要メモリの総量の計算や限界値を越えてないかチェックしてくれるスクリプトも紹介します。 是非、参考にしてみてください! まず最初に注意点を。 バッファには2つのタイプがあります。 グローバルバッファ スレッドバッファ グローバルバッファはmysqld全体でそのバッファが1つだけ確保されるもので、 これに対し、 スレッドバッファはスレッド(コネクション)ごとに確保されるものです。 チューニングの際にはグローバル/スレッドの違いを意識するようにしましょう。 なぜなら、スレッドバッファに多くのメモリを割り当てると、コネクションが増えたとたんにアッという間にメモリ不足になってしまうからです。 in

    DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!
  • DSAS開発者の部屋:特集記事『Linuxロードバランサ構築・運用ノウハウ』を公開します

    Linuxロードバランサ構築・運用ノウハウ』を公開します! これはWEB+DB PRESS Vol.37の特集記事としてDSASチームが執筆したもので、技術評論社様の許可を得て今回公開するはこびとなりました。 一口でいうと、「Linux+IPVS+keepalivedを使って、冗長構成(Active/Backup)のロードバランサを作るまで」の解説記事で、 サーバ負荷分散一般についてのはなし Linuxでロードバランサを作ってみる ロードバランサを冗長化 といった構成になっています。 みなさんがLinuxロードバランサを導入・構築・運用する際の一助になれば、DSASチームとしてもうれしい限りですので、是非、ご覧になってください! 第1章 サーバ負荷分散概論 特集のはじめに なぜサーバ負荷分散をするのか? サーバ負荷分散の実現方法 ロードバランサのいる構成 ロードバランサはなにを元に分散す

    DSAS開発者の部屋:特集記事『Linuxロードバランサ構築・運用ノウハウ』を公開します
  • DSAS開発者の部屋:こんなに簡単! Linuxでロードバランサ (1)

    DSASのロードバランサは高価なアプライアンス製品ではなく、LinuxのLVS (Linux Virtual Server)を利用しています。 安価、というか、ハードウエア以外は金銭的コストがゼロなので、一般のクライアントからのアクセスを受ける外部ロードバランサのほかに、内部サービス用のロードバランサも配置しています。それぞれactive, backupで2台ずつあるので合計で4台もロードバランサがあることになります。(こんな構成を製品を使って組んだら数千万円すっとびますね) また、ネットワークブートでディスクレスな構成にしているので、ハードディスが壊れてロードバランサがダウンした、なんてこともありません。 ですので「ロードバランサは高くてなかなか導入できない」という話を耳にする度にLVSをお勧めしているのですが、どうも、 なんか難しそう ちゃんと動くか不安 性能が出ないんじゃないか 等々

    DSAS開発者の部屋:こんなに簡単! Linuxでロードバランサ (1)
  • DSAS開発者の部屋:Windows用フリーウェア「HttpLogger」を公開します

    2013-12-24: お知らせ ソフトウェアの所作がプログラム開発時の意図とは異なるケースをこの間に何件かご報告頂いています。ソフトウェアは公開以来ご好評を頂いており、最新の環境へ追従すべく可能な限りの保守を継続してきましたが、現時点では新たに調査・改訂を行う目処が立っておりません。そのため、大変残念ですがソフトウェアの公開を一時的に停止させて頂きます。ご利用者の皆様におかれましては何卒宜しくご理解・ご了承下さいますようお願い致します。 2012-11-15: お知らせ 以下の問題に対応したテスト版パッチモジュールを公開します。 HttpLogger を有効にした状態で Windows 8 (32bit / 64bit) 初出の Internet Explorer 10 を起動するとエラーが発生する。 この版には先日パッチを公開した「Firefox 12 以降での動作不良に関する修

    DSAS開発者の部屋:Windows用フリーウェア「HttpLogger」を公開します
  • DSAS開発者の部屋:パソコン1台ではじめるロードバランサ体験

    昨日書いたの通り,記事を寄稿したWEB+DB PRESS Vol.37が,今日発売になりました.それを記念して(?),記事の内容が簡単に実験できるパッケージを公開します. これは,VMWareを使って,だれでも直ぐにロードバランサの実験を始められるパッケージになっています.何台もマシンを集めたり,Linux をインストールする必要は一切ありません.無償配布されているVMWare Playerがあれば,いつでもどこでも実験ができます. もちろん,このブログで去年の夏に公開した4つのエントリ こんなに簡単! Linuxでロードバランサ (1) こんなに簡単! Linuxでロードバランサ (2) こんなに簡単! Linuxでロードバランサ (3) 高トラフィックに対応できるLinuxロードバランサを目指して〜LVSをNATからDSRへ の実験もできます. ダウンロードはこちらからどうぞ(75MB

    DSAS開発者の部屋:パソコン1台ではじめるロードバランサ体験
    webmarksjp
    webmarksjp 2008/07/14
    ロードバランサ
  • DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法

    携帯電話各キャリアは、そのゲートウェイのIPアドレス帯域を公開しています。 DoCoMo au SoftBank WILLCOM 携帯ブラウザからのアクセスの場合、このIPアドレスがソースアドレスとなるので、アクセス制御や判別のために使っている方は多いのではないかと思います。 今回は、このIPアドレス帯の更新を効率的に確認する方法についてのお話です。 更新されたかどうかの確認だけならアンテナ系のWebサービスを使えばよいのですが、それだけだと、 どのIPアドレス帯が追加・削除されたのかわかりづらい。 IPアドレス帯のコピペが面倒くさい。 といった不満点があります。 そこでNet::CIDR::MobileJPというPerlのモジュールの出番です。(作者はモバイルファクトリという会社の方のようです) このモジュールには与えたIPアドレスが携帯かどうかを判別する機能があるのですが、次のようにす

    DSAS開発者の部屋:携帯ゲートウェイのIPアドレス帯更新を効率的に確認する方法
  • DSAS開発者の部屋:Windows用フリーウェア「HookDate」を公開します

    ■ はじめに プログラム開発にテストはつきもので、テストの際に特定の年月日でプログラムの動作を確認しなければならないことがよくあります。その場合に手っ取り早いのは「コンピュータのシステム日付を変更する」という方法ですが、Windows ではバックグラウンドで多くのプログラムが動いており、システムへの影響を予測できないためできればその方法は避けたいものです。 そこで、API フックを利用して、特定のプログラムに対してシステム日付とは異なる日付を伝えるツール「HookDate」を作ってみました。 せっかくなのでこのブログの読者の方にフリーウェアとして公開することにします。 (追記)2010年06月16日:バージョン 1.0.2.0 を公開しました ■ 最新版の改訂内容 ver 1.0.2.0 (2010/06) 64ビット Windows 環境への対応 exe ファイルへのショートカットファイ

    DSAS開発者の部屋:Windows用フリーウェア「HookDate」を公開します
  • DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜

    DSASはいかにして可用性を高めているか、ちょっと紹介したいと思います。 今回は概略ということでざざざっと説明します。個別の構成についてはまた回を改めて紹介したいと思います。 │ │ ┌┴┐ ┌┴┐ │ │ │ │ISPの上位ルータ └┬┘ └┬┘ │ │ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 責任分解点 │ │ ┌┴┐ ┌┴┐ │ ├─[ lb(active) ]─┤ │ │ ├─[ lb(backup) ]─┤ │ │ │ │ │ │L2├─[ Web ]─┤L2│ │SW├─[ Web ]─┤SW│ │ ├─[ Web ]─┤ │ │ │ │ │ │ ├─[ SMTP ]─┤ │ │ ├─[ SMTP ]─┤ │ │ │ │ │ │ ├─[ D B ]─┤ │ │ ├─[ D B ]─┤ │ │ │ │ │ │ ├─[ NFS ]─┤ │ │ ├─[ NFS ]─┤ │ │ │ │ │

    DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜
  • こんなに簡単! Linuxでロードバランサ (2) : DSAS開発者の部屋

    前回までで、 複数のWebサーバにロードバランスする というところまではできました。 これでリアルサーバへ負荷分散することができたのですが、冗長性がありませんでした。つまり、リアルサーバがダウンしても、ロードバランサはそれを認識できず、ダウンしているリアルサーバなのにパケットを送ってしまっていました。 このとき、クライアントから見ると、たまにサーバから応答がないように見えてしまいます。 というわけで今回は冗長化のお話、 リアルサーバのヘルスチェック を紹介したいと思います。 今回はkeepalivedを使います。 おおざっぱにいうと、keepalivedは2つの機能を提供します。 1. ヘルスチェック機構と連携したIPVSでのリアルサーバの管理 (--check) 前回ipvsadmコマンドを使って行ったような、バーチャルIPアドレス (VIP) やリアルサーバの管理を設定ファイルに記述す

    こんなに簡単! Linuxでロードバランサ (2) : DSAS開発者の部屋
  • PHP Extension を作ろう第1回 - まずは Hello World : DSAS開発者の部屋

    PHP で汎用的なライブラリを作成するフレームワークには大きく分けて2種類あるようです。 ひとつは PEAR のように PHP でクラスライブラリを作る方法、もう一つが今回紹介する PECL の様に PHP 自体を拡張するモジュールを書く方法です。 なぜ PHP Extension ? ひとつは、過去に C で書かれた既存のライブラリを流用したい場合に PHP Extension を作成すれば自然に PHP のコードに結合することが出来ます。また、PEAR の様に PHP で書いたコードと比べると若干高速になります。 それでは実際に helloworld という名前の PHP Extension を作成してみましょう。PHP のソースを展開すると php-x.x.x/ext というディレクトリがありますので $ cd php-x.x.x/ext $ ./ext_skel --extname

    PHP Extension を作ろう第1回 - まずは Hello World : DSAS開発者の部屋
  • DSAS開発者の部屋:サーバ管理者向け無精のすすめ 〜ちょっと便利なツールの紹介〜

    弊社のLinuxサーバ、ネットワークインフラのDSASの特徴のひとつに、100台近くある全てのサーバの内容が(数個の役割設定ファイルを除いて)同期されているという点があります。 これにより、 スケーラビリティ 予備機をサービス投入するだけで済むので、テレビCMなど突発的な高アクセス時にも迅速な対応が可能です。 増強が容易 サーバをラックマウントしたら適当なサーバからまるまんまコピーすればクラスタに参加可能です。まとまった台数の増強をする際に、いちいちCD-ROMからOSをインストールしていると日が暮れちゃいます。 役割の変更が容易 ディスクの内容が同じなので、もし、メールサーバが故障しても、適当なWebサーバの役割設定ファイルを変更して再起動するだけでメールサーバに早変わりできます。 メンテナンスが容易 ディスク上のファイルを更新した場合は、rsyncなどで全サーバに同期コピーすれば更新完

    DSAS開発者の部屋:サーバ管理者向け無精のすすめ 〜ちょっと便利なツールの紹介〜
  • 高トラフィックに対応できるLinuxロードバランサを目指して 〜 LVSをNATからDSRへ : DSAS開発者の部屋

    「こんなに簡単! Linuxでロードバランサ」のシリーズでは、 こんなに簡単! Linuxでロードバランサ (1) 〜 LVS + NATで負荷分散をしてみよう こんなに簡単! Linuxでロードバランサ (2) 〜 keepalivedでWebサーバのヘルスチェック こんなに簡単! Linuxでロードバランサ (3) 〜 VRRPでロードバランサを無停止にする こんな流れでNATによる負荷分散システムを構築してきました。 今回はこれを DSR(Direct Server Return) 方式に変更してみます。 「DSRとはなんぞや?」という方は、 ロードバランサの運用.DSRって知ってますか? L4スイッチはDSR構成にすべし こちらでわかりやすく説明されていますので参考にしてみてください。 一般的(?)に大規模システムを構築する場合は、「ネットワーク機器の整備はこの部門」、「サーバの調

    高トラフィックに対応できるLinuxロードバランサを目指して 〜 LVSをNATからDSRへ : DSAS開発者の部屋
  • 最近のmemcached界隈の賑わいについてのメモ : DSAS開発者の部屋

    repcachedの開発をしている関係で、昨年あたりからmemcached界隈のウォッチを強化しています。 昨日のエントリでもちょっと書いたんですが、なぜかここ最近、にわかにmemcached界隈が賑やかになってきている感があります。具体的には、memcached互換の実装がいろいろと現れたり、新しいクライアントライブラリが登場したりなど。 そんなわけで、最近わたしが気になっている、memcached関連のあのプロダクトやこのプロダクトをささっとまとめてみたいと思います。 クライアントライブラリ (C) libmemcached Brian Akerさんによる、C言語用のライブラリ。 既存のC言語用のライブラリである、libmemcacheとapr_memcacheに続く、第3のC言語用ライブラリです。 Consistent Hashingも実装しているようです。 いままでベンチマークプロ

    最近のmemcached界隈の賑わいについてのメモ : DSAS開発者の部屋
  • DSAS開発者の部屋:GREEさんの勉強会の資料を公開しました

    先日発表してきた、グリーさんの 第9回 オープンソーステクノロジー勉強会 『DSASのいろいろ』の発表資料と音声を公開しました。 発表資料 (PDF, 2,294 KB) 音声 (mp3, 32,151 KB) 発表はこんな内容です。 自己紹介 [0:22] (1) DSASの特徴の紹介 [6:34] 設計思想、全体構成など (2) DSASの構成要素の紹介 [17:22] ロードバランサ - LVS, keepalived [17:33] ネットワークブートの活用 [30:23] 故障に強いストレージサーバ - DRBD [37:15] NICの二重化 - bonding [44:29] シリアル接続 温故知新 [46:24] サーバリソースの見える化 - ganglia [49:11] 質疑応答 [58:00] 発表はかなり駆け足でしたが、 ロードバランサ (LVS, keepaliv

    DSAS開発者の部屋:GREEさんの勉強会の資料を公開しました
  • 「DSASのあれこれ」の資料を公開します : DSAS開発者の部屋

    そのときの発表資料と音声を公開します。 発表資料(PDF 1532KB) 音声(MP3 57350KB) ※音声はボリューム最大にしないと聞こえないかもしれません・・ごめんなさい ※資料はPDFに変換しているのでアニメーションがありません・・ごめんなさい 内容は DSASの設計思想 かたっぱしから冗長化 NICを冗長化してみよう L2SWを冗長化してみよう WEBサーバを冗長化してみよう ロードバランサも冗長化しよう メンテナンス性を重視したネットワーク構成 VLANの紹介 タグVLANの紹介 LinuxでもタグVLAN DSASの構成 フロントエンドサービス向けサーバ群の特徴 マスタサーバの特徴 Webサーバの特徴 こんな感じになっています。 おかげさまで多くの方にご参加いただき、盛況のうちに終了することができました。 懇親会もとても楽しかったです。 今回の反省点としては、、 「あれこれ

    「DSASのあれこれ」の資料を公開します : DSAS開発者の部屋
  • DSAS開発者の部屋:オープンソースを楽しむエンジニアの一日 〜 コードを楽しく読む工夫

    C言語で書かれたソースコードを読んでいるとき、関数ポインタから呼び出されている機能の実体がどこに書かれているのかを探すのに苦しんだ経験はありませんか? 私はあります、いっぱいあります!! そんなときはどうするかというと・・・ 手順1: まずは気分転換をする! 手順2: そして気合いを入れ直す! 手順3: さらに気力で読み砕く! 手順4: 最後に根性で発見する! これが、ごく一般的な作業手順(?)かと思います・・・(ごめんなさい嘘です) でもまあ、実際にここまで出来れば、そのプログラムの大まかな構成とか癖みたいなものはだいたい把握できているはずなので、他の関数ポインタについてもある程度当たりをつけて見つけだすことが出来るようにはなるかと思います。 ・・・・・が、、できれば気合いと根性を使わずに追えるなら追いたいのが人情ですよね。 straceやltraceを使えばシステムコールやライブラリコ

    DSAS開発者の部屋:オープンソースを楽しむエンジニアの一日 〜 コードを楽しく読む工夫
  • こんなに簡単! Linuxでロードバランサ (3) : DSAS開発者の部屋

    前回はkeepalivedを使ってWebサーバを冗長化してみました。 今回はkeepalivedのもう一つの機能であるVRRPを使って、ロードバランサ自身を冗長構成にしてみたいと思います。 ┌─────┐ │ client │ └──┬──┘ │[10.10.31.200] │ ━━━━━━━┯━━━━┷━━━━━┯━━━━━━━━━ 10.10.31.0/24 │ │ │ │ │ ←(10.10.31.10) → │ │ ←{10.10.31.100}→ │ [10.10.31.11]│ │[10.10.31.12] ┌─┴─┐ ┌─┴─┐ │ lv1 │ │ lv2 │ └─┬─┘ └─┬─┘ [192.168.31.11]│ │[192.168.31.12] │ ←(192.168.31.10)→│ │ │ ━━━━━━┯┷━━━━━━━━━━┷┯━━━━━━━━ 192.168.3

    こんなに簡単! Linuxでロードバランサ (3) : DSAS開発者の部屋
  • DSAS開発者の部屋:Vista で動くプログラムを書くために 〜UAC編〜

    ■ はじめに 今年(2007年) 1 月末にマイクロソフト社が発売した Windows Vista は今なお様々な話題を集めています。 発売から半年余を経た現在、普及率はまだあまり高くありませんが、現在主流の Windows XP は 販売もサポートも次第にフェードアウトしてゆく運命にあり、今後 Windows 用プログラムの開発を行う際には Vista での動作に留意する必要があります。 Vista 初出の仕様のうち、一般のアプリケーション開発者にとって最も重要なものは次の二点と言えるでしょう。 UAC (ユーザアカウント制御) による管理ユーザ権限の抑制 JIS2004 対応に伴う日語文字セットの拡張 随所で取り沙汰されているように、旧バージョンの Windows や他のプラットフォームとの間でテキストデータをやりとりする 上で後者は悩ましい話題です。しかし、前者への考慮が不十分なプ

    DSAS開発者の部屋:Vista で動くプログラムを書くために 〜UAC編〜
  • Erlang で memcached を作ってみました。 : DSAS開発者の部屋

    先日、こちらの Erlang の世界ではmemcachedとか要らない を興味深く読ませて頂きました。 たしかにクライアント側も Erlang で書かれている場合、例えばキャッシュサー バーにアクセスを行う WEB アプリケーションも Erlang で書かれていれば Erlang のプロセス間通信を使用することで簡単にキャッシュサーバを実装する ことが出来そうです。しかし、WEB アプリケーションなど、全てのシステムを Erlang で書くにはまだ私にとって勇気が要る事なので TCP/IP で memcache プ ロトコルを喋る Erlang 版 memcached を作ってみました。 その名も ememcached です。 % ememcached.erl -module(ememcached). -export([start/0, ememcached/1, process_comm

    Erlang で memcached を作ってみました。 : DSAS開発者の部屋
  • apache module 開発事始め : DSAS開発者の部屋

    先日は,必要に迫られて Apache 1.3 の mod_access を改造したという話を書きました.その時は単にあるものを改造しただけでしたが,ふと思い立って,一から Apache 2.0 用のモジュールを書いてみました.書く上で色々 Web サイトを探してみたのですが,あまり日語の入門向けの文章が見あたらなかったので,開発する上で分かったこと(と言うほど大したものじゃないですが)をまとめておこうと思います. フェーズには,例えばそのリクエストを受け付けるか拒否するかを決めるフェーズや,リクエストされた URI と実際のディスク上のファイルとの間の対応付けを解決するフェーズ,そしてもちろん実際のレスポンスを生成するフェーズ等があります.hook 関数を挿入するポイントはこれらのフェーズになりますが,もちろんその全てのフェーズのための関数を用意する必要はありません.また個別の設定を施す

    apache module 開発事始め : DSAS開発者の部屋