タグ

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

  • SHOW FULL PROCESSLIST を使った MySQL のプロファイリング : DSAS開発者の部屋

    KLab Advent Calendar 2011 「DSAS for Social を支える技術」の3日目は、 引き続き MySQL 周りのチューニングノウハウとして、すぐに役立つ プロファイリング方法を紹介します。 DBサーバーの負荷が高い時、 slow_log を見て問題になっている重いクエリを 発見するのが一般的かもしれませんが、 slow_log に一切ログが残らないのに 負荷が高い状況や、むしろ負荷が高すぎてごく一般的でどう考えても遅いはずが ないクエリ ("SET NAMES utf8" や "BEGIN") すら slow_log に大量に乗ってしまう場合が あります。 slow_log 以外で問題になっているクエリを見つける方法として、 "SHOW FULL PROCESSLIST" コマンドがあります。これを数回〜数十回叩いてみて、 よく出ているクエリは、遅かったり量が

    SHOW FULL PROCESSLIST を使った MySQL のプロファイリング : DSAS開発者の部屋
    miyam
    miyam 2012/02/03
  • DSAS開発者の部屋:Android アプリケーションが起動するまでの流れ

    プログラム開発のために Android 上でアプリが起動するまでの過程を調べてみました。備忘をかねて、ソースコードをひと通り追跡した記録をここに控えます。 まとめ ※クリックすると大きな図が開きます Zygote(ザイゴート)プロセスは、Android システムブート時に起動し DalvikVM 体と Android プログラムの実行に必要なダイナミックリンクライブラリと Java のクラスライブラリをロードした状態で待機する常駐プロセスである Zygote プロセスの目的は、同プロセスを fork することによりプログラム実行用のプロセス環境を素早く効率的にシステムへ提供することにある UNIX ドメインソケット /dev/socket/zygote が Zygote プロセスへのインターフェイスであり、同ソケットにプロセス生成要求を送出すると Zygote はプロセス fork を実

    DSAS開発者の部屋:Android アプリケーションが起動するまでの流れ
  • チューニンガソン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開発者の部屋

    7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) + php + Apache + MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。 MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMI Linuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMI Linuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用

    チューニンガソンで優勝してきました : DSAS開発者の部屋
  • パケットリピータ「stone」を Android へポーティング : DSAS開発者の部屋

    オープンソースの多機能パケットリピータソフトウェア「stone」を Android 用にビルドしてみました。 当初は個人的に使用することが目的でしたが、原作者の仙石 浩明 (Hiroaki Sengoku) さんの了承のもと、ビルドずみバイナリを含むリソース一式を非正式版として公開します。他のプラットフォームで stone の便宜に馴染んでいる方はお試し下さい。なお、stone 体の使用方法等についてはこの記事では触れません。公式サイトの解説記事を参照して下さい。 ■ Download (2015年5月 記事を更新) プロジェクト一式を GitHub へ移動しました。以下のリポジトリを参照して下さい。ビルドずみの実行形式も収めています。 ・ https://github.com/mkttanabe/stone-Android-NDK 以下の説明ではこのソフトウェアを「ソフトウェア」と呼

    パケットリピータ「stone」を Android へポーティング : DSAS開発者の部屋
  • Windows用フリーウェア「MyCloudFile」を公開します : DSAS開発者の部屋

    ※2015.04.02 追記 2010年に公開したソフトウェアの実装には Google 固有の認証方式である「ClientLogin」を使用していますが、Google 社は年 4月20日をもってこの ClientLogin のサポートを終了する旨を表明しています。ソフトウェアの公開当時にはストレージサービスとしての「Google ドキュメント」のユーザインターフェイスは発展途上の段階にありこうした補助的なソフトウェアにも相応の役割がありましたが、その後同社サービスのブラウザでの操作性が格段に向上した事情も踏まえ、総合的に判断した結果、今回の Google 社側の措置に伴いソフトウェアの配布・サポートをこの機に一旦終了させて頂きたいと考えています。何卒ご理解・ご了承下さいます様お願い致します。ソフトウェアをご利用頂いた皆様に謹んで御礼申し上げます。 (※以下は過去の補足記事です)

    Windows用フリーウェア「MyCloudFile」を公開します : DSAS開発者の部屋
  • Makuosanデーモンと通信する PHP Extensionを作りました : DSAS開発者の部屋

    Makuosanは複数のサーバ間でファイルやディレクトリの同期をするソフトウエアです。 似たようなソフトウェアにrsyncがありますが、rsyncでは同期する対象のサーバ台数に比例し転送時間が増加してしまいます。 Makuosanはファイルの転送にマルチキャストを利用するため、転送先のサーバ台数が増えても転送時間が変わらないという特徴があります。 Makuosanを利用してファイルの転送を行うためにはMakuosanデーモンと通信して命令を送る必要があります。 これまでは Makuosan に付属する msync というコマンドラインを利用しデーモンと通信する事が必要でした。しかし、この PHP Extension を利用することで PHP で書かれたプログラムからでも直接 Makuosan デーモンと通信する事が可能となります。 用途としては、複数台のサーバにまたがる Web アプリケー

    Makuosanデーモンと通信する PHP Extensionを作りました : DSAS開発者の部屋
  • ApacheのアクセスログをMessagePack形式で出力するためのモジュールを作りました : DSAS開発者の部屋

    Apacheモジュールのログ出力、こんどはMessagePack版を作成しました。続いてはこちらをご紹介します。 Apacheのアクセスログを使い、ユーザアクセスの集計やパターン解析などというのは一般にどこでもやられていることだと思います。通常のアクセスログはテキストファイルなので、集計を行うためにスクリプト上で扱える変数・オブジェクト化が必要になりますね。1行ごとの各ログ項目を取り出すのに正規表現を使ったり、cutやawkなどを使い空白で分割するなど、色々工夫されていることと思います。 今回、MessagePack版のアクセスログ出力をやってみようと思い立ったのは、アクセスログをあらかじめ構造化済みの状態で保存しておければ、読み込みの際の解析する手間を省くことで解析処理の高速化が期待できるのではないか、そう考えたためです。MessagePackであれば、PythonRubyはじめ様々な

    ApacheのアクセスログをMessagePack形式で出力するためのモジュールを作りました : DSAS開発者の部屋
    miyam
    miyam 2009/12/23
  • 高トラフィックに対応できる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開発者の部屋
  • 日経Linuxで連載を始めました。 : DSAS開発者の部屋

    日発売される日経Linux 4月号からKLab の社員で執筆した「2000円ルーターを改造しよう」という連載が始まります。 日経 Linux (リナックス) 2009年 04月号 この連載では 2000円〜4000円で購入できる無線LANルーター La Fonera に DD-Wrt や OpenWrt などの代替ファームウェアに置き換えて活用する方法を紹介していきます。 4月号の第1回では、前準備としてFONルーターのブートローダーにシリアル接続する方法や、telnet でログインする方法、などを紹介しています。 これから安価で自由度の高い無線LANルーターを作ってみたいという方はぜひご覧にな って下さい。 hamano

    日経Linuxで連載を始めました。 : DSAS開発者の部屋
  • DSAS開発者の部屋:5分でできる、MySQLのメモリ関係のチューニング!

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

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