タグ

ブックマーク / kazuhooku.hatenadiary.org (9)

  • Mac OS Xで、再起動せずにスワップを解放する方法 - kazuhoのメモ置き場

    Mac を使っていて、だんだん動きがもっさりしてきたなー*1と思って /private/var/vm/ 下を見ると、案の定スワップファイルが溜まっていることがある。 こういうケースでの対策としては、・スワップ禁止にする、・/usr/sbin/purgeする、・再起動する、といった手があるけど、スワップ禁止にするのは当にメモリ不足になる可能性を考えると怖いし、purgeはスワップアウトしたデータを回収してくれないので効果は一時的だし、再起動はめんどい。 そんな場合は、処理が落ち着いたタイミングで以下のようにして、スワップを実メモリに書き戻せばよい*2。スワップファイルも全部消える。 $ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist $ sudo launchctl load

    Mac OS Xで、再起動せずにスワップを解放する方法 - kazuhoのメモ置き場
    satoship
    satoship 2015/02/07
  • LTSV のもうひとつのメリット、あるいは、プログラムでログを出力する際に気をつけるべきこと - kazuhoのメモ置き場

    Labeled Tab-separated Values (LTSV) がブームのようです。 LTSV については、ラベルをつけることで柔軟に拡張できるという点が、その特徴として取り上げられますが、もう一点、タブをセパレータに使うことでログのパースが簡単になった、という点を忘れるべきではないでしょう。 特に httpd のログは NCSA httpd という HTTP/0.9 時代のWebサーバのログフォーマットがベースに拡張されてきたため、以下のようにセパレータとして空白、[]、ダブルクォート ("")*1が混在するという、とても処理しづらいものになっていました。どれほど複雑かは「404 Blog Not Found:perl - Apache Combined Log を LTSV に」の実装を見れば明らかでしょう。 127.0.0.1 - - [08/Feb/2012:23:52:4

    LTSV のもうひとつのメリット、あるいは、プログラムでログを出力する際に気をつけるべきこと - kazuhoのメモ置き場
    satoship
    satoship 2013/02/09
  • C++ のヘッダファイルを #include するだけで使える GC 書いてみた - kazuhoのメモ置き場

    そういえば C++ のヘッダファイルを #include するだけで使える GC を書きました。使い方は下のサンプルコードを見てもらえばいいとして、特徴としては、 ヘッダファイルを #include するだけで使える C++ の標準機能だけを使っているのでポータブル*1 mark-and-sweep, precise GC ってなあたりでしょうか。コードは GitHub - kazuho/picogc: a tiny, portable, precise, mark-and-sweep GC in C++ にあります。 C++プロジェクトで、ちょっとここだけは GC がほしいんだけど、ってなケースで使いやすいと思います。速度も、そこそこでるんじゃないかな*2。 というわけで、以下、サンプルコード。軽く説明しておくと、 GC を使うクラスは picogc::gc_object を継承する

    C++ のヘッダファイルを #include するだけで使える GC 書いてみた - kazuhoのメモ置き場
    satoship
    satoship 2012/04/08
  • SSD がコモディティになっても状況はかわらない - kazuhoのメモ置き場

    脊髄反射。 OracleMySQL など近年の RDBMS はインデックスのデータ構造にB木 (の変種) を採用していますが、その理由はここにあります。 SSD がコモディティになると状況は変わる (中略) 二次記憶上での検索用のインデックスにはこれまで B木のようなディスクに最適なデータ構造が必然的に選択されてきましたが、SSD に変わると、現実的に利用可能なデータ構造にも幅が出て、アプリケーションによっては劇的な改善が可能になるというわけです。 この先 SSD の普及によって、色々なソフトウェアで、驚くような改善が行われる機会を目にすることが多くなるのではないかと思います。その時、単に SSD に変わったから速くなったと捉えるのではなく、どのようなデータ構造が選択されて、そのデータ構造の特性が SSD とどのようにマッチしたのかという視点で見ていくことが大切ではないかと思います。

    SSD がコモディティになっても状況はかわらない - kazuhoのメモ置き場
    satoship
    satoship 2012/03/12
  • ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない - kazuhoのメモ置き場

    タイトルは煽り入ってますが。 仮に動的ページを生成するのにかかる時間が1秒、そのうちデータベースやmemcached等リモートサーバへの問い合わせ時間を除くいたCPUの処理時間が0.1秒とする。また、ピークのリクエスト処理量は、平均の2倍とする。 そうすると、クアッドコアのアプリケーションサーバで処理できるリクエストは、 4 core * 10 reqs/sec * 86,400 sec/day * 30 day/mon / 2 = 51,840,000 reqs/mon と、約5,000万PV/月を1台で捌けることになる。 CPUが動いている時間は全処理時間の10倍と仮定したわけだから、アプリケーションサーバの最大同時接続数は 4 core * 10 = 40 程度あればいいことになる。実際には、安全係数を2倍かけて 80 とか。リクエストの処理に必要なメモリ量を 100MB とすると、

    ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない - kazuhoのメモ置き場
    satoship
    satoship 2009/12/27
  • ウェブ業界の15年、これからの10年 (Re ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない) - kazuhoのメモ置き場

    先のエントリ (ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない) ではボトムアップに煽った書き方をしたけど、自分がトップダウンでどういうふうに捉えているかについて。以下、あくまでも私見です。 いわゆるネット業界は1990年代後半に始まってから15年くらいたったわけだけど、当初はマスメディア(静的コンテンツの配信)が業界の中心だったのが、パーソナライゼーションを経て、コミュニケーションツールへと変化してきた*1。 それにあわせて技術的な面でも分化が進み、今ではデータベースとアプリケーションサーバと httpd っていう三層構成が一般的になっている*2。 そもそも Apache って、モジュールをC言語で a-patchy に書いて動的コンテンツを作れるのが売りだったわけだけど、今じゃコモディティ化を通り越してレガシーソフトウェアの代表格。でもみんなあんまり困ってないの

    ウェブ業界の15年、これからの10年 (Re ウェブアプリケーションサーバを複数台構成とか2010年代には流行らない) - kazuhoのメモ置き場
    satoship
    satoship 2009/12/27
  • linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場

    Perl等のLLでウェブアプリケーションサーバを書いていると、普通はマルチプロセスモデル (apache なら prefork とか) で運用することになると思う。で、それらがどれだけメモリを使っているか、っていうのはチューニングにおいて重要になってきたりする (んじゃないかと思う) けど、そもそもメモリの総使用量をどうやって測定するのか。 20:20追記: PSSを使ってワンライナーで測定するのが簡単 (コメント欄参照)。kosakiさんありがとうございます。 $ sudo perl -le 'for my $p (@ARGV) { open my $fh, "< /proc/$p/smaps" or die $!; map { /^Pss:\s*(\d+)/i and $s += $1 } <$fh> } print $s' `pgrep plackup` 914325以下は初回投稿時

    linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場
  • 自作って得なのかなと思って計算してみた (自作サーバカンファレンス感想) - kazuhoのメモ置き場

    一昨日、自作サーバカンファレンスに参加してきました。とてもおもしろく色々刺激をうけました。はてなの田中さん楽天の方々始め、スピーカーの皆さんありがとうございました。ただ分からなかったのは、サーバを自作する必然性がどの程度あるのかな、という点でした。 確かに、発表者の方々が構築されているような、1CPU, 8GBメモリのような構成では、自作サーバには(少なくとも原価ベースでは)価格競争力があるようです。はてなさんは Core 2 Quad + 8GBメモリ + X25-M (SSD) で10万円という目安を提示してらっしゃいましたが、同等の構成をベンダーから購入するとなると、1.5〜2倍の価格になるのかな、と思います。例えばDELLのオンライン価格*1は以下のようになっています*2。 DELL PowerEdge R200 - \145,900- Xeon X3330 (2.66GHz, Q

    自作って得なのかなと思って計算してみた (自作サーバカンファレンス感想) - kazuhoのメモ置き場
  • シングルマスタ/マルチスレーブ構成に興味がない理由 - kazuhoのメモ置き場

    システム全体で必要な書き込みパフォーマンスが、RDBMSノード1基の IOPS の W% の場合、シングルマスタ+スレーブn台構成のシステム全体のパフォーマンスは、 書き込みパフォーマンス: W 読み込みパフォーマンス: R=(1-w)*(n+1) になる。この n=R/(1-w)-1 って w が増加するとスレーブ増設のメリットが加速度的に失われていく点がイヤ。 例えば、システム全体で要求される書き込みパフォーマンスが W=0.3 で、読み込みパフォーマンスが 3 ならば、シングルマスタ/マルチスレーブ構成で必要なノード数は5台。マルチマスタ構成を採った場合でも理想値は4台なので、そう遜色があるわけではない。 しかし、仮に必要なパフォーマンスが2倍 (W=0.6, R=6) になると、必要ノード数はマルチマスタ構成での8台に対し、シングルマスタ/マルチスレーブ構成では16台と、一気にコス

    シングルマスタ/マルチスレーブ構成に興味がない理由 - kazuhoのメモ置き場
  • 1