タグ

ブックマーク / nyaxt.hatenadiary.org (4)

  • 2012-01-14

    DebianをX環境でつかうのがいやになってきたので、Arch Linuxを試してみる。 debianなれててとても使いやすいんだけど、gnomeなりなんなりを入れたとたん使わないろくに使わないパッケージが大量にはいってげんなり。 Arch Linuxだと最小限パッケージセットで使うのがdebianより徹底できそう。x86/x86_64以外の環境がサポートされてないのがちょっと気にかかるけど... とりあえずbootableに https://wiki.archlinux.org/index.php/Beginners%27_Guide#Select_an_installation_source isoをusbメモリにddするだけなので楽。pppとかwpa_supplicantとかいらなさげなので勝手に選択をはずす。ファイルシステムはxfsにしてみる。 設定 再起動するとすんなり起動する、

    2012-01-14
  • [linux] blktraceでIOボトルネックを探る

    今日はささだ研雑談会でした。 ファイルを読み書きするようなアプリケーションの最適化を行う際、実際どのようなIO命令が発行されているか知りたくなる。 小崎さん(@kosaki55tea)によるとblktraceを使うといいらしい! http://linux.die.net/man/8/blktrace 使い方を書こうと思ったけど、解説ページがそれなりにあったのでやめた。 mmap I/Oアプリケーションにおけるdisc sync ファイルを読み書きするようなアプリケーションにおいて、キャッシュの管理をOS任せにしても良いのならば、ファイル全体をmmapしてしまうと非常に楽にI/O処理を書くことができる。 しかし、mmapしてデータを書き込むだけで、即座にディスクにデータが書き込まれるわけではない。 明示的にmsync(MS_SYNC)を発行して同期を取る必要がある。 ここまでは一般的な話。

    [linux] blktraceでIOボトルネックを探る
  • 2011-01-31

    ちょっとはまった Linuxだと/dev/zeroから適当にmmapしてメモリ確保するけどmac os xでそれやるとこける。 かわりに-1をmmapするとよい。 #ifdef __linux__ int fd = ::open("/dev/zero", O_RDONLY); return mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); #elsif __APPLE__ return mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0); #endif ちなみにfd -1をMAP_PRIVATEは失敗するので、MAP_SHARED | MAP_ANONじゃないとだめぽい。 かってに#defineされる定数群を表示。 echo '

    2011-01-31
  • はやいTCPサーバの書き方 - nyaxtのPC作業ログ

    cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ
  • 1