タグ

ブックマーク / blog.nomadscafe.jp (14)

  • Q4Mを簡単に導入する方法 for MySQL 5.6 - blog.nomadscafe.jp

    以前、「Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011」で紹介したQ4M専用MySQLのセットアップスクリプトのMySQL5.6対応版を作りました。 kamipo先生によると、プラグインをあとからビルドしてMySQLに追加する事は推奨されていないとのことなので、Q4MのソースコードをMySQLのソースコードツリーにコピーしてから一緒にビルドします。これは同じくkamipo先生のmysql-buildを参考にさせて頂きました。 #!/bin/sh set -e MYVER=5.6.15 Q4MVER=0.9.11 CDIR=$(cd $(dirname $0) && pwd) cd /usr/local/src if [ -f $CDIR/mysql-$MYVER.tar.gz ]; then cp $CDIR/mysql-$MYVER.t

  • Q4Mを簡単に導入する方法 - MySQL Casual Advent Calendar 2011 - blog.nomadscafe.jp

    xaicronとネタが被ったようだけど気にしない>< livedoorでOperations EngineerやってるkazeburoだYo。最近livedoorからオープンソース化された3億ファイルを管理してるオブジェクトストレージ「STF」でも使ってるMessage QueueのQ4Mのインストール方法を紹介するよ! カジュアルだからインストールだけ! 知ってる人も多いと思うけどQ4Mはkazuhoさんによって開発されたMySQLのストレージエンジンとして実装されてるMessage Queue。livedoorではもちろん、mixiやDeNAをはじめソーシャルゲーム各社でも使われている。 Message Queueの説明や使い方はDIS_COMMENTでテーブルスペースフルの神様が書いてるので参考になるね! Perl Hackers Hub 第10回 ジョブキューで後回し大作戦―Th

    raimon49
    raimon49 2011/12/04
    Q4M専用のmysqldを稼動させる。innodbなどの機能はコンパイル時に除外。
  • memcached 1.4.8 で touch コマンドが追加されます - blog.nomadscafe.jp

    まだ試してないけどblog書く。 memcached 1.4.8-rc1がでていますが、touch という新しいコマンドがが追加されています。アスキープロトコル、バイナリプロトコル両方とも使えます。 http://code.google.com/p/memcached/wiki/ReleaseNotes148rc1 touch コマンドは、有効期限をアップデートできる命令で、アスキープロトコルの場合 > touch <key> <exptime> [noreply]\r\n と使えるようです。データを変更せずにexpiresをアップデートしたい場合に使えるようです。 レスポンスは、有効期限が更新できた場合 TOUCHED\r\n キーがなかった場合 NOT_FOUND\r\n です。 そういえば、existsコマンドが欲しいとか聞いたことありますね。 もうひとつ、1.4.8にはさんざん悩ま

  • Covering Index と self-join と MySQL - blog.nomadscafe.jp

    某サービスのクエリチューニングのお話。 ブログとか日記とかそういうサービス系で次のようなテーブルがあったとします。 CREATE TABLE entries ( id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, posted_by TINYINT UNSIGNED NOT NULL, --#PC、mobileなどどこから投稿されたかのフラグ title VARCHAR(512) NOT NULL, body TEXT NOT NULL, created_at DATETIME NOT NULL, updated_at TIMESTAMP NOT NULL, status TINYINT UNSIGNED NOT NULL, INDEX (user_id,created_at

  • 今こそ見直すApacheの設定 - blog.nomadscafe.jp

    nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW

    raimon49
    raimon49 2011/07/06
    惜しげもなく公開されてる
  • Webアプリケーションエンジニアはノマドであれ(特定のサーバに依存しない方法) - blog.nomadscafe.jp

    弊社では毎週水曜日はノーエンジニアデーなので、最近はMacbook AirとWIMAX持って外で仕事しています。意外と快適ですが、ここで書くのはサーバの使い方の話です。 ときおり、次のような状況に遭遇することがあります。 開発環境して使っているけど、セットアップをどのように行ったか残っていないので、新サーバへ移動できない 番環境だけど、セットアップをどのように行ったかわ(ry デプロイ元/管理ツールサーバとして使っているので古いサーバだけど捨てることができない DBがどこから参照されているか管理できていないので、サーバの入れ替えが困難 コードがどこから参照が把握できていないので、容易にサーバ構成の変更ができない 椅子^H^H 一度設置したサーバの移動なんてなかなかすることないと思う人はいるかもしれないけど、サーバが何の警告もなしに突然壊れて入れ替える必要がでてくるのはもちろん、インフラ技

    raimon49
    raimon49 2011/07/03
    JobQueue覚えて習慣化したいな。
  • memcached を使ったアプリケーションの設計について - blog.nomadscafe.jp

    クライアントからmemcachedを利用する際の、ベストプラクティスは以前書いているので、その前段階でmemcachedを含めたWebアプリケーションのアーキテクチャ(と一部クライアントの話)について今の個人的な考えをまとめてみます。Kyoto Tycoonを使ったキャッシュサーバでも基は同じだと思います 1) 使わない memcachedをアプリケーションに組み込むことで、プログラムがどうしても複雑になりがちです。データの削除や更新の際にキャッシュの更新を忘れると多くの問題が発生します。例えばユーザがニックネームやプロフィール写真を更新したのに画面上変わらないなどの現象が起こると、ユーザに対して不快な思いをさせてしまうでしょう。またデータベースが非同期のレプリケーションを行っている場合、masterに対してデータの変更をかけ、更新が反映される前にslaveから読み込んでしまい、キャッシ

    raimon49
    raimon49 2011/06/03
    導入するならピンポイントで, 1台あたりの割り当てとスケールアウトのバランス この辺は難しい
  • プロのサーバ管理者がApacheのStartServers, (Min|Max)SpareServers, MaxClientsを同じにする理由 - blog.nomadscafe.jp

    kazuhoさんが「プロのサーバ管理者の間では存在価値が疑問視されて久しい (Min|Max)SpareServers だと思う」と書いたり、hirose31さんが去年のYAPC::Asiaで{Start,{Min,Max}Spare}Servers,MaxClientsは同じにしているよと発表したり、実際前職のサーバはそのように設定されていたのですが、自分でうまく説明ができてなかったので、調べながら書いてみた。 当はイントラブログ用に書いていたものですが、がんばったので転載。 前提として、CPUの使用率におけるsystemとfork Re: クラウドがネットワークゲーム開発者にもたらしてくれたもの - blog.nomadscafe.jpでも書いている通りforkってのはサーバにとって重い部類の処理になります。つまり負荷の高いときにforkを大量に行うのはしてはならないことの1つです。

    raimon49
    raimon49 2010/12/30
    >負荷の高いときにforkを大量に行うのはしてはならないことの1つです。
  • データベースサーバを複数台構成とか2010年代には流行らない - blog.nomadscafe.jp

    奥一穂さんの「ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない」にフォローのような感じで。 例によってタイトルは煽りです。 奥一穂さんのエントリーでは、「5,000万PV/Month」という見積もりでアプリケーションサーバの台数を1台と計算していますが、これからは「1,000万PV/Day」を超えるサイトが多く生まれてくると予想しています。どんなサイトかというと、mixiアプリやモバゲーなどにソーシャルゲームを提供するサイトです。 ソーシャルゲームサイトのキャパシティプランニングについては中澤さんのエントリーが参考になります。 The Art of モバゲー Capacity Planning The Art of Mixi-mobile-appli Capacity Planning 最も人気がでた場合には数千万から数億PV/Dayという数字がならんでいます。怖い怖

    raimon49
    raimon49 2010/12/30
    適切なスケールアップで最小限構成
  • ログレベルの使い分け方/コミュニケーション手段としてのログ - blog.nomadscafe.jp

    Log::Minimal v0.02をリリースしました。xaicronさんのpatchにより出力するログのレベルを変更することができるようになりました。 WARN以上のログだけを出したい場合、$Log::Minimal::LOG_LEVEL を変更します。 use Log::Minimal; local $Log::Minimal::LOG_LEVEL = "WARN"; infof("info"); #出力されない warnf("warn"); #出力される デフォルトのレベルはDEBUGです。なお、デバックメッセージを出すには環境変数も設定されている必要があります。 ところで、Log::Minimalでは4つのログレベル、DEBUG、INFO、WARN、CRITICALをサポートしていますが、他のLogモジュールではより詳細なレベルを用意しているものがあります。そのため、アプリケーショ

    raimon49
    raimon49 2010/11/08
    ログレベル 指針
  • Shibuya.pm#14 で memcachedの運用について発表しました - blog.nomadscafe.jp

    2010夏のmemcachedシリーズもいよいよ最後となりました。 1歳8ヶ月のうちの息子も見ていた Shibuya Perl Mongersテクニカルトーク#14「IPAとJPAは違う団体です」でmemcachedの運用について発表をさせていただきました。今回は監視scriptの書き方やcronlog、Nagiosの設定tipsなどの内容にしました。memcachedの監視というよりかは一般的なノウハウ寄りだったかなと 監視の狭間問題の対策としてmemcachedのuptimeを見るscriptを紹介していますが、この問題はmemcachedには限りません。自動的に再起動してくるようなサービスで勝手に再起動した=何か問題が起きたと想定できる、例えばMySQLや /proc/sys/kernel/panic が設定されているLinuxにも同じような監視が必要になるでしょう。 MySQLであ

    raimon49
    raimon49 2010/10/03
    uptime 自動再起動の狭間を検知
  • Re: @kazuho: handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] - blog.nomadscafe.jp

    handlersocket plugin や mycached を使えば memcached は不要か、それとも使うべきケースがあるか。考察せよ [10点] kazuho (Kazuho Oku) http://twitter.com/kazuho/status/21477219149 考えて答えてみる。 HandlerSocketやmycachedを利用し、MySQLへの接続数が数万単位で行えるようになったり、より多くのクエリ数が発行できるようになっても、memcachedは不要ではないし、使うべきケースもあります。 memcachedは単なるKVSではなく、ExpiresとLRUがついたキャッシュサーバです。キャッシュオブジェクトには期限を付ける事ができ、期限が過ぎたキャッシュは無効にされ、またアクセスがされていない不要になったオブジェクトは削除され、空いたスペースは新しいキャッシュオ

    raimon49
    raimon49 2010/08/20
    MVC Modelの位置付け
  • JSONとContent-Type : blog.nomadscafe.jp

    JSONとContent-Type サーバサイドからJSONを吐き出すときのContent-Typeなのですが、各ブラウザによって対応がちょっと違います。 下の表にまとめてみました。 ×のところはeval中にエラーがでます。 Content-type WinIE Firefox Safari Opera(8.5) text/javascript ○ ○ △ × text/javascript; charset=utf-8 ○ ○ ○ × text/javascript; charset=utf8(utf-8の間違い) × ○ ○ × text/javascript+json ○ ○ △ × text/javascript+json; charset=utf-8 ○ ○ ○ × text/html; charset=utf-8 ○ Safariでマルチバイトな文字を含む場合は、「charse

    raimon49
    raimon49 2009/06/08
    他にはapplication/json も
  • IE6で標準準拠モードにするとCSSのFilterが動かない : blog.nomadscafe.jp

    IE6で標準準拠モードにするとCSSのFilterが動かない IE6で標準準拠モードにすると「いままで通りの方法」でCSSのFilterが動かない。 個人的にはどうでもいいんだけど、ぱどタウンでは重要なのでメモ。 IE6の標準準拠モードがOnになっていない場合は、 <font style="width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font> とすることで、DropShadowがかかる。ところが、DOCTYPEスイッチによって標準準拠モードにすると上ではフィルターは動かない。inline要素に対してwidthを設定することはできないからだろうと思って、 <div style="width:100%;filter:DropShadow(color=#FF00FF,offX=1,

    raimon49
    raimon49 2009/02/20
    display:inline-block
  • 1