タグ

2012年7月31日のブックマーク (4件)

  • Re: Re: perl 5.16.0 でメモリリーク? - Islands in the byte stream (legacy)

    perl 5.16.0 でメモリリーク - たごもりすメモ Re: perl 5.16.0 でメモリリーク? - tokuhirom's blog 修正してpull-requestを送りました。 https://github.com/mirrors/perl/pull/9 https://rt.perl.org/rt3/Ticket/Display.html?id=114340 ※ githubのpull-req/issuesではなくperlbugでレポートしてほしいとのこと。今回は tokuhiromの報告があったのでそれで。パッチ自体は問題ないようなので、Perl 5.16.1 では修正されるでしょう。 以下蛇足。 せっかくなので、何を考えながらデバッグしたかを記録しておく。 今回のバグはSVのリークではなくmalloc()したメモリの開放忘れだったので、Test::LeakTrace

    Re: Re: perl 5.16.0 でメモリリーク? - Islands in the byte stream (legacy)
    tagomoris
    tagomoris 2012/07/31
    すごい、「これ怪しくねー?」から24時間で直るところまでいった!
  • Re: perl 5.16.0 でメモリリーク? - tokuhirom's blog

    http://d.hatena.ne.jp/tagomoris/20120731/1343713558 以下のコードで再現するので、Perl 5.16.0 のバグのようです。もりもりプロセスがふとっていきます。 use strict; my $kan = bless +{}, 'Kan'; my $code = sub { }; for (1..100) { for (1..1000) { for my $f ($code, $kan) { ref $f; } } my @x = split /\s+/, `ps aux|grep leak.pl|grep -v grep| grep -v vim`; print $x[5], $/; }ref のキャッシュ処理とかがバグってるとかですかね。 とりあえず perlbug しておきました。 see http://www.nntp.perl.o

    tagomoris
    tagomoris 2012/07/31
    ++
  • perl 5.16.0 でメモリリーク - たごもりすメモ

    Fluentd out_exec_filter から起動しているperlのプロセスがある。ApacheのアクセスログをSTDINから1行読んでparseしていくつか正規表現などで判定処理をしてフラグ立てなどをして、タブ区切りの1行として出力する、という処理としては割と簡単なもの。ただし秒間にけっこうな行数を処理する。 最近サーバを足したので、これまでと全く同じコードをデプロイしてえいやと起動してみたら、なんか突然メモリを馬鹿いするようになってた。既存のサーバはそんなことない。見てみたらperlのプロセスがやたらとメモリをってる。 既存サーバは perl 5.14.2 を使ってて、追加したサーバは何も考えず perl 5.16.0 を入れてみてたんだけど、そこの違いで起きるようだった。試しに追加サーバのうち1台を perl 5.14.2 に変えてみた(グラフの01:30頃の再起動がそう)

    perl 5.16.0 でメモリリーク - たごもりすメモ
    tagomoris
    tagomoris 2012/07/31
    めも。
  • Fluentd out_forward における最適化パラメータいくつかの話 - たごもりすメモ

    Fluentdのデータをネットワーク経由で転送するための組み込みプラグイン out_forward には最適化のための設定がいろいろあるが、内部構造への理解がないとなかなか意味がわからなかったりするものも多い。ので、あんまりいじってる人はいないんじゃないかという気がする。 最近複数の転送先へのロードバランスを out_roundrobin ベースの方法から out_forward の機能を使った方法に切り替えてみたので、ついでにそのあたりについて書いてみる。 (おまけ) out_roundrobin と out_forward(のロードバランス)の違い out_roundrobin は event stream の emit つまりFluentd内部における最小の配送処理単位ごとに配送先プラグイン(のインスタンス)を切り替える。可能な限り細かい単位で配送先をバラけさせたいときはこちらを使う

    Fluentd out_forward における最適化パラメータいくつかの話 - たごもりすメモ
    tagomoris
    tagomoris 2012/07/31
    書いた