Subscribed unsubscribe Subscribe Subscribe

Hateburo: kazeburo hatenablog

Operations Engineer / Site Reliability / 運用系小姑 / Perl Monger

MacBookAir 買ったらスグ入れたい!エンジニア必携ツール1個

Secrets

Cache::Memcached::Fast::Safe - preventing memcached injection

Cache::Memcached::Fast::Safe is subclass of Cache::Memcached::Fast. Cache::Memcached::Fast::Safe sanitizes all requested keys for against memcached injection problem. and call disconnect_all automatically after fork for fork-safe.https://m…

Proclet supports $PORT auto assignment in Proclet-0.30

proclet command (foreman for perl) that included in Proclet distribution, now supports auto assignment of $PORT that written in Procfile.https://metacpan.org/release/ProcletIn Procfile web: plackup -p $PORT -a app.psgi admin: plackup -p $P…

Server::Starter 0.13 was released. It supports `start_server --dir /path/to`

In Server::Starter 0.13, --dir option was added to start_server. start_server will do chdir to a specified directory before exec(2). It's useful when you use carton, proclet and deploy tool like capistrano that does rsync all project files…

Furlでサーバへの接続に掛かった時間とレスポンスに掛かった時間を取得する方法

AnyEvent::HTTPの続き package MyFurl::HTTP; use strict; use warnings; use base qw/Furl::HTTP/; use Time::HiRes; sub response_time { if ( @_ > 1 ) { $_[0]->{times} = $_[1]; } $_[0]->{times}; } sub connect : method { my($self, $host, $port, $…

How to keepalive more than one connections with Furl - Furlで2個以上の接続を維持する技

Furl can do keepalive connection by passing connection pool object to connection_pool option, By default, Furl::ConnectionCache is used. But Furl::ConnectionCache can keep only one connection at once. To do keepalive more one connections. …

AnyEvent::HTTPでサーバへの接続に掛かった時間とレスポンスに掛かった時間を取得する方法

深遠な理由で、connect(2) に掛かった時間と、リクエストを送ってレスポンスが得られるまでに掛かった時間を出したい #!/usr/bin/perl use strict; use warnings; use AnyEvent::HTTP; use AnyEvent::Socket; use AnyEvent::DNS::Cache::Simple; use Time::H…

Test::TCP 2.00 !!

Test::TCP 2.00 drops wait_port_sleep and wait_port_retry argument added at 1.28, and adds max_wait option. Test::TCP waits up to max_wait seconds while stretching the sleep time gradually from 0.001 secondshttps://metacpan.org/release/Test…

nginxを1.2.xから1.4.1にアップデートしたらstub_statusのreadingが0になった 

nginxを1.2.xから1.4.1にアップデートしたらstub_statusのreadingが0になった 矢印のところでアップデート。telnetでアクセスしたらreading増えたのでこの数字が意味なくなった訳ではなさそう。 何かしら処理が変わったのかしら..

Starman と Starlet のベンチマークと Accept Serialization

StarmanとStarletの違いはいくつかありますが、Starletにいくつか手を加えたあと、速度はどうなっているのか比較してみた。なお、以下の記事はHello Worldのベンチマークなので、実際のアプリケーションのパフォーマンスにはあまり影響がないと思われます。…

最近のPlack/Starletのパフォーマンス改善まとめ。最大2倍の性能向上

最近のPlackとStarletにはパフォーマンス改善のため次のような変更が加えられています。Plackに対する変更 (カッコ内はバージョン) Plack::Request::query_parameters の最適化 (1.0018) Plack::Middleware::AccessLog に Apache::LogFormat::Compilerの導入…

MacにAlien::RRDtoolでrrdtoolを導入する方法 2013/03/29版

情勢は変化するので、とりあえず現時点版。OSはSnow Leopard。まず rrdtool の依存ライブラリは homebrew でいれる。かならず brew update を行うこと $ brew update $ brew upgradeできれば brew upgrade まで行ってライブラリを最新にしておく。依存ライブ…

Starletのヘッダとボディを合わせて出力する閾値を変更してみる

Starletは小さいコンテンツを出力する時に、ヘッダをボディを一括で出力する機能がある。今(0.17_1)での閾値は 1024byte。これを変更して変化があるかどうかを確認する。変更点は↓の部分。 diff --git a/lib/Starlet/Server.pm b/lib/Starlet/Server.pm inde…

perl-5.8と5.16でStarletのベンチマークを取って比べてみる

perlのバージョン上げて高速化!yay— masahiro naganoさん (@kazeburo) 2013年3月13日の検証をいろいろついでにやってみた。環境は Xeon L5630 (2.13GHz) 4コア8スレッド x 2 なサーバ。ベンチマークをクライアントは同じスペックの別のサーバですperl-5.8は…

Starlet の次期バージョンは少し速くなる

3/8に開発バージョンの0.17_1が出ましたが、このバージョンはひとつ前の0.16に比べて少し高速になっています。 local $SIG{...} = sub {}が使われていた部分を最適化してリクエストの前後でsystem callを減らしました。straceでみると before 23:02:27.21348…

Starletとmod_perlの違い

straceで見てると、acceptしてからリクエスト行を読むまでの処理が違う Starlet 23:40:11.099510 accept(4, {sa_family=AF_INET, sin_port=htons(44565), sin_addr=inet_addr("10.xxx.xx.xx")}, [1562186129334075408]) = 5 23:40:11.269991 ioctl(5, SNDCTL…

memcached の起動オプションおすすめ教エロください

$ memcached -p $port -U 0 -u $user -m $mem \ -c 200000 -v -t 4 -C -B ascii -I 3000 [-L]-p tcp port -U udp port. 0 is disable 使わないなら切る -u user -m memory size -c max connection とりあえず大きく -v verbose エラーとか残るように -t numb…

MySQLのレプリケーションの遅延状況をGrowthForecastでグラフ化するワンライナー

とりあえず簡単に見たいときに使えますね curl -F `mysql -e 'show slave status\G'|awk -F ':' '/Seconds_Behind_Master/{printf "number=%d",$2}'` http://example.com/api/path/to/graph cronで毎分実行とかしておけば良いんじゃないかな awk力が足りない…

自転車購入

自転車購入した。 天気が悪かったので玄関前のポーチにて 買ったのは山下町のGreen Cycle Stationのショップモデル「Passenger」

最近の持ち物

http://riywo.hatenablog.com/entry/2012/01/19/141019を見て。あたらしい鞄が欲しい 財布 iPhone 4S MacBook Air 11インチ ディスプレイ変換アダプタ wimax Aterm WM3500R USBケーブル (wimax用) ACアダプタは会社にもあるので持ち歩かないスーツってなんで…

Alien::RRDtool を使ったRRDsのインストール

gfx+++ubuntuだと以下でインストールできた! $ sudo apt-get install libcairo2-dev libglib2.0-dev libpango1.0-dev libxml2-dev $ cpanm -lextlib Alien-RRDtool-0.01_01.tar.gz

CentOS 5のEPELのrrdtoolをアップデートする

日本語フォントを出したかったのでアップデートしてみた。1.2.27 => 1.4.5SRPMの導入 $ wget http://download.fedora.redhat.com/pub/epel/5/SRPMS/rrdtool-1.2.27-3.el5.src.rpm $ rpm -Uvh rrdtool-1.2.27-3.el5.src.rpm 1.4.5のダウンロードとバージョン…

perlbrew環境でMacにrrdtool + RRDs.pmをいれる

snow leopardだけどrrdtoolはperlbrewで入る。 $ brew install rrdtoolただし、これだとperlモジュールは、 /usr/local/Cellar/rrdtool/1.4.5/lib/perl以下に入る。なので、 $ perl -Mlib=/usr/local/Cellar/rrdtool/1.4.5/lib/perl -MRRDs -e ''とかやるとR…

kansai.pm#14で演題の上にあった椅子状の人形

投げてよかったの?

DBI->cloneとサブクラス

サブクラスでも問題なしっぽ % perl -MData::Dumper -MDBIx::Sunny -E 'my $dbh=DBIx::Sunny->connect("dbi:mysql:test"); say ref($dbh); my $dbh2=$dbh->clone; say ref($dbh2); say $dbh2->{mysql_enable_utf8}; say Dumper($dbh2->{private_connect_info…

Plack::Middleware::Auth::Basic を Proxy-Authorization に対応させる

とりあえず、Auth::BasicをProxyでも動くようにするには以下のようなパッチをあてれば良いんだけど diff --git a/lib/Plack/Middleware/Auth/Basic.pm b/lib/Plack/Middleware/Auth/Basic.pm index 25be748..df25b67 100644 --- a/lib/Plack/Middleware/Auth…

招待状

もらってました。すみません