タグ

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

  • MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋

    MySQL 5.6 の検証中に MySQL 5.5 とは違うタイプのレプリケーション遅延を見つけたので紹介します。 MySQL のレプリケーションのおさらい MySQL のレプリケーションは次のような仕組みで動作しています。 マスターの更新トランザクションが binlog を書く スレーブの I/O スレッドがマスターに接続し、 binlog を取得し、 relaylog を書く. マスター側はスレーブからの接続を受け付けると(dump スレッド)、指定された場所から最新までの binlog を転送する binlog が追記されるのを待ってさらにスレーブに送る スレーブのSQLスレッドが relaylog を再生する MySQL 5.5 でよくあったレプリケーション遅延 マスターは並列してトランザクションを処理して、最終的にコミットした順で反映されれば問題ないようになっています。 一方、ス

    MySQL 5.6 でのレプリケーション遅延は危険 : DSAS開発者の部屋
    kuni92
    kuni92 2024/08/24
  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
    kuni92
    kuni92 2012/09/14
  • 過負荷をかわす Apache の設定 : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基設定 まずは基的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp

    過負荷をかわす Apache の設定 : DSAS開発者の部屋
  • チューニンガソン2で2位でした : DSAS開発者の部屋

    10/1(土)にチューニンガソン2 というイベントに参加してきました。 もちろん前回に引き続き優勝を 目指していたのですが、今回は残念ながら2位でした。 今回もどんなチューニングをしていたのかの記録を公開します。 (ちなみに優勝したのは元KLabの濱野さんで、同じく メモを公開されています。) 今回のチューニンガソンのお題は、 Wikipedia の高速化で、 MediaWiki と Wikipedia の データが入った MySQL のデータには修正を加えずに、ランダムな100ページの表示速度を競いました。 マシンはメモリ1GBでデュアルコアのものが2台で、今回はWebサーバーの部分は自由に構成できます。 1. ボトルネックの確認 とりあえず AMI Linux の標準の php + apc で計測したところ、1ページの表示に1秒くらい使っています。 またphpか!ということで、やっぱり

    チューニンガソン2で2位でした : DSAS開発者の部屋
  • 高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋

    はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立

    高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋
  • 負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋

    負荷試験ツール インターネット破壊を公開しました。 こちらはずっと社内で負荷試験に使用していたツールです。社内で使用していたものなので、ソーシャルアプリ向けの機能などが多少追加されていますが、もちろんんそれ以外のWebアプリケーションでも使用できます。 基的にはApache JMeterのようなWebアプリケーションむけのシナリオ負荷試験ツールです。コマンドラインオペレーションだけで実行でき、サーバー上で簡単に負荷試験を実施できるのが特徴です。POSTリクエストなどはもちろん、レスポンスのチェックやUserAgentの偽装、ランダムな値をパラメーターにセットする機能も実装しています。 注意: 当然ながら自分の管理下にないサイトに向けて負荷試験ツールを実行するのは絶対にやめてください。非常に危険です。 物騒な名前がついていますが、これは完全にわたしの小児的感性の趣味によるところです。地震で

    負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋
  • 届いたメールの料理の仕方 (1) 〜qmail編〜 : DSAS開発者の部屋

    qmailではdot-qmailと呼ばれるファイルで届いたメールの処理を制御できます。典型的なdot-qmailファイルは、ユーザのホームディレクトリの下の~/.qmailや~/.qmail-XXXですね。 今回は、dot-qmailを使う上で知っておきたいことをTIPSを交えて紹介したいと思います。 例として、kbora@klab.org宛てのメールが~kbora/.qmailに届く場合を考えます。 qmailにはextension addressというものがあり、ユーザ名に続けて「-XXX」を指定することができます。例えば、kbora-oboko@klab.org宛てのメールは、~kbora/.qmail-obokoに届きます。このextension addressを活用すれば、管理者の手を煩わすことなくメールアドレスを増やすことができますね。 では、~/.qmail-inaが無い状態

    届いたメールの料理の仕方 (1) 〜qmail編〜 : DSAS開発者の部屋
    kuni92
    kuni92 2010/12/10
  • 「このプログラムは正しくインストールされなかった可能性があります」を回避する方法 (Windows 7, Vista) : DSAS開発者の部屋

    (*1) このパターンでは権限昇格要求が発生しません (*2) 権限昇格されないため HKLM 配下へアンインストール情報を書き込む時点で失敗します ■ このメッセージが表示される理由 Windows Vista で登場した UAC (User Account Control) の目的のひとつは、ユーザの意図しないプロセスがログオンセッションを悪用してシステムに害を及ぼす危険を抑止することです。そのため、現在のログオンユーザが管理者権限を持っていても、あるプログラムを管理者権限で実行するためにはユーザが明示的にそれを許可する必要があります。 一方、Windows 環境へ所定のプログラムを登録することを目的とする「インストーラ」は、その性質上多くの場合システムの深部にアクセスする処理を内包しています。そのため通常は管理者権限で実行されなければなりません。そこで問題となるのは、インストーラ側が

    「このプログラムは正しくインストールされなかった可能性があります」を回避する方法 (Windows 7, Vista) : DSAS開発者の部屋
  • OpenSSL-1.0.0 でのハッシュリンク使用は要注意 : DSAS開発者の部屋

    先日(03/29)、OpenSSL のメジャーバージョンアップ版 1.0.0 がリリースされました。 ちょうど1年ほど前から beta リリースが出ていましたが、ついに正式にリリースとなりました。 早速ソースコードをダウンロードして試してみたところ、気になるところを見つけたので記事にします。 サブジェクトのハッシュ OpenSSLには、証明書や CRL に含まれるサブジェクトや発行者名を 8文字で表現されるハッシュ値に変換する機能があります。 このハッシュ値は、OpenSSL のコマンドラインや SSL/TLS の実装として OpenSSL をリンクしているアプリケーションに対して、個々の CA証明書や CRL のファイルをディレクトリごと指定する際にファイル名として使用します。 $ openssl x509 -noout -hash -in hoge.pem このようなコマンドラインで、

    OpenSSL-1.0.0 でのハッシュリンク使用は要注意 : DSAS開発者の部屋
  • Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋

    皆さんは、負荷分散環境でのApacheのアクセスログをどのように取り扱ってますか? 通常、Apacheのログは動作サーバ上のローカルファイルとして出力されるので、 Webサーバを同時に何台も稼働させて負荷分散を行うような環境では、それらすべ てのWebサーバのログファイルを集めなければなりません。ローカルファイルとし て出力されるということは、Webサーバの台数分だけログファイルがばらけること を意味します。考えるだけでめんどくさいですね。 KLabでは、このApacheログを2パターンを使い分けて集めています。ひとつは syslogによるリモート出力を使い、全Webサーバからのログ出力を一か所に集中さ せる方法です。これは、CustomLogディレクティブにloggerコマンドを使用するこ とで可能です。 CustomLog "|/usr/bin/logger -p local6.inf

    Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋
  • Windows用ソフトウェア「イージスガード」を公開します : DSAS開発者の部屋

    「イージスガード」は Windows PC 上のデータをウイルスやマルウェアの脅威から守るためのソフトウェアです。KLab は個人向けにこのソフトウェアの無償公開を開始しました。 イージスガードには次の機能・特長があります。 所定のフォルダ・ファイルを保護対象として設定可能 許可しないプログラムからのアクセスを報告・記録する 許可しないプログラムからのアクセスを透過的にダミーフォルダへ誘導 PC 環境に応じて保護設定を自動生成する 改変されたプログラムからのアクセスを抑制する 有効なデジタル署名つきのプログラムには自動的に許可を与える イージスガードは、以前このブログでご紹介した「WinAmulet」を母体とする上位互換のソフトウェアです。WinAmulet ユーザ各位のご支援のおかげで、多くの機能を追加し大きく性能を改善したこの新しいソフトウェアが生まれました。もちろん、WinAmule

    Windows用ソフトウェア「イージスガード」を公開します : DSAS開発者の部屋
  • そのメモリ、捨てる前に 〜EDACでECCエラーをキャッチ〜 : DSAS開発者の部屋

    かたちあるものいつかは壊れます。メモリモジュールも例外じゃありません。 DSAS はサーバが200台近くあり、複数枚メモリを積んでいるサーバもあるのでメモリの数はそれ以上です。これだけメモリがあると、どれかが壊れる確率はそれなりに・・・・ 前回のパクリはこのくらいにしてですね(^^;、ディスクは壊れると非常にわかりやすいログを吐いてくれたり、 SMART で簡単に状態をチェックできたりしますが、メモリが壊れた場合はちとやっかいです。いきなり固まったり電源が落ちたり挙動不審になったりと、全く予測不能な症状を引き起こしてしまいます。このような場合、メモリ不良を疑って BIOS でログを確認するとか、長時間かけて診断ツールかけたりしないとなかなか原因の特定に至らないので、原因不明なまま眠れない日々が続いてしまいます。 Linux でメモリエラーを検出するには、「 NMI 関連のログがでたらメモリ

    そのメモリ、捨てる前に 〜EDACでECCエラーをキャッチ〜 : DSAS開発者の部屋
  • phpを高速化する computed goto : DSAS開発者の部屋

    前回 インタプリタ型言語を高速化する computed goto で紹介したcomputed gotoを、「phpでも使えないの?」という声が社内であったので、 php のソースコードを見たところ、特定のビルド手順で php でも computed goto が使えることが判りました。そのビルド手法とベンチマーク結果を紹介しておきます。 php の VM のソースコードは、phpソースパッケージ中の Zend/ というディレクトリの中にあります。zend_vm_で始まる幾つかのファイルのうち、 zend_vm_execute.h というファイルが命令ディスパッチが実装されているファイルで、このファイルは zend_vm_gen.php というスクリプトで生成されています。そして、 zend_vm_gen.php のオプションで、命令ディスパッチの方法を選択できます。(phpのビルドにphp

    phpを高速化する computed goto : DSAS開発者の部屋
    kuni92
    kuni92 2009/03/30
  • memcached-1.2.4で追加されたコマンドのメモ : DSAS開発者の部屋

    なぜか最近になってまた動きが活発になってきた気がするmemcachedですが、ちょっと前(2007-12-06)にリリースされたmemcached 1.2.4からプロトコルコマンドが追加されました。 append prepend gets cas 今回は、これら新しく追加されたコマンドについて、軽く説明してみたいと思います。 なお、クライアントライブラリが新コマンドに対応していたりいなかったりするので、今回はクライアントライブラリを使用せず、直接memcachedにつないで、プロトコルをしゃべって動作を確認したいと思います。(memcachedプロトコルは、doc/protocol.txtに詳しい解説がありますのであわせて読むといいと思います) で、おしゃべるにはtelnetやncでもいいんですが、今回はsocatを使います。localhostの11211に繋ぎたい場合にこんな感じで実行す

    memcached-1.2.4で追加されたコマンドのメモ : DSAS開発者の部屋
  • 低温環境でのHDDの動作 : DSAS開発者の部屋

    あるデータセンターに導入したサーバーの初期セットアップ時に今までに経験したことのないHDDトラブルに見舞われました。今回はそのトラブルの原因究明と解決に至るまでのお話です。 HDDの故障? 7月、新データセンターでの初期セットアップ時にHDDの書き込み速度がやたら遅いディスクがあるという話が出てきました。 話を聞くと1台だけでなく複数台に発生しているとの事です。 その時の測定値は次のような感じでした。 実際の測定値 # dd if=/dev/zero of=/mnt/p0/test bs=1M count=2048 (RAIDカードの0番ポートにあるディスク) 2048+0 records in 2048+0 records out 2147483648 bytes (2.1 GB) copied, 43.8163 seconds, 49.0 MB/s # dd if=/dev/zero

    低温環境でのHDDの動作 : DSAS開発者の部屋
    kuni92
    kuni92 2008/09/23
  • DSAS開発者の部屋:ケータイやクローラの判別などに使えるmod_cidr_lookupを公開しました

    mod_cidr_lookupというApacheモジュールを公開しました。 http://lab.klab.org/wiki/Mod_cidr_lookup mod_cidr_lookupは、アクセスしてきたクライアントのIPアドレスが、指定したCIDRブロック群のいずれかにマッチするかどうかを判別するApacheモジュールです。 Apache 2.0と2.2系に対応しています。 マッチした結果は、環境変数 (X_CLIENT_TYPE) とHTTPリクエストヘッダ (X-Client-Type) にセットするので、Apache自身とバックエンドのWebアプリの両方で同じ情報を参照することができます。 このモジュールを使うメリット 簡単にクライアントの種類を知ることができる 判別処理はモジュールが行ってくれるので、のちほどお見せるように、Webアプリやhttpd.confでは環境変数やリク

    DSAS開発者の部屋:ケータイやクローラの判別などに使えるmod_cidr_lookupを公開しました
  • 『サーバ/インフラを支える技術』出版と発売記念Tech Talk開催のお知らせ : DSAS開発者の部屋

    KLab(株)のDSASチームと(株)はてなさんのインフラチームとで書いていたが、とうとう8/8(ごろに)発売されます! [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 作者: 安井真伸, 横川和哉, ひろせまさあき, 伊藤直也, 田中慎司, 勝見祐己 出版社/メーカー: 技術評論社 発売日: 2008/08/07 メディア: 単行(ソフトカバー) また、発売を記念して、(株)技術評論社様の主催で、Tech Talk イベントを開催します。 詳しくは、開催のアナウンス サーバ/インフラ Tech Meeting[開催概要]:WEB+DB PRESS plusシリーズ新刊発売記念,サーバ/インフラ勉強会開催 をご覧ください。 もちろんスピーカはこのの執筆者陣で、インフラにまつわるお話をする予定です。 このようなサーバ/インフラ関係の

    『サーバ/インフラを支える技術』出版と発売記念Tech Talk開催のお知らせ : DSAS開発者の部屋
  • サーバ/インフラTech Meetingの報告+資料を公開します : DSAS開発者の部屋

    先週の金曜日に行われたサーバ/インフラ Tech Meetingの資料を公開します。 このを書いたわけ - ひろせまさあき(PDF, 1594KB) DSASのこれから - 安井真伸(PDF, 529KB) はてなの伊藤さん、田中さんの発表資料も既に公開されています。 サーバ/インフラ Tech Meeting の資料など - naoyaのはてなダイアリー はてなのインフラ、いまむかし @ サーバ/インフラ Tech Meeting - とあるはてな社員の日記 また、当日の動画もニコニコ動画にアップされています。cojiさんありがとうございました! サーバ/インフラ Tech Meetingの動画 - TechTalk.jp これらの資料、動画や、当日の会場の写真などは、まとめて技評さんのサイトにもアップされると思いますので、そちらもチェックしてみてください。 サーバ/インフラ Tech

    サーバ/インフラTech Meetingの報告+資料を公開します : DSAS開発者の部屋
  • KLab勉強会#4の資料を公開します : DSAS開発者の部屋

    3/28に開催した、第4回KLab勉強会の資料を公開します。 『DSASのやりくり - MATRIXの秘密と効率的なシステム管理の関係』 〜 ひろせまさあき (KLab株式会社) 発表資料 (PDF, 661 KB) 動画: 前編、後編 (Ustream.tv) 『オープンソースなシステム管理フレームワーク Func』 〜 宮下 剛輔(株式会社paperboy&co.) 発表資料 (PDF, 753 KB) 動画 (Ustream.tv) たくさんの方にお越しいただきありがとうございました。 おかげさまで、懇親会も含め盛況のうちに終わり、とても楽しい時間を過ごすことができました。 近いうちに第5回も開催したいと思っています。 勉強会の内容や参加募集など、決まり次第このブログでアナウンスしますので、今後も購読していただければと思います。

    KLab勉強会#4の資料を公開します : DSAS開発者の部屋
  • repcached 1.1をリリースしました+2.0のもくろみ : DSAS開発者の部屋

    repcached 1.1 (memcached-1.2.4ベース) を公開しました! 主な変更点は次の通りです。 memcached-1.2.4の新しいプロトコル (append, prepend, cas) に対応。 ただし、いまのところcas unique IDのレプリケーションには対応していないので、getsとcasの間にフェイルオーバが発生すると、casが失敗する可能性があります。 レプリケーション用のテストケースを同梱しました。prove t.repでテストを実行できます。 ダウンロードやインストール方法などの詳しい情報は、プロジェクトページをご覧くださいませ! http://lab.klab.org/modules/mediawiki/index.php/Repcached (日語) http://repcached.lab.klab.org/ (英語) そして2.0 1.

    repcached 1.1をリリースしました+2.0のもくろみ : DSAS開発者の部屋