色々な理由 でカーネルのイベントなどをトレースする方法を整理する必要が出て来たので。地道にやっていくシリーズ。最近シリーズものが続いてないのでまた中断される可能性が...。 今回は、カーネルのイベントソースとして tracepoint, kprobe, uprobe とい…
udzura.hatenablog.jp mrubyでやってる話は前したけど、CRubyでも動いた。 I have ported BCC's hello_world.py into Ruby(MRI), and named it RbBCC!! I continue to porting the rest of functionalities. Check it out:https://t.co/wqQBlHXwhb pic.twitt…
たまには「〜話」メソッドでブログを書く。あと6月は二回ブログを書けたのでめでたい。 さて、タイトルのようなことをしています。 前提としてeBPFという、カーネル内で動く特定の目的のプログラムを比較的高速・安全に書くための技術があるのですが、その…
タイトルは 575 です。相変わらず気ぜわしいので小ネタを投げます。 mruby は「ワンバイナリ」を作れるRubyとして知られています。ですが、実際にはlibcなどをダイナミックリンクします。それはそうでしょうという感じですが、例えばLinuxでmruby-bin-mruby…
Hey Rubyists, did you enjoy RubyKaigi 2019 in Fukuoka? I am @udzura. RubyKaigiがまずは終わった(残件はある)といいつつ本業も慌ただしく、すぐに 次のプロジェクト に入ってしまった感じでなかなかふりかえりモードになれない(なんならまだふりかえ…
ここ数日、 Grenadine (グレナデン)と名付けたOSSをやっていっていました。 github.com Grenadine は、CRIUを用いて、いわゆるコンテナ化をしていないような、VMにデプロイしているようなサーバ型アプリケーション(Webなら、Rails, Django, node.js ...)…
User Namespace の各コンテナでの対応状況その2。前回から引き続き: udzura.hatenablog.jp
シリーズ2回めです。今回もベースは自分のためのまとめであり、調査不足な点はぜひ突っ込んでください...。 前回: udzura.hatenablog.jp 今回から、User Namespace の各コンテナでの対応状況を見ていく。 コンテナの非特権に対する対応 前提として、前回のUs…
一般に同じアドレスを同じポートではlistenできない。しかし、ソケットのオプションに SO_REUSEPORT というものがあり、Linuxではカーネル3.9以降で利用できる。 ソケットを作成した後に setsockopt(2) で SO_REUSEPORT が有効になるように指定すると、同じ…
前のシリーズが終わる前に新シリーズを書いていく。 皆さんのIDはマッピングされていますか? User Namespace とは? まず、TenForwardさんによる日本語でのとてもわかりやすい解説がすでに存在するので、そちらを参照してから...。 gihyo.jp User Namespace…
前回から引き続き、PSIの謎(?)を追う。 udzura.hatenablog.jp
あらすじ PSIという新しいシステムプレッシャーの指標が Linux 4.20 から利用できます。という内容を前回のブログに書いた。 udzura.hatenablog.jp 今日はこのPSIについて、実際にシステムに負荷をかけたりして変動を眺める。
あけましておめでとう! では、今日はLinux 4.20より導入された PSI を試していきたいわけですが、まずは環境構築からやっていきたいとおもいます。今後、「〜していきたい」と言う表現が続きますが、そこは任意のユーチューバーやゲーム実況者の声に置き換…
Linux Advent Calendar 2018, 21日目の記事です。遅れて申し訳... しかし意外と皆様脱落者が... ともかく、やっていきます。 ちょいと最近やってることの話をしようと思っていて、今日はCRIUがプロセス/コンテナをリストアするときのプロセスツリーの戦略の…
結論を最初に 2019年4月15日の週は、 16日(火)に日本で初めての CloudNative Days Fukuoka が、18(木)〜20(土)に RubyKaigi 2019 が開催される、一週間のうち半分以上、前夜祭なども含めると実質毎日カンファレンスな週となります。 この機会に、福岡…
いや〜楽しかった。資料は以下です。 speakerdeck.com 一応、JKDというイベントの性質を考えて資料も英語にしました(口頭は日本語ですが...)。ちょっと時間がなくネイティブチェックもなくて、英語が怪しくてすみません...。 発表中、デモをしたので、特に…
この記事は GMOペパボ Advent Calendar 2018 の3日目の記事です... 本当に遅くなりすいません... さて、皆さんは、固定したいですか? ペパボは、 latest が最高!という文化の会社です(この記事唯一のペパボ要素)。 とは言え現実は社会なので、そういう時…
タイトルの通りですが、そのようになるそうです。 あー、先日下呂温泉で開催されたSWESTにて、Matzさんを交えて徹夜(!)でmrubyについて協議した結果です。思ったほどRAMが大きいマイコンばかりでは無く小さい物もふつーにあるので、mruby本体もちいさくあ…
人としてやっていると、いろいろなことがあります。今日はタイトルのことをまとめます。 コンテナとMount namespace LinuxのNamespace機能を用いて、コンテナの中で独立してマウントポイントの情報を持たせることができます。 具体的な例として、以下のよう…
シェル大活用講座が開かれたのでハングアウトでお話をした。 pecoがやっていること自体は、 @hsbt さんが紹介したfishなどを使うと別のプラグインで、よりシェルに統合された形でファジー検索を利用できたりもするのですが。 www.hsbt.org peco 自体はUNIX的…
私が住んでいる市の自治体がこのような取り組み - エンジニアフレンドリーシティ宣言(efc)をしています。 efc.isit.or.jp その取り組みのキックオフイベントに行ってまいりました。普段お世話になっている id:edvakf さん、 id:matsumoto-r さんを始めとし…
fork(2) したら子プロセスができる、皆さんもそう思っていると思います。fork(2)でプロセスを作って親でwait(2)などをして面倒を見る、というのがUNIXのプロセスの作り方の基本です。 例えばparentというプログラムをforkし、child 1からさらにchild2をfork…
下半期は1ヶ月ごとに雑でもちゃんと振り返るというのをやっていきたい といったはずが盆も過ぎてしまった。今までの分でも書いておこうと思う。次は9月頭だが、振り返る期間が短い...。
こんばんは、皆さんはチェックポイントアンドリストアでしょうか。そのようにやっていきましょう。今日はCRIUの話をします。 CRIU について プロセスのチェックポイントイメージを取り、そのイメージからプロセスを再生する技術です。LinuxではだいたいCRIU…
2014年からベストエフォートでやっているFukuoka.rb、この度100回目ということで少しだけ拡大版でお送りした。 fukuokarb.connpass.com 発表資料などは上のイベントページに纏まっている。
前提 v1のドキュメントを眺めて全貌を把握しようとしています v1のドキュメント自体はoutdatedとされています v2の場合については今後検証予定ですが、大きく変わらないかと思うので参考になると思います 用語などまだ曖昧な理解なので、優しく突っ込んでい…
社で提出した振り返り資料をベースにパブリックでも書いとこうかと思う。
本稿は、第2回WSA研究会で発表した内容の予稿である。末尾に当日の質疑応答を追記している。 websystemarchitecture.hatenablog.jp 発表スライド speakerdeck.com
Rubyを書いていると、サーバを書きたくなることがあります。皆さんもそうだと思います。 ということで今日はRubyでスッとサーバを書くためのgem、serverengineの簡単な使い方メモ。 github.com Rubyでサーバを書きたくなった時 そもそも的に、Rubyでただサー…
急にinitが何をしているのか、何をすべきなのかが気になったので調べてみた。一緒に600行強のinit実装であるtiniのソースコードをざっくり読んだ。この場を借りてメモしていく。 the PID 1 problem RubyコミュニティなどではPassengerで有名なPhusion社のブ…