threads.xsで使われているインタプリタスレッドの構造についてまとめたものをめもめ.最初にPerlのithreadsの概要について説明してから,管理構造,提供されるメソッド,マジックについて説明していく. 1. Perlのスレッドの概要 Perlのスレッドはインタプリタスレッド(ithreads)と呼ばれる.スレッドのモデルはネイティブスレッドモデルである.1つのインタプリタスレッドは,1つのネイティブスレッド上で実行される.1インタプリタスレッドの親スレッドから指定されたサブルーチンは,インタプリタスレッド上に用意されたインタプリタインスタンスで実行される. スレッド間でのデータ共有は明示的に行う.1つのインタプリタスレッドから新たなスレッドを生成した場合,親スレッドのインタプリタインスタンスの内容がすべて子スレッド中のインタプリタインスタンス内にコピーされる.そのため,明示的に共
Web屋のネタ帳 - Apacheのログ出力に追加しておいたほうがいい(かもしれない)設定 %D リクエストを処理するのにかかった時間、マイクロ秒単位 「あるページだけが異様に重い気がするんだけど?」といった場合に体感スピードではなくその正確な値を得ることができる。純粋にWebアプリ的な処理時間であってネットワーク的な遅延時間などはこれじゃ取れないけど。なお、「%T リクエストを扱うのにかかった時間、秒単位」というのもあるんだが、「処理するのにかかった時間」と「扱うのにかかった時間」がどう違うのかわからん(笑)。いずれにせよ秒単位よりはマイクロ秒単位のほうがいいだろう。 %T ... リクエストを扱うのにかかった時間、秒単位 %D ... リクエストを処理するのにかかった時間、マイクロ秒単位 ということなので、%Tと%Dで精度以外に何か違うのか気になったので調べてみた。 結論としてマニュア
apacheの2.4系から Luaでapacheのフックを制御できる mod_luaモジュールが入るというネタを見かけたので、svnのtrunk版(2.3.*) を引っ張って試してみました。 (元々 mod_wombatという名前で開発されてたモジュールが2.4系からはmod_luaとしてリリースされるって経緯ぽい。ドキュメントはこちら) 現状のmod_luaでサポートしてるApacheのフックは下記の通りになります。 ap_hook_translate_name ap_hook_map_to_storage ap_hook_header_parser ap_hook_access_checker ap_hook_check_user_id ap_hook_auth_checker ap_hook_type_checker ap_hook_fixups ap_hook_insert_fil
昔はマニュアルに書いてあったような気がしたけど、最近のマニュアルには見当たらないのでメモ。 mysqld が同時に使用可能なファイル数は open_files_limit というパラメータで指定します。ただし、mysqld は最低でも table_cache*2+max_connections+10 --- (a) は必要だと考えるので、open_files_limit が (a) よりも小さければ、黙って (a) の値まで大きくします。table_cache を2倍しているのは、MyISAM が1テーブルにつき2ファイル使用するためでしょう。10 を足しているのは標準入出力エラー出力と、ログファイル等の分でしょうか。 また、max_connections*5 --- (b) の方が (a) よりも大きければ、open_files_limit は (b) になります。 (a), (b) よ
2009年10月04日20:18 KVS Ruby 噂のTokyoCabinet/TokyoTyrantを使ってみた key-value ストアに興味がある ささたつ です。key-value ストアとして有名なものといえば memcached かと思いますが、他にも TokyoCabinet や TokyoTyrant というものも注目されています(不思議な名前ですね!)。key-value ストアでありながら高速、かつ、データをメモリで無くファイルに保存しているため、サーバが落ちてもデータが消えないとか。 実際に mixi の最終ログイン時間の保持などに使われているそうです。 memcached をセッションの保持などに使っている場合、memcached のサーバがダウンしてしまったら、データは全て消えてしまいます。その結果 RDBMS にアクセスが集中し、パフォーマンスが大幅に悪化し
2009年10月02日 キタコレ!自作サーバ時代 去る9月25日に第二回ライブドアテクニカルセミナを開催しました。セミナー内容と詳細はこちらで↓ 第ニ回 ライブドア テクニカルセミナー・ログ それぞれの発表はとても興味深く、そして面白いものだったのですが、特にpixiv上園さんの発表にあったボードコンピュータは圧巻でした。 マザーボードをそのまま剥き出しのままでラックにマウントされている様子の写真です。 pixivさんのマシンルーム (c) pixiv ラックといっても、19インチのサーバマウント用ラックではなく、普通の業務用(オフィス用)ラック、つまり、棚です。このラックにマザーボードをそのまま乗せると、基盤裏の配線部分がショートする恐れがあるため、最初、枕木の上に載せていたそうですが、基盤上の部品の自重でボードが撓んでしまうので、最終的にはベニア板を敷く事にしたそうです。 pixivさ
2009年02月08日00:52 カテゴリLinux xfsdump,xfsrestoreでXFSのディスクコピー LinuxでXFSファイルシステムのOSのディスクを別のディスクにコピーする場合のメモ。 ミラーリングをしたくない場合でバックアップ用ディスクを作りたい場合や、ディスクの内容をまるごと別のディスクに移したい場合などに。 以下のログは SLES10 SP1 で試した時のもので、1本目のディスクは、swap と / の2パーティション構成の場合とします。 node01:~ # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 74G 4.6G 69G 7% / udev 501M 124K 501M 1% /dev node01:~ # fdisk や parted で2本目のディスクにパーティションを作成。 今
XFSの利用方法 最後に、XFSを使う方法を紹介する。例では、Fedora Core 1環境でカーネル2.6.7を使用した。 まず、カーネルがXFSをサポートしているかどうかを確認する。サポートしていない場合は、カーネルのコンフィグレーション時に「XFS filesystem support」を有効にして、カーネルの再構築を行う。 また、XFSを使用するには、3つのシステムユーティリティを下記バージョン以降にアップデートしておく必要がある。 modutils-2.4.0 autoconf-2.13 e2fsprogs-devel-1.18 XFSコマンドツールのインストール カーネルのXFSサポートを有効にしたら、XFSコマンドツールをインストールする。XFSコマンドツールには、以下のようなものがある。 xfsdump xfsdumpパッケージは、xfsdumpやxfsrestore、XF
連投しすぎ. Smarty厨で思い出したんだけど,みんな左右のデリミタってなににしてるんだろう? 私の場合,昔XOOPSをいじっていたせいもあり,CSSやJavascriptが紛れ込んだときに誤動作おこされるのが嫌なこともあり,左右のデリミタは, <{ ... }>にしていたんですが,最近これだとものすごく生産性が悪いことが判明(気づくのおせえよ >}とかタイポする.なにより { } の位置と > < の位置が微妙すぎる. ということで,今度から {{ ... }}にしてみようかと思う. みんなどうしてるのかな.やっぱりデフォルト派が一番多い気もするけど... ちなみに,デリミタは, <?php //着色料 ... $smarty->left_delimiter = '<{'; $smarty->right_delimiter = '}>'; こんなかんじで指定できます.(一応書いておく)
Smarty を使った開発でデバッグを行う 4 つの方法 2006-11-29-1: [PHP][Books] PHP のテンプレートエンジン Smarty を使って開発するときに,割り当てた変数が複雑になって困ることはありませんか? その際,何らかの方法を使って割り当てた変数を確認するのですが,いくつか方法があります. 1. 常にデバッギングコンソールを表示する方法 おそらく一番有名な方法ですが,$debugging に true を指定して,常にデバッギングコンソールを表示する方法です. require_once 'Smarty.class.php'; $smarty = new Smarty; $smarty->debugging = true; これで,常にデバッギングコンソールが表示されます. デバッギングコンソールは,window.open() を使った JavaScript
PHPのバージョンを5.3.0にしたらDeprecatedエラーがいっぱいでた。 Deprecated: Function ereg() is deprecated in /hoge/hoge Deprecated: Function ereg_replace() is deprecated in /hoge/hoge E_DEPRECATED (integer) 実行時の注意。これを有効にすると、 将来のバージョンで動作しなくなるコードについての警告を受け取ることができる。 eregやらereg_replaceなんかはこの先使えなくなるのねぇ。 mb_eregとかpregなんかに変更する必要が出てくるみたい。 とりあえずの対策としてエラーメッセージを消す。 error_reporting(E_ERROR & ~E_NOTICE & ~E_PARSE);
php+Smartyで以下のようなforを実現したい時のテンプレートの書き方をメモ。 マニュアル見る限りではできないものと思われがちなんだけど実はできるという(/ω\) #いつも処理をしようと思うたびにぐぐってるので・・・。 php版でこれを・・・ for($i=0;$i<10;$i++){ echo "$i<br>"; } Smarty版 {section name=cnt loop=10} {$smarty.section.cnt.iteration-1}<br> {/section} //※-1するのがポイント とか {section name=cnt loop=10} {$smarty.section.cnt.index}<br> {/section} または {section name=cnt start=0 loop=10} {$smarty.section.cnt.index
08/12/02 XFS チューニング @2TB/映像用 チューニングを列挙。まずは mkfs 時のチューニング。 sudo mkfs -t xfs -l size=128m -i size=512 -f /dev/md0 アロケーション・ブロックサイズの変更は失敗した。Ubuntu Server 8.10 x64 では mount できなくなったので、チューニング中止。 ジャーナルのサイズ(-l size=128m)。効果あるっぽい。 inodeサイズ の変更(-i size=512)。効果は微妙。連番のハンドリングが多少良くなる? agcount はデフォルト(32)が最もバランスが良かったので、変更無し。 mount は以下のような感じ。 sudo mount -t xfs -o noatime,nodiratime,osyncisdsync,logbufs=8 /dev/md0 /
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く