ブログ書くまでがペパボテックカンファレンス!というプレシャーをうけたので、一昨日(7/4)、福岡天神で開催された「第2回ペパボテックカンファレンス」について記録。

5時間超におよぶカンファレンスに参加してくださったみなさま、本当にお疲れ様でした。

@takesi_yosimura さんが、twitter をまとめてくださっていました。ありがとうございます!また、@kimroi さんは発表スライドをまとめてくれていました。ありがとうございます!

続きを読む

先日会社で「mysql のテーブルと、プロセス上の共有メモリを連携させたい」って話が出たとき、トリガで外部プログラムが実行できればいけるのでは?と思ったので、調べてみた。

MySQL で外部コマンドを実行するには

mysql で外部コマンドを実行するには system が使える。

mysql> system uname -a
Linux cent6 2.6.32-504.16.2.el6.x86_64 #1 SMP Wed Apr 22 06:48:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ただ、これはターミナル上からとかでないと使えない。

調べてみると、mysql には UDF(User Defined Function) という仕組みがあって、自作関数を作成することができるらしい。これは、C や C++ で書いて共有ライブラリ(.so)を作成し、mysql の plugindir に放り込めば使えるようになる。

続きを読む

cgroup には複数のサブシステム(controller)があるが、その中の cpu.shares について検証してみた。

cpu.shares とは

cpu.shares を設定すると、タスクが使用できる CPU 時間の割合を変更することができる。

具体的に言うと、A B2つのグループを作り、cpu.shares をそれぞれ1024 2048とした場合、B のグループにいるプロセスが、A のグループにいるプロセスより 2倍 CPU を使えるようになる。以下、実行例。

続きを読む

Linux でコンテナといえば docker しかさわったことがなかった。LXC は docker よりシンプルで面白そうだったので、勉強用に先づ rpm を作成した。

環境

  • LXC: 1.1.2
  • OS:
    • CentOS6.6 (2.6.32-504.16.2.el6.x86_64)
    • CentOS7.1 (3.10.0-229.el7.x86_64)

続きを読む

cgroup の通知API

cgroup の memory サブシテムを利用すると、登録したプロセスがメモリを使いすぎた際、oom-killer が動作し、対象プロセスを kill することができる(デフォルト動作)。

kill されたことは syslog など見ればわかるが、cgroup には通知APIといった機能があり、アプリ側で oom-killer が動作した際のイベントを受け取ることが可能なので、この機能を試してみる。

続きを読む

mruby-cgroup は、mruby から cgroup を利用するためのモジュールで、いわゆる libcgroup のバインディング。現在、mruby-cgroup 9cad17343 で対応しているサブシテムは以下のとおり。

  • cpu
  • cpu_set
  • cpu_acct
  • blkio

他に、cgroup のサブシステムには以下のようなものがある(CentOS 6.4)

# cat /proc/cgroups
#subsys_name    hierarchy   num_cgroups enabled
cpuset  10  1   1
ns  0   1   1
cpu 11  1   1
cpuacct 12  1   1
memory  13  1   1
devices 14  1   1
freezer 15  1   1
net_cls 16  1   1
blkio   17  1   1
perf_event  0   1   1
net_prio    0   1   1

この中から、簡単に使えそうな memory サブシステムを追加してみた。

続きを読む

mruby-cgroup とは

mruby-cgroup は、@matsumotory が開発している mruby から cgroup を利用するためのライブラリ。

https://github.com/matsumoto-r/mruby-cgroup

cgroup は linux カーネルの機能で、タスク(プロセス)のリソース(CPU, メモリ, IO, etc)を制御するための仕組み。 これを利用すると「特定のプロセスが CPU100% 使うような処理を行っても 50% しか利用させない」といった制御ができるようになる。

続きを読む

DISQUS はコメント機能を提供するサービスで、hexo では簡単に導入できる。 DISQUS の管理ページにある Shortname を設定するだけ。ただ、自分が使っているテーマ light ではうまく表示されなかったので、テーマの設定にある comment_provider に facebook 以外の文字列を設定して対処。 hexo config disqus_shortname harasougithubio hexo --config themes/light/_config.yml config comment_provider disqus

続きを読む

プロフィール画像

harasou

めくじらを立てない

Infra Engineer

Fukuoka Japan