タグ

ブックマーク / sfujiwara.hatenablog.com (12)

  • クエリキャッシュを切ったほうがいイカ? ベンチマークしてみた - 酒日記 はてな支店

    カジュアル!(挨拶) このエントリは MySQL Casual Advent Calendar 2011 の18日目の記事です。 昔、専ら PostgreSQL を使っていた頃、MySQL のクエリキャッシュって簡単に性能上がるしみたいだし羨ましいなあ、と思っていました。そのため、1年ほど前から業務で MySQL を使うようになっても、クエリキャッシュは当然のごとく有効にしておりました。 ところが先日 DSAS開発者の部屋:クエリキャッシュは切ったほうがいいんじゃなイカ? というエントリを読みまして、クエリキャッシュはグローバルロックを獲得するとのこと。これはちょっと検証してみなければなるまい、ということでベンチマークをしてみました。 ベンチマーク結果 結果は別ページにまとめました benchmark script と my.cnf ざっくりと説明しますと、 平均 260 byte/行、1

    クエリキャッシュを切ったほうがいイカ? ベンチマークしてみた - 酒日記 はてな支店
  • SIGNALを考慮してないTheSchwartz Job workerをなるべく安全に停止する - 酒日記 はてな支店

    TheSchwartz の worker はシグナルに対してデフォルトでは何もしないので、再起動させようと SIGHUP を送信したりすると job 処理の途中で割り込まれて死ぬ可能性があります。 自前でトラップして安全に再起動する方法は過去に TheSchwartz の worker を安全に停止する で書きました。3年前の記事ですが。 今回は、シグナルへの対処がなされていない古いスクリプトを修正したものの、既に動いている worker を安全に止めないと入れ替えられないのでどうするか、というお話。 安全な停止法を twitter で緩募したところ、以下のようなアドバイスを頂きました。しかし別の queue DB 使うのは確実そうだけどちょっと面倒ですよね…… 緩募: signal trapしてないTheSchwartzのjob workerを安全に止める方法 2011-04-25 11

    youpy
    youpy 2011/06/21
    gdb sleep してるか確認
  • MySQLをmaster:slave=1:1構成にして参照をslaveに向けるのがなぜ良くないか - 酒日記 はてな支店

    MySQLのmasterとslave 1:1にして参照をslave向けるのってやりたがる人多いみたいだけど、性能たいして上がらない割に可用性落ちるだけだからやめようキャンペーン 2011-06-19 00:16:30 via YoruFukurou MySQL はレプリケーションが簡単に構成できるのですが、時折 master 1台 に対して slave 1台、更新処理は master に、参照は slave に、という構成を目にします。 個人的にはこの構成はお勧めでないと思っているので、その理由を考察してみます。 1. 可用性が落ちる 当然ですが、master, slave のどちらが落ちても影響を受けるために可用性が低下します。 2. 全体の性能がほとんど上がらない master 1台ですべてのクエリを処理する場合と比べて、可用性が落ちる引き換えとして見合った性能向上が得られるか、という

  • node.jsでTwitter ChiarpUserStreamを閲覧するWebアプリを作った - 酒日記 はてな支店

    先日 Perl + AnyEvent で作った TwitterのChirpUserStreamsをダラ流しするWebApp を、node.js で作ってみました。 node.js というのは、「JavaScript V8 Engineでイベント駆動I/Oなネットワークサーバを書くためのフレームワーク(実行環境)」ということでいいんでしょうかね。 # インストールは ./configure && make && make install で終わるので詳細割愛 イベント駆動IOを使って、以下のような処理を1プロセスで行います。 CharpUserStream から流れてくる JSON を取得して node.js 組み込みの httpd のレスポンスに渡す ブラウザは Long poll して node.js から JSON を取得して画面描画 実際動いてるのを動画で見るとこんな感じです。左側の

    node.jsでTwitter ChiarpUserStreamを閲覧するWebアプリを作った - 酒日記 はてな支店
    youpy
    youpy 2010/06/21
  • Go をちょっと試すのに便利な wrapper 二題 - 酒日記 はてな支店

    8g とか 6l とかのコマンドが (分かりにくい|打ちづらい) ということに定評のある Go ですが、パッケージを作るような場合は Makefile をこんな風に書くと make 一発でことが済むので簡単です。via http://blog.yappo.jp/yappo/archives/000697.html でもちょっとした code snippet を試すのに Makefile を用意するのも面倒だし、ということでこんなやっつけ wrapper を二つ書きました。 gorun http://gist.github.com/239255 引数に与えたソースを complie, link, 実行する perl script. $ cat hello.go package main import "os" func main() { arg := os.Args[1]; os.Stdou

    Go をちょっと試すのに便利な wrapper 二題 - 酒日記 はてな支店
    youpy
    youpy 2009/11/19
  • Coro と Go で並列実行数の制御 - 酒日記 はてな支店

    http://d.hatena.ne.jp/tokuhirom/20090710/1247196134 この Coro の例を Go でやってみます。 まず特定数 (ここでは 3) の worker thread を立ち上げておいて、そこにメッセージを送って仕事させるモデル。メッセージのやりとりに Coro::Channel を使います。 use Coro; use Coro::Channel; use Coro::Timer; my $ch = Coro::Channel->new; sub worker { while (1) { my $url = $ch->get; printf("worker(%d): %s\n", $_[0], $url); Coro::Timer::sleep(1); } } my @coros = ( async { worker(1) }, async

    Coro と Go で並列実行数の制御 - 酒日記 はてな支店
    youpy
    youpy 2009/11/19
    make(chan TYPE, X) とすると X 個のメッセージしか入らない (それ以上入れようとするとブロックする) channel が作れる
  • ついにやらかした rm -rf / - 酒日記 はてな支店

    UNIX の root なら誰もが必ず一度はやるという、rm -rf / をついにやった。root歴10年にして…… 社内の開発サーバだったのが不幸中の幸いではあったが。 vsftpd でホームディレクトリがない時の挙動を確認したくて、テスト用のユーザ fujiwara2 の home を mv しようと、 # mv /home/fujiwara2 /ここまで打ち込んで、やっぱ mv じゃなくて rm でいいや、と思い直して # rm -rf /home/fujiwara2 /最後の / を付けたままで実行してしまった…… なんか返ってこないな? と思って気が付いて、慌ててキャンセルはしたのだが、時既に遅し。 /dev /etc あたりがごっそり消えた。なんでか /bin /boot は残ってた。 これまた幸いというか、このホストは VMware のバーチャルマシンだったので、2007年7

    ついにやらかした rm -rf / - 酒日記 はてな支店
    youpy
    youpy 2008/02/13
  • 昭和の写真ジェネレータの作り方 - 酒日記 はてな支店

    予想外に人気を博してしまった 昭和の写真ジェネレータ(仮) ですが、画像加工の方法を公開しておきます。 [追記] 以下のコードは説明用です。なお、実際に動いているコード(に限りなく近いもの) を CodeRepos に up しました。svnはこちらから 用意するもの。 Perl Imagerモジュール 元ネタの画像 モジュールを load して、画像を Imager オブジェクトに読み込みます。 use Imager; use Imager::Fill; use List::Util qw/ min max /; my $img = Imager->new; $img->read( file => "source.jpg" ); コントラストを落とします。 $img->filter( type => "contrast", intensity => 0.7 ); 少々ぼかします。(小さい

    昭和の写真ジェネレータの作り方 - 酒日記 はてな支店
    youpy
    youpy 2007/09/25
  • 昭和の写真ジェネレータ - 酒日記 はてな支店

    otsune 昭和の写真ジェネレーターが作れそう http://b.hatena.ne.jp/entry/http%3A//portal.nifty.com/2007/09/18/a/ 作ってみた。 昭和の写真ジェネレータ(仮) Imagerで コントラストを落として ちょっとぼかして ふちをつけて 黄色っぽい色を混ぜて ノイズをのせて 作ってます。まだ調整の余地ありなような。 ソースは coderepos に置かせてもらおうかな…… [追記] ファイルアップロード対応 日付写し込み を機能追加しました。

    昭和の写真ジェネレータ - 酒日記 はてな支店
    youpy
    youpy 2007/09/20
  • Yahoo 日本語形態素解析Webサービスを使ってみる - 酒日記 はてな支店

    使ってみた。 日語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能を提供します。 http://developer.yahoo.co.jp/jlp/MAService/V1/parse.html とりあえず動けばいいや、という版。 #!/usr/bin/perl use strict; use LWP::UserAgent; use XML::Simple; use YAML qw/ Dump /; use Encode qw/ encode_utf8 /; my $ua = LWP::UserAgent->new(); $ua->env_proxy(); my $text; while (<>) { $text .= $_; } my $uri = q{http://api.jlp.yahoo.co.jp/MAService/V1/parse}; my $res =

    Yahoo 日本語形態素解析Webサービスを使ってみる - 酒日記 はてな支店
    youpy
    youpy 2007/06/19
  • Filter::Mork - 酒日記 はてな支店

    Mozilla/Firefox の history.dat(履歴を保存している) を読む File::Mork というモジュールが CPAN にあるので、それを使って…… package Plagger::Plugin::Filter::Mork; use strict; use base qw( Plagger::Plugin ); use File::Mork; sub register { my($self, $context) = @_; $context->register_hook( $self, 'update.feed.fixup' => \&update, ); } sub update { my($self, $context, $args) = @_; my $mork = File::Mork->new( $self->conf->{filename} ); for

    Filter::Mork - 酒日記 はてな支店
    youpy
    youpy 2006/05/17
  • GMなしで Plagger with LDR - 酒日記 はてな支店

    http://subtech.g.hatena.ne.jp/miyagawa/20060509/1147150987 これはすごい。社内の (Internetに出せない) Feed も LivedoorReader でさくさく読める。 Greasemonkey なしで使うためにこんな手段を講じてみた。 要は http://reader.livedoor.com/api/(all|subs|touch_all|unread)/.* へのリクエストを横取りして Catalystサーバに向けてやればいいわけで、そういう Proxy を作るレシピ。 Apache-1.3 + mod_rewrite + mod_proxy (Apache-2.x でも同じ?) LoadModule proxy_module libexec/libproxy.so LoadModule rewrite_module

    GMなしで Plagger with LDR - 酒日記 はてな支店
    youpy
    youpy 2006/05/12
  • 1