読者です 読者をやめる 読者になる 読者になる

VirtualBox + CentOS6.5 + Mac で 仮想CPUの数を増やすと SSHのシェル操作が遅い - その2

前回の続きエントリ ですhttps://blogs.oracle.com/LetTheSunShineIn/entry/running_perf_top_on_virtualbox に書かれていた設定にすると smp_affinity を変えなくてもシェルプロンプトのキー操作のレスポンスが改善しました I thought high kernel CPU was …

VirtualBox の shared folder で sendfile(2) がバグってるやつを調べた

Vagrant というか VirtualBox の話でゲストOS が Linux の話です。 sendfile(2) のバグ Nginx や Apache で sendfile(2) サポートを有効にしていると VirtualBox の shared folder ( /vagrant ) のファイルを ホストOS側からで更新しても反映されないバグが…

VirtualBox + CentOS6.5 + Mac で 仮想CPUの数を増やすと SSHのシェル操作が遅い

VirtualBox 4.3.8 + CentOS6.5 + Mac (Mavericks) でゲストの仮想CPUの数を増やすと SSHのシェル操作がやったら遅いという問題があります。シェルでキー入力する度につっかかる感じがあります。VirtualBoxのドキュメントや Linuxカーネル周りでいろいろ調べ…

vagrant-persistent-storage に pull request マージしてもらった

vagrant-persistent-storage は Vagrant( VirtualBox) のゲストにディスクイメージをアタッチ、ファイルシステムの初期化、起動時のマウントまで面倒をみてくれる便利ツールです。便利なのですが mount オプションが defaults に固定されていたので、自由に…

negative dentry と tmpfs で negative dentry がキャッシュされない理由について調べた

kazeburo さんの 一時ファイルとdentry cacheとメモリ を読んでからしばらくファイルシステム周りを調べていたのでした。先のエントリで /tmp のファイル作成/削除を繰り返して dentry キャッシュ がもりもり溜まっていくのは negative dentry であることが…

ltrace でスレッドをトレースすると変

ダイナミックライブラリの呼び出しをトレースできる便利な ltrace ですが、 ltrace -p でメインスレッド以外のスレッドのLWP番号を指定してトレースしようとすると変な挙動になるのに気がつきました。 変な挙動 [vagrant@vagrant-centos65 ~]$ sudo ltrace -…

続 Vagrant (VirtualBox) でシリアルコンソールに繋ぐ

Vagrant (VirtualBox) でシリアルコンソールに繋ぐ というエントリを書いたその続きVirtualBox のシリアル通信?のオプションである --uartmode を今一度調べたら コンソールログをファイルとしてもホストOSに書き出せるようになっていました。 $ /Applicatio…

Vagrant (VirtualBox) でシリアルコンソールに繋ぐ

Vagrant というか VirtualBox ですが、シリアルコンソールに繋ぐ方法調べたので書いときます。ゲストOS が Linux の時に Oops のログを全部取りたくて調べてたのでした。 で、シリアルコンソールの設定 Vagarntfile は下記の通りに書いときます # http://en.…

Mac の iMovie 10.0.2 で 共有 -> ファイルがコケて困っていた

iMovie で 共有 -> ファイル で動画をローカルに書き出そうとしたら、途中で表示されるダイアログのボタンを押しても応答しない現象にぶちあたって困ってました。/var/log/system.log には以下のようなバックトレースが出ていました。 # 長いのでインデント…

memcached に送ったセキュリティパッチが 1.4.17 でマージされていた

だいぶ前に memcached の SASL認証に不備があるのを見つけていてパッチを送っていたのでしたが、ようやくマージされて 1.4.17 のリリースに入っていたのに気がつきました Memcached 1.4.17のリリースノート GitHubでのコミット確認 JVNDB-2013-005840 認証を…

docker on CentOS6

[vagrant@localhost ~]$ sudo yum install http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm [vagrant@localhost ~]$ sudo yum install docker[vagrant@localhost ~]$ docker Segmentation Fault or Critical Error encountered. …

Subsonic で UTF-8 の文字列が入ったファイルの transconding がコケる

Subsonic は Mavericks な Mac で動かしていて、 /Applications/Subsonic.app/Contents/Info.plist に -Dfile.encoding=utf-8 足したら解決した。 <key>VMOptions</key> <string>-Xmx150m -Dfile.encoding=utf-8</string>transcoding (ex. Apple Lossless -> mp3) の時だけコケててなんだ…

味わい深い Linux Kernel の Chanelog

drm/radeon: forever loop on error in radeon_do_test_moves() commit 89cd67b326fa95872cc2b4524cd807128db6071d upstream. The error path does this: for (--i; i >= 0; --i) { which is a forever loop because "i" is unsigned. え あ なるほどw とな…

procfs の hidepid オプション

Linuxカーネルの Changelog を斜め読みしていたら hidepid オプションなるものが出ていたのを知りました。 ps や top 等のコマンドを使うと他ユーザのプロセス名やその他の情報を procfs (/proc) を通していい感じに参照できますが、procfsの仕組みとしてこ…

Windows System Programming を買った

序文がウケる I have found the Windows API easy to learn to using this approach, and I have greatly enjoyed developing Windows programs, despite occasional frustration. Windows System Programming Third Edition - Preface Windows System Progr…

Docker を Scientific Linux 6 で動かす

面倒でした。特別な理由 (勉強目的、興味本意、何が何でもSL6が使いたい ) がないなら Ubuntu で動かしたら良いと思います ... 用意するもの Docker を SL6 で動かすに当たっていろいろ自分で用意しないといけません Aufs 付きカーネル iptables で足らない…

Provisioning Frameworks Casual Talks vol.1 で発表しました

ペパボのPaaSサービス SqaleのPuppetとChetとテストについて発表しましたスライド http://www.slideshare.net/hiboma/sqale-puppet-chef 要点をあげておきますと 一般的なWebアプリ ではなくホスティング商材な内容です PuppetとChef を一緒に使っていますが…

crond の -x オプションについて

おいちゃん(さん) こと id:inouetakuya の MySQL ログのローテーション設定(logrotate)(flush-logs が cron で動かないときの対処を含む を読んだ後、cron のデバッグ用のオプションって何かあるのかな〜 と man 8 crond を眺めていました。 -x オプショ…

Apache の mod_cgid と surrogate parent model について

monit のデッドロックを追っていた件から派生して、 pthread 全然知らんなーということで表紙がきもちわるいことで有名な(?) 『Pthreadsプログラミング』を読んでました。 Pthreadsプログラミング作者: Bradford Nichols,Dick Buttlar,Jacqueline Proulx Far…

Apache MPM worker の pmap が分からんという話から Linux pthread (NPTL) のスタックサイズとガード領域まで

ひょんなことから 32bit カーネルで動いている Apache (MPMは worker = マルチスレッド) を /usr/bin/pmap で調べていました。調べている中で pthread のスタックの割当テ方にも興味がわいたので glibc なども深追いして調べました。以降の内容は次の環境で…

monit 5.4 のバグ - マルチスレッドでfork(2)してデッドロック

プロダクション環境で使用していた monit 5.4 がデッドロックを起こしていたので調査をしていました。なお、本エントリで記述されているバグは monit 5.5 で修正されています 要約 長い内容なので最初にまとめておくと monit はマルチスレッドアプリケーショ…

gdb のRPM に付属する /usr/bin/gstack, /usr/bin/gcore コマンド

Scientific Linux 6 系の gdb の RPM に /usr/bin/gstack, /usr/bin/gcore というスクリプトが含まれているのを知りました。どちらも gdb をラップしたシェルスクリプトです。 (追記: CentOS5 の gdb にも入ってました ) /usr/bin/gstack 指定したプロセス(…

Professional Linux Kernel Architecture 本が届いた

Professional Linux Kernel Architecture (Wrox Programmer to Programmer)作者: Wolfgang Mauerer出版社/メーカー: Wrox発売日: 2008/10/13メディア: ペーパーバック購入: 2人 クリック: 40回この商品を含むブログ (3件) を見るどうだ、厚いだろう。計って…

技術書の日本語訳を読むとむしろ分からないという話

「古めの技術書の日本語訳を読むと、むしろよく分からないことありますよね」という話を昼飯時の雑談で交わしていた。具体的な例を提示できないまんま雑談は終わってしまったのだけど、どんな例があったかなと家で書籍をひっくり返したら Copy-On-Write が …

ゾンビプロセス という抽象、比喩

↓ の本を読んでいたところ、ゾンビプロセスに関して下記の様に記述されていました。The Design and Implementation of the 4.3Bsd Unix Operating System作者: Samuel J. Leffler,Marshall Kirk McKusick,Michael J. Karels,Quarterm出版社/メーカー: Addiso…

Operating System Concepts を買った

神保町 明倫館書店の店先で、のざらし && 叩き売り状態になっていたのでササっと購入です。 Amazon だとこれか。もっと新しい版(内容も新しい)もたくさんでております。Operating System Concepts作者: James L. Peterson,Abraham Silberschatz出版社/メーカ…

The Design of the Unix Operating System のペーパーバックが届いた

The Design of the Unix Operating System作者: Maurice J. Bach出版社/メーカー: Prentice-Hall発売日: 1986/10/01メディア: ペーパーバック クリック: 12回この商品を含むブログを見る↑の古本を注文したらペーパーバック版が届いたのだけど、なんかヤボっ…

1975年の echo.c

はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ の予習ということで Sixth Edition Unix のソースを読んでいます。で、ユーザランドで動くコマンドのソースを漁っていたら、みんな大好き echo のソースを見つけました。 mtime が1975年 5月…

Subsonic Hacks

自宅のMacに Subsonic をインストールして家の外(iPhone App, 会社!)からアクセスできるようにしています。(過去エントリ http://d.hatena.ne.jp/hiboma/20110702/1309591830 ) だいたい便利なのですが、ひじょーに細かいで不満があったので自分でパッチを当…

Macbook Pro のバッテリー

会社で使ってる Macbook Pro のバッテリーが猛烈な勢いでヘタってます。これはバッテリーの残量のグラフ こっちは 7月 ~ 10月 で拡大した図8月中旬あたりから下降の兆しが見えてるのですが、何かあったのかなー グラフの出し方は このエントリで書いてます h…

Sqale開発中に遭遇したバグ その1

Sqale(スケール) の開発中に 2~3個 カーネルのバグ踏んであれこれ調べたので、経緯を公開。 LXC、chef-solo で作ってます Sqale(スケール) ではユーザーがデプロイするRackアプリケーションを LXC(Linux Container) 内で動作させています。LXCの環境は chef-…

www.pogoapp.com using "nginx + lua + redis"

pogoappという新手のPaaSさんで WebアプリへのHTTPリクエスト振り分けに nginx + lua + redis を使ってる、という記述をみつけましたhttp://www.pogoapp.com/ Incoming HTTP requests are handled by a pair of dynamic web proxy servers, backed by nginx+…

Cloud Foundry + nginx + lua

hsbtさんに「Cloud Foundry が nginx + lua 使ってるよー 」と教えてもらいました。(画像引用: http://communities.vmware.com/themes/cto/static/CF_April_11_Event.pdf )確かにある。ちゃんと名前書いてないけど https://github.com/chaoslawful/lua-nginx…

ruby で cgroupのeventfd通知機能利用して メモリ使用量や OOM Killer を監視する

Linux Containerでも使われている cgroup には 、メモリ使用量が閾値より高くなったか/低くなったか や OOM Killer が発生したかどうか といったイベントを eventfd を通じて受け取れるようになっています。この仕組みを ruby から扱う方法を調べてみました…

[ruby] rubyで unsahre(2) 呼び出して マウント名前空間を分離する

ruby で unshare(2) というシステムコールを呼び出してマウント名前空間を変えてみる小さいコード書きました。unshareについては http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/unshare.2.html コード たぶん rubyあんま関係無い # /usr/include/a…

ruby facter の罠

puppetでも使われてるシステム構成情報をいい感じに取ってくれる rubyのfacterというgemがありますが、なかなかワイルドな人です * llib/ruby/gems/1.9.1/gems/facter-1.6.8 module Facter # 中略 # Set LANG to force i18n to C # ENV['LANG'] = 'C' #!/usr…

カジュアルに Nginx で Lua したい -- openresty(ngx_openresty) 使う

openresty(ngx_openresty) として配布されてる tarボールを使うと 手っ取り早く Nginx で Lua +α する環境が作れます。超便利。 一例: OSXの場合 事前に homebrew も入れておいてね brew install prce wget http://agentzh.org/misc/nginx/ngx_openresty-1.0…

ruby1.9.* で lxc-attach のバインディング書いてみたら動かなかったので カーネルまで追って調べたログ

LXC(Linux Container) で lxc-attach というコマンドが提供されています。シェルを介すると扱いにくい場面があるので rubyから直接扱えるようにC拡張を書いてみました。....のですが 1.8系だと動作し 1.9系だと動かなかったので原因を追ってみました。rubyの…

mac の zsh で、表示されてるコマンドラインを手早くクリップボードにコピーしたい

# 名前はなんでもいい pbcopy-buffer(){ print -rn $BUFFER | pbcopy zle -M "pbcopy: ${BUFFER}" } zle -N pbcopy-buffer bindkey '^x^p' pbcopy-buffer ↑ を読み込んで、 Ctrl + X Crtl + P を押す。 するとコマンドラインを実行せず、表示したまんまでク…

nginx + lua + redis のやつ

自分が書くよりずっと前に http://openresty.org/#DynamicRoutingBasedOnRedis でほとんど同じ内容のエントリがあがってました ( こちらの例では HTTPヘッダのHost名でなくて User-Agentでルーティングしてますが)なんかパクったみたいで恥ずかしい! 無いと…

lua-nginx-module tips - luaで動的にNginxのドキュメントルートを変更

Nginxのlua-nginx-moduleでドキュメントルート(root)は変更できるのかと、同僚 id:lamanotramaさんに質問もらってたので検証です。ちょっと前に書いた lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 と比べて小粒…

lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案

Nginxは非常に強力なhttpdですが、独自のモジュールを実装しようとするとこれまた非常に敷居が高い印象です。 追記 この記事よりも前に http://openresty.org/#DynamicRoutingBasedOnRedis でほとんど同じ内容のエントリが書かれていました。こちらも参照く…

寿司ダイアリー

寿司ブログからお誘いがこないので ランチで寿司を食べた。

MacBook Pro, MacBook air (Snow Leopard) のバッテリーの容量を半年程モニタしたグラフ

mac

私物のMacBook Pro (13inch) , MacBook air (11inch) と、会社で私用している MacBook Pro (15inch) のバッテリー容量を 半年程 はてなグラフに数値を投稿してモニタリングしていたので 公開します。 発端 Macのバッテリーに関する情報は /usr/sbin/ioreg を…

initプロセスをstraceする

initプロセス ( pid = 1 ) を strace できることを昨日知りました下のログは Ubuntu Server、カーネルは 2.6.38 で実行したものです # strace -p 1 Process 1 attached - interrupt to quit select(11, [3 5 6 7 8 9 10], [], [7 8 9 10], NULL) = ? ERESTAR…

[linux] abstract socket address

netstat で UNIXドメインソケットを見ると、先頭に '@' が付いてるパスとそうでないものがある。 # netstat -ax Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 5826 @/…

[linux] /sbin/capsh

ケーパビリティを確認したり root@ubuntu: # capsh --print Current: =ep Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap…

webistrano の REST API たたいてデプロイ

webistranoは REST API持ってて、デプロイするだけなら ↓ のようにして叩いたらokでした $ curl -i -H"Content-Type: text/xml" --user hiroya:password --data-binary '<deployment><task>deploy</task><description>ターミナルからwebistrano</description></deployment>' http://localhost:3000/projects/1/stages/1/d…

OS Xでmdsプロセスを止めているとApp Storeが使えなくなるので注意ね

App StoreでアプリやLionをインストールしようとすると、App StoreがCPU掴んだままハングする現象に悩まされてました。(数週放置...)本腰いれて調べたら mdsプロセス(Spotlightの索引つくるプロセス) を止めていたのが原因。 ちょっと古めの Leopardなんかが…

[music] Subsonic所感

Subsonic 便利ですね。さくらVPSではなくて、家のMacにいれて DynDNSでホスト名を当てて使ってます。曲数が多くてもインポートの時間が全然かからないのがいいなと思いました。あとMacの場合パッケージでインストールが完了しますのでお手軽に試せます アク…