タグ

ブックマーク / qiita.com/sonots (7)

  • mmap と free と ps と cgroup - Qiita

    とある python ライブラリが mmap(2) を使ってファイルを MAP_SHARED | MAP_POPULATE flags 付きでメモリに読み込んでいたので、その時 Linux メモリ管理系ツールではどういう挙動になるかチラ裏。 mmap お試しコード #include <fcntl.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/stat.h> #include <unistd.h> #include <stdio.h> int main() { int fd = open("abc.txt", O_RDONLY, (int)0400); off_t size = lseek(fd, 0, SEEK_END); printf("start\n"); char* addr = mmap(NULL, size,

    mmap と free と ps と cgroup - Qiita
  • オレオレ rbenv 運用 Tips - Qiita

    # /etc/profile.d/rbenv.sh if [ -d "$HOME/.rbenv" ]; then export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init --no-rehash -)" fi ポイントは2点あって、 /etc/profile.d/rbenv.sh に設定を書く eval "$(rbenv init --no-rehash -)" のように --no-rehash を付ける 理由としては は /etc/profile.d ならばファイルの分割ができ、~/.bash_profile よりも綺麗に整理できるため。また >> で追記する必要がないので、冪等性を保ちやすくプロビジョニングツールで設定を記述しやすいため。 は rbenv init - はデフォルトでは rbenv rehash もするが、rbenv

    オレオレ rbenv 運用 Tips - Qiita
  • embulk-output-vertica プラグインのご紹介 - Qiita

    Embulk Advent Calendar 2015の8日目の記事です。 こんにちは @sonots です。昨日に引き続き、淡々と拙作のプラグインの紹介をしようと思います。 日紹介するのは embulk-output-vertica プラグインです。 URL: https://github.com/sonots/embulk-output-vertica 弊社以外にまだユーザがいなさそうなプラグインですが、Vertica 運用の知見を盛り込んだ出来になっているのがこちらのプラグインです。なんと Vertica にデータを投入することができます。See Also 何故DeNAがverticaを選んだか? 先日書いた embulk-filter-column や embulk-filter-row はパフォーマンスを考えて JRuby ではなく Java で書いているのですが(See Al

    embulk-output-vertica プラグインのご紹介 - Qiita
  • OSS版 drone.io をソースからビルドする (CentOS 7) - Qiita

    コードをカスタムしたかったので、rpm からではなく、自分でビルドして立ち上げたメモ Ubuntu な方はこちらの記事を見ると良い。家も Ubuntu でビルドしているようなのでその方が確実 > http://qiita.com/udzura/items/460827c53c93ddcc28cf Goのインストール golang の最新は 1.4.x であるが、drone は 1.3.x を使ってビルドしているっぽい?ので 1.3.3 を入れることにする。 wget https://storage.googleapis.com/golang/go1.3.3.linux-amd64.tar.gz tar zxvf go1.3.3.linux-amd64.tar.gz mv go /usr/local/ export PATH=$PATH:/usr/local/go/bin

    OSS版 drone.io をソースからビルドする (CentOS 7) - Qiita
    clavier
    clavier 2015/07/12
    OSS版 drone.io をソースからビルドする (CentOS 7) - Qiita
  • Fluentd v0.12 ラベル機能の使い方とプラグインの改修方法 - Qiita

    Fluentd v0.12 には Fluentd v0.12 is Released で言及されているように、「ラベル」という機能が追加されています。記事ではラベル機能の使い方、またラベル機能に対応するためにプラグインを改修する方法について解説します。 概説 このラベルという機能は、「内部ルーティングするのに add_tag_prefix したり remove_tag_prefix したり、タグ設計するのめんどくさい!!」という声にお答えして追加されたものです。 ラベル機能を使う事によって、タグを改変することなく、内部ルーティングすることができるようになります。 ラベル機能の導入によって、以下のような利点が生まれていると思います。 タグをいじることが(ほとんど)なくなったので、オリジナルのタグ情報を保てるようになった。 Fluentd 体がサポートする機能なので、プラグイン作者が個別に

    Fluentd v0.12 ラベル機能の使い方とプラグインの改修方法 - Qiita
  • Ruby でラインメモリプロファイラ - Qiita

    プロファイラ好きなモニタの前の皆さんこんにちは。@sonots です。この記事では、Ruby コードのどの行がどのぐらいメモリを消費しているか調べる方法を紹介します。 オブジェクトの数を数える Ruby には ObjectSpace というオブジェクトの情報を集めたり操作したりする module があります。 このモジュールの each_object メソッドを使用すると、RubyVM 上の全てのオブジェクトを取り出すことができます。 このメソッドを使って、以下のようなコードを書くと、実行した地点で、RubyVM 中にどのクラスのオブジェクトが何個存在しているのかカウントできたりするわけです。興味深いですね! ObjectSpace.each_object.inject(Hash.new 0) {|h,o| h[o.class]+=1; h } #=> {Class=>241, Strin

    Ruby でラインメモリプロファイラ - Qiita
  • Fluentd の debug_agent 経由で ruby-prof を起動する - Qiita

    Fluentd の debug_agent (druby) 経由で RubyProf.start/stop できるようにして、任意のタイミングで外からプロファイラを起動/終了できるようにしたい。 Fluentd の設定 ruby-prof gem を入れておく

    Fluentd の debug_agent 経由で ruby-prof を起動する - Qiita
  • 1