タグ

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

  • Webアプリケーションにおける Job Queue システムの構成例と Worker を作る際に気をつけること - blog.nomadscafe.jp

    Webアプリケーション内で処理を直列に実行せずにJob Queueに回して非同期に実行することが多くなって来て久しいと思いますが、そのおすすめ構成と気をつけることについてつらつらと。 1) 既存のデータベースをキューとして使う構成例 1つ目はMySQLなどのデータベースをキューとして用いる例。既にアプリケーションで利用しているデータベースにキュー用のテーブルを作成して利用します。データベースを利用したキュー管理の仕組みとしてJonk、Qudo、TheSchwartzなどがPerlでは有名どころです。 依存するミドルウェアが増えないので最もシンプルな構成になると思います。 上記の図ではWorkerはアプリケーション内で実行することで冗長性を確保しますが、キューを格納するデータベースはSPOFになります。しかし、、データベースに障害があった場合キューだけでなくすべてのサービスが停止すると思われ

  • レプリケーション作成を簡単にする mysql40dump という mysqldump の wrapper を作った話 - blog.nomadscafe.jp

    みなさん mysqldump は好きですか? 自分はどっちでもありません。 MySQLでよくあるMaster-Slave構成を作る手順は以下のようになると思います MasterからSlaveとなるサーバに一貫性を保った状態のコピーをし、そのデータのバイナリログのファイル・ポジションをメモ。 SLAVEでデータをリストアし、Masterのホスト名、レプリケーションに使うユーザ名・パスワードとメモしたバイナリログのポジションをCHANGE MASTER文に渡し、START SLAVE 一貫性の取れたコピーを作成するためにmysqldumpやxtrabackup、LVMなどでのスナップショットが利用できますが、もっとも簡単な方法がmysqldumpだと思います。 mysqldumpで一貫性のあるデータをとり、その際のバイナリログポジションを記録するには $ mysqldump --single-

    takatoshiono
    takatoshiono 2012/01/15
    pipeかー
  • YAPC::Asia 2010 Tokyo で CloudForecast について喋ってきた - blog.nomadscafe.jp

    Yokohama.pm で話したこと+αで、監視についての話、CloudForecastの概要とインストール方法、拡張方法、また生成するグラフの見方、運用方法について紹介しました。 slideshare版の資料にはありませんが、発表で使った資料の最後はShibuya.pmの中継を見ていた息子です。去年の発表でも画像の縮小のサンプルにもつかってました^^ \n\n[Yokohama.pm](https://blog.nomadscafe.jp/2010/07/yokohamapm-6cloudforecast.html) で話したこと+αで、監視についての話、CloudForecastの概要とインストール方法、拡張方法、また生成するグラフの見方、運用方法について紹介しました。\n\nslideshare版の資料にはありませんが、発表で使った資料の最後はShibuya.pmの中継を見ていた息子

  • 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がついたキャッシュサーバです。キャッシュオブジェクトには期限を付ける事ができ、期限が過ぎたキャッシュは無効にされ、またアクセスがされていない不要になったオブジェクトは削除され、空いたスペースは新しいキャッシュオ

  • CloudForecastっていうリソース監視のツール/フレームワーク作った - blog.nomadscafe.jp

    「クラウド」って言ってみたかった。今は反省していr 上のグラフは前回のエントリーを公開したときの、当blogを配信しているサーバのトラフィックグラフです。記事を公開した17時にぴょーんとトラフィックが伸びています。4時にも増えているけどこちらは謎。 実はこのグラフもCloudForecastを利用して取得しています。CloudForecastはサーバ等のリソース監視を行うツールもしくはフレームワークで、rrdtoolの薄いラッパーとして動作し、小規模から大規模なサーバ群を一括で管理できるように設計してあります。tokuhirom曰く、「perlが書けてrrdtoolがつかえるsysadminの人だったら使いやすいと思われる」というのがもっともしっくりくるような気がします。Perlとrrdtoolが使える運用者によるカスタマイズ前提なのがフレームワークと呼んでいる所以です。 CloudFor

  • Cache::Memcached::Fastを試す : blog.nomadscafe.jp

    Cache::Memcached::Fastを試す Perlの新しいmemcachedクライアント「Cache::Memcached::Fast」がでていたので試してみた 結論から言うと、これは使えそう。 まず、C::M::Fastはmemcached-1.2.4でサポートされた、append, prepend, cas, gets, gets_multiをサポートする唯一のPerlクライアントです。また、常に問題となるCache分散にKetama consistent hashing algorithmをサポートしているためCacheの組み替えを最小限にしてCacheサーバの追加が行えます。 手元のベンチマークでは50%〜80%、処理によりますが300%以上高速化されてます インストールは普通にCPANから行えます。ただし、memached-.1.2.4が動いていないとmake test

  • ImageMagickでAnimated GIFのサムネイルをきれいにつくる方法 : blog.nomadscafe.jp

    ImageMagickでAnimated GIFのサムネイルをきれいにつくる方法 ImageMagickでアニメーションGIFのサムネイルをきれいに作るには、 PerlMagickなどのAPIを使うのではなく、コマンドラインを使うのが楽です # /usr/bin/convert animated.gif -coalesce -resize 30x30 -deconstruct resized.gif coalesceオプションとdeconstructがポイント。 それぞれ、 coalesce: 画像シーケンスをマージ deconstruct: 画像シーケンスを構成要素 という意味になります あと問題は、出来上がった画像サイズがどうしても大きくなってしまうことです

  • 高速Webサーバ Nginxの組み込みPerlを使ってみる : blog.nomadscafe.jp

    高速Webサーバ Nginxの組み込みPerlを使ってみる NginxというWebサーバがあります。 ロシアの方がつくったもので、rambler.ruでも使われてます。 日語情報がほぼ皆無ですが、このあたりで紹介されています。 機能的には、epoll,kqueueやsendfileなどがサポートされ、 rewrite, header書き換え deflate FastCGI SSL シンプルな負荷分散付きreverse proxy 等すでにLighttpdと比較しても遜色ない十分な機能が実装されてます。 パフォーマンス的にもLighttpdと同等かそれ以上でます。 珍しい機能として、「perlインタプリタの組み込み」があるので早速試してみます。Fedora Core6ではnginxはyumでインストールできます。perl_moduleも有効になってます perl関連のドキュメントはここ。

  • 同じコマンドを複数のサーバで実行 : blog.nomadscafe.jp

    同じコマンドを複数のサーバで実行 Assurerにシェルモードが追加されたので、もういいかなという感じですが、自分の使っているスクリプトをさらしてみる。 sshで1つのコマンドを複数のサーバに順番に実行させていけます。 「password:」のプロンプトに対して、expectを使って自動で入力する機能もあるので、sudoなどにも対応 mssh -f list.txt -u user -p -- id -f ファイル名: ホスト名が書いてあるファイル名。1行1ホスト -u ユーザ名: ログインするユーザ名 -p: パスワードを使うフラグ --: これ以降にコマンド 以下ソース #!/usr/bin/perl package MSH; use strict; use warnings; use Expect; sub new { my $class = shift; bless {@_}, $

  • 開発環境のこととか : blog.nomadscafe.jp

    開発環境のこととか 今は、運用の中の人をやっているので、開発環境カンファレンスでしたが、運用に使えそうなネタが結構あってよかった。 自社開発でのサーバ監視、ldapbuildに5時間かかるrpmなど、参考にさせて頂きます。 個人的な開発(運用)環境ですが、 ハードは ・Mac(家MacBook Pro+mac mini、会社iMac) ・緊急対応用のWindows Note な感じ。 社内で開発の方と連携ととりながら進めて行きたい時は、Windows Noteを持って開発陣の机の方へ行き、VNC(OSXVnc)でiMacを使ってます。全画面表示するとそこそこ使える。 緊急対応時もこの方法でやってます。たぶん夜中に会社のMacが勝手に動き出してます。 ソフトウェアの方で言えば、エディタとかにこだわる方ではなくて、jtermの付属品だった頃からずっとJeditというエディタを使ってきました。

  • Tagの検索にMySQLの全文検索を使う : blog.nomadscafe.jp

    Tagの検索にMySQLの全文検索を使う Tags with MySQL fulltextを参考にして試してみた。 Femoの中で、タグの絞り込み機能を実装したのに続いて、「完了」や「finish」と言ったタグがついている場合表示しないというオプションを考えている。 そうなってくると、SQLをどう書けばいいのか、また複雑なSQLを構築したときにパフォーマンスは大丈夫なのかと心配。そこで、上記のURLを参考にしながらMySQLの全文検索に注目。 create table ft_tags( id int unsigned not null auto_increment primary key, tags text, unpack text, fulltext (unpack) ) と言うテーブルを作成。 ここに、 my @tags = ( q/task femo/, q/femo mail t

    takatoshiono
    takatoshiono 2006/03/29
    packとかunpackとかわからん。一度ちゃんとperldoc読まないとだ
  • シイラ : blog.nomadscafe.jp

    シイラ シイラは、Mac OS Xのブラウザの1つで、Safariと同じくWebKitを用いて構築されている。しかもオープンソース。何をいまさらかもしれないが、このブラウザ意外(失礼)にいい。 いままでSafariを使っていたんだけど、1つの悩みがキーボードショートカットが聞かなかった事なのです。bloglines2gmailとか興味はあったんだけど、Safariをずっと使っていたのでBloglinesのインターフェイスから移行するというところまでは行かなかった。 Firefoxという選択肢もあるのかもしれないけど、FirefoxyとかをつかっていてもOS Xとの違いでいまいち感があってデフォルトブラウザにすることはなかった。いいものを使っている感というのは大事。 そこでシイラ。ターゲットリンクを新規タブで開くこともできるし、(SafariだとSafari Standを利用)、Gmailの

    takatoshiono
    takatoshiono 2006/02/05
    こんなブラウザがあるのか。つかってみよ。
  • prototype.jsのものすごく簡単な使い方。 : blog.nomadscafe.jp

    prototype.jsのものすごく簡単な使い方。 はてなダイアリーの方にprototype.jsでHTMLを汚さないロールオーバースクリプトというエントリーを書いたのだが、prototype.jsの入手方法やらすごく簡単な使い方がないようなので、書いてみます。 prototype.jsはJavaScriptのライブラリ(中身はJavaScriptです)で、これを使うとJavaScriptを組むのがかなり楽になるというものです。話題のAjaxのプログラミングも簡単にできます。 ライブラリは、 http://prototype.conio.net/ からダウンロードできますが、TOPページにあるファイルはちょっと古いものなので、Browse the darcs repositoryというリンクを辿り、 http://dev.conio.net/repos/prototype/dist/ から

  • HTML::Prototypeを使ったauto complete field : blog.nomadscafe.jp

    HTML::Prototypeを使ったauto complete field HTML::Prototypeを使ったauto complete fieldをCGI::ApplicationとCGI::Application::Plugin::HTMLPrototypeを利用して組んでみた。候補データの文字化け対策も。 HTML::Prototype説明は、mizzy.orgさんのエントリが詳しい。 すでに珍しくもないauto completeの動作サンプルは以下 http://nomadscafe.jp/test/autocompletefield/app.cgi/ 市区町村名を途中まで入力すると候補がでてくる。 CGI::Applicationで use base qw(CGI::Application); use CGI::Application::Plugin::TT; use CG

  • 1