<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2258037740805060827</id><updated>2011-11-28T08:53:18.291+09:00</updated><category term='FreeBSD'/><category term='HTML/CSS'/><category term='Apache'/><category term='JavaScript'/><title type='text'>Class AZ .tech</title><subtitle type='html'>Tomokazu Kiyohara's technical talk</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-8367649969262302470</id><published>2010-01-25T17:14:00.000+09:00</published><updated>2010-01-25T17:15:52.530+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Firefox 3.6 で JavaScript が正しく動作しなくなった場合</title><content type='html'>以下のワンライナーを使ってブラウザの判定を実施している場合、注意が必要。&lt;br /&gt;&lt;br /&gt;/a/[-1]=='a'&lt;br /&gt;&lt;br /&gt;Firefox 3.5以前では上記が"true"になるが、Firefox 3.6以降では"false"になる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-8367649969262302470?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/8367649969262302470/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=8367649969262302470' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/8367649969262302470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/8367649969262302470'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2010/01/firefox-36-javascript.html' title='Firefox 3.6 で JavaScript が正しく動作しなくなった場合'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-2837317211206479056</id><published>2009-11-12T18:33:00.004+09:00</published><updated>2009-11-12T19:11:11.873+09:00</updated><title type='text'>MacVim-KaoriYaのformat.vimを正しく動かす</title><content type='html'>※正確には、encoding=utf-8を指定したvimの話。&lt;br /&gt;&lt;br /&gt;format.vimは、vimにおける禁則処理等の文章整形用のスクリプト。&lt;br /&gt;MacVim-Kaoriyaの環境においては動作不備が確認される。&lt;br /&gt;具体的には、インラインモードにて行末禁止文字を打ち込んだ場合、本来改行すべき桁数よりかなり前の桁にて改行される。(正確にはtextwidthに指定した数値の2/3の桁数)&lt;br /&gt;&lt;br /&gt;これは、format.vimの内部処理にて、マルチバイト文字の表示幅として、文字のバイト数をそのまま用いているためである。&lt;br /&gt;マルチバイト文字のバイト数は、encoding=cp932(windowsでのデフォルト)の場合は「2バイト」となり特に問題は起きないが、encoding=utf-8の場合、「3バイト」となるため、これをそのまま表示幅として用いることが出来ない。&lt;br /&gt;&lt;br /&gt;これを回避するため、以下の様な修正を行った。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;--- format.vim.org 2009-10-27 09:00:56.000000000 +0900&lt;br /&gt;+++ format.vim 2009-11-12 17:13:28.000000000 +0900&lt;br /&gt;@@ -686,17 +686,17 @@&lt;br /&gt;   let back_count = 0&lt;br /&gt;   let no_begin = s:GetOption('format_no_begin')&lt;br /&gt;   let no_end = s:GetOption('format_no_end')&lt;br /&gt;-  let curr_char = matchstr(a:curr_line, '\%'.a:curr_col.'c.')&lt;br /&gt;+  let curr_char = matchstr(a:curr_line, '\%'.a:curr_col.'v.')&lt;br /&gt;   let back_col = 0&lt;br /&gt;   while 1&lt;br /&gt;-    let prev_char = matchstr(a:curr_line, '.\%'.(a:curr_col - back_col).'c')&lt;br /&gt;+    let prev_char = matchstr(a:curr_line, '.\%'.(a:curr_col - back_col).'v')&lt;br /&gt;     if curr_char == ''&lt;br /&gt;       let back_count = 0&lt;br /&gt;       break&lt;br /&gt;     elseif s:IsTaboo(curr_char, no_begin) || s:IsTaboo(prev_char, no_end)&lt;br /&gt;       let back_count += 1&lt;br /&gt;       let curr_char = prev_char&lt;br /&gt;-      let back_col += strlen(curr_char)&lt;br /&gt;+      let back_col += (strlen(curr_char) &gt; 1 ? 2 : strlen(curr_char))&lt;br /&gt;     else&lt;br /&gt;       break&lt;br /&gt;     endif&lt;br /&gt;@@ -712,10 +712,10 @@&lt;br /&gt;     " Too difficult to implement.&lt;br /&gt;     return 1&lt;br /&gt;   else&lt;br /&gt;-    let curcol = col('.')&lt;br /&gt;+    let curcol = virtcol('.')&lt;br /&gt;     " v:charを入力した後で&amp;textwidthを超える場合に改行位置の補正を行う&lt;br /&gt;     let new_line = getline('.') . v:char&lt;br /&gt;-    if curcol + strlen(v:char) &gt; &amp;textwidth&lt;br /&gt;+    if curcol + (strlen(v:char) &gt; 1 ? 2 : strlen(v:char)) &gt; &amp;textwidth&lt;br /&gt;       let back_count = s:GetLinebreakOffset(new_line, curcol)&lt;br /&gt;       " カーソル移動と改行の挿入を行う&lt;br /&gt;       if back_count &gt; 0&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;以上により、encoding=utf-8の環境においても、encoding=cp932の環境と同等の動作を期待出来る。&lt;br /&gt;&lt;br /&gt;※ref : MacVim-KaoriYa (&lt;a href="http://code.google.com/p/macvim-kaoriya/"&gt;http://code.google.com/p/macvim-kaoriya/&lt;/a&gt;)&lt;br /&gt;※ref : format.vim (&lt;a href="http://www.kaoriya.net/doc/vim_script.html"&gt;http://www.kaoriya.net/doc/vim_script.html&lt;/a&gt;)&lt;br /&gt;※source var : format.vim 1.7rc2 03-Mar-2007. in MacVim-KaoriYa 20091027&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ここからはオリジナルの動作に対するコメント。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;現状、textwidth値ジャストに行末禁止文字を入力すると、改行が実施されてしまう。&lt;br /&gt;本来であれば、textwidth値に収まっているのであるから、改行は不要の様に思う。&lt;br /&gt;ちなみに、gqコマンドであれば改行されない。&lt;/li&gt;&lt;li&gt;現状のアルゴリズムだと、textwidthを1バイトだけ超える、行末禁止文字「以外」の文字が行末に入力された場合に、正しく改行が挿入されないことになる。&lt;br /&gt;例えば、textwidth=10の場合に、"aあああああ"という文字を入力すると、最後の「あ」が改行されない。&lt;br /&gt;実質的にはtextwidthを超えているため、改行されるべきの様に思う。&lt;br /&gt;ちなみに、gqコマンドであれば改行される。&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;なお、(1)については、L:718の部分を、以下の様にすることで正しい動作が期待出来る。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;-    if curcol + strlen(v:char) &gt; &amp;textwidth&lt;br /&gt;+    if curcol + (strlen(v:char) &gt; 1 ? 2 : strlen(v:char)) - 1 &gt; &amp;textwidth&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;(2)については、ASCIIの入力が若干絡むため、少しめんどくさい気がする。&lt;br /&gt;こちらについては、追って検討したい。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-2837317211206479056?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/2837317211206479056/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=2837317211206479056' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/2837317211206479056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/2837317211206479056'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/11/macvim-kaoriyaformatvim.html' title='MacVim-KaoriYaのformat.vimを正しく動かす'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-3842807386698144929</id><published>2009-10-28T20:52:00.004+09:00</published><updated>2009-10-28T21:07:28.115+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML/CSS'/><title type='text'>スタイルシートにおける空URL指定の扱い</title><content type='html'>スタイルシートでバックグラウンドイメージの指定などに使うURL指定は、空指定した場合に参照元を引き継ぐ。(See, RFC 1808 Section 4)&lt;br /&gt;&lt;br /&gt;空指定とは、URL()やURL('')のような指定。&lt;br /&gt;参照元とは、cssファイルに記載している場合はcssファイルそれ自身で、JavaScriptでobject.style.backgroundImage等を操作している場合はJavaScriptがロードされているURLとなる。&lt;br /&gt;&lt;br /&gt;つまり、"/hoge.css"の中で"background-image:url()"と記載すると、"background-image:url('/hoge.css')"のように解釈されるし、"/fuga.cgi"中のJavaScriptで、"document.style.backgroundImage='url()';"とすると、"document.style.backgroundImage='url(/fuga.cgi)'"のように解釈される。&lt;br /&gt;&lt;br /&gt;このため、cssをcgi等で動的に生成している場合や、JavaScriptで動的にスタイルを変更している場合に、意図しない空指定が行われることで「無駄なhttp GET」が実行されることがある。&lt;br /&gt;例えば、CGIの処理結果ページにJavaScriptが設定されており、その中で空URLが指定されるバグがあったとすると、当該CGIが2回GETされることになる。&lt;br /&gt;ブラウザにもよるが「デバグ系のプラグイン」を動作させると、こういったGETが走らない場合が多く、原因究明でつまずきやすいため、URLを生成するルーチンには注意を払うべき。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-3842807386698144929?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/3842807386698144929/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=3842807386698144929' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/3842807386698144929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/3842807386698144929'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/10/url.html' title='スタイルシートにおける空URL指定の扱い'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-4355742520999669077</id><published>2009-10-07T16:32:00.002+09:00</published><updated>2009-10-07T16:35:10.244+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>FreeBSDで最新のportsを取得する方法</title><content type='html'>&lt;b&gt;初回の更新処理&lt;/b&gt;&lt;br /&gt;以下のコマンドを実行する。&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ portsnap fetch extract&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二回目以降の更新処理&lt;/b&gt;&lt;br /&gt;"/usr/ports"以下で、以下のコマンドを実行する。&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ make update&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;以上の手順は、portsnapコマンドを用いる方法(PORTSNAP_UPDATE方式)で、最も推奨される更新手順である。&lt;br /&gt;&lt;br /&gt;ただし、OSのソースを取得する方法と同様に、csupを用いる方法(SUP_UPDATE方式)もある。&lt;br /&gt;この場合、make.confに以下の記述を行えばよい。(/usr/ports/Makefile:166-170)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SUP_UPDATE=yes&lt;br /&gt;PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;また、cvsを用いる方法(CVS_UPDATE方式)もある。&lt;br /&gt;この場合、make.confに以下の記述を行えばよい。(/usr/ports/Makefile:171-175)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;CVS_UPDATE=yes&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;ただしこの場合、CVSROOT環境変数に適切な値を入れておく必要がある。&lt;br /&gt;&lt;br /&gt;設定の優先順位は、SUP_UPDATE,CVS_UPDATE,PORTSNAP_UPDATEとなっている。&lt;br /&gt;デフォルトはPORTSNAP_UPDATE。(/usr/ports/Makefile:166-190)&lt;br /&gt;&lt;br /&gt;※source ver : FreeBSD 7.2 Release-p4&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-4355742520999669077?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/4355742520999669077/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=4355742520999669077' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/4355742520999669077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/4355742520999669077'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/10/freebsdports.html' title='FreeBSDで最新のportsを取得する方法'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-4214802250664879308</id><published>2009-10-06T17:53:00.006+09:00</published><updated>2009-10-07T16:32:07.623+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>FreeBSDでOSの最新ソースを取得する方法（supファイルを書かずに）</title><content type='html'>まず、"/etc/make.conf"に以下の記載を追記する。&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SUP_UPDATE=yes&lt;br /&gt;SUPHOST=cvsup.jp.FreeBSD.org&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;次に、"/usr/src"以下で、以下のコマンドを実行する。&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ make update&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;動作としては、所定のsupファイル(ただしhostは上書き)を使って、csupコマンドを実行しているだけ。&lt;br /&gt;参照しているsupファイルは以下の通り。(/usr/share/examples/etc/make.conf:186)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/usr/share/examples/cvsup/standard-supfile&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;ちなみに、上記supファイルのtag指定は以下のようにマイナーバージョンまでを含めている。(/usr/share/examples/cvsup/standard-supfile:52)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;*default release=cvs tag=RELENG_7_2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;そのため、取得できる「最新ソース」は、あくまでパッチレベルである点に留意すること。&lt;br /&gt;&lt;br /&gt;より細かな設定については、"man make.conf" もしくは、/usr/share/examples/etc/make.confを参照の程。&lt;br /&gt;&lt;br /&gt;※source ver : FreeBSD 7.2 Release-p4&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-4214802250664879308?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/4214802250664879308/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=4214802250664879308' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/4214802250664879308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/4214802250664879308'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/10/freebsdossup.html' title='FreeBSDでOSの最新ソースを取得する方法（supファイルを書かずに）'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-5996094484895084443</id><published>2009-10-01T19:13:00.001+09:00</published><updated>2009-10-07T16:23:44.272+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apacheプロセス数のチェック方法</title><content type='html'>&lt;b&gt;駆動中のhttpdプロセス数のチェック&lt;/b&gt;&lt;br /&gt;&lt;code&gt;$ ps -a | grep httpd | grep -v grep | wc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;プロセスリストからhttpdプロセスの数を数える。&lt;br /&gt;"grep -v grep"しないと、"grep httpd"まで数え上げてしまう。&lt;br /&gt;また、httpdは親プロセス＋子プロセスで出てくるので、MaxClients等で指定した子プロセス数より１つ多くなる点に注意。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;httpでのTCPコネクションのチェック&lt;/b&gt;&lt;br /&gt;&lt;code&gt;$ netstat -a | grep .http | grep EST | wc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;httpポートでESTABLISHEDしているTCPコネクション数を数える。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;定期的にチェックする場合は、以下の様にするのが楽。&lt;br /&gt;&lt;code&gt;$ while [ 1 ]; do ps -a | grep httpd | grep -v grep | wc; sleep 1;&lt;br /&gt;done&lt;/code&gt;&lt;br /&gt;※1秒ごとにコマンドを延々実行(B-Shell系)&lt;br /&gt;&lt;br /&gt;セッションを張りっぱなしのクライアントを実現（つまり、ずっと処理中の子プロセスを生成）するには、以下の様にtelnetで直接叩くのが楽。&lt;br /&gt;&lt;code&gt;$ telnet www.server.com 80&lt;/code&gt;&lt;br /&gt;ただし、Accept Filterを有効にしている場合、TCPはESTABLISHEDするが、子プロセスまで要求が渡らないため、httpd子プロセスは増えない。&lt;br /&gt;Accept Filterを一旦解除するか、sleepするCGIを作成し、これをGETするのがよい。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-5996094484895084443?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/5996094484895084443/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=5996094484895084443' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/5996094484895084443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/5996094484895084443'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/10/apache.html' title='Apacheプロセス数のチェック方法'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-8362379593382563564</id><published>2009-10-01T18:33:00.001+09:00</published><updated>2009-10-01T18:54:14.215+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Apacheの駆動プロセス数について</title><content type='html'>Apacheのプロセス数の制御は以下のディレクティブで行う。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ServerLimit&lt;/li&gt;&lt;li&gt;MaxClients&lt;/li&gt;&lt;li&gt;MinSpareServer&lt;/li&gt;&lt;li&gt;MaxSpareServer&lt;/li&gt;&lt;li&gt;StartServers&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;ServerLimit&lt;/b&gt;は、起動する子プロセス数の最大値を決める。&lt;br /&gt;デフォルトでは200000。(/httpd-2.2.13/server/mpm/prefork/prefork.c:84)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MaxClients&lt;/b&gt;は、駆動する子プロセス数の最大値を決める。&lt;br /&gt;(preforkの場合、ServerLimitと同意になる)&lt;br /&gt;ServerLimitより小さい数値である必要があり、デフォルトでは256。(/httpd-2.2.13/server/mpm/prefork/prefork.c:77)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MinSpareServer&lt;/b&gt;と&lt;b&gt;MaxSpareServer&lt;/b&gt;は、アイドルプロセス数の最小値、最大値を決める。&lt;br /&gt;アイドルプロセスとは、クライアントからの要求を受ける前にあらかじめforkしておく子プロセス。&lt;br /&gt;あらかじめforkしておくことで、要求発生時に素早く処理ができる。&lt;br /&gt;MinSpareServerのデフォルト値は5 (/httpd-2.2.13/server/mpm/prefork/mpm_default.h:46)&lt;br /&gt;MaxSpareServerのデフォルト値は10 (/httpd-2.2.13/server/mpm/prefork/mpm_default.h:40)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;StartServers&lt;/b&gt;はApache起動後すぐ起動する子プロセス数。&lt;br /&gt;MinSpareServerと同値にするのが通常だが、異なる値も指定出来る。&lt;br /&gt;ただし、どのような値を指定しても、MinSpareServerとMaxSpareServerの間に収まるように調整される。&lt;br /&gt;StartServersのデフォルト値は5 (/httpd-2.2.13/server/mpm/prefork/mpm_default.h:32)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;子プロセスの総数は、MaxClientsより多くはならないため、処理中のプロセス数が増大すると、アイドルプロセスがMinSpareServerより少なくなる場合がある。(httpd-2.2.13/server/mpm/prefork/prefork.c:796 perform_idle_server_maintenance)&lt;br /&gt;アイドルプロセスが0、つまり処理中のプロセスがMaxClientsに達すると、以下のエラーが出力される。&lt;br /&gt;"server reached MaxClients setting, consider raising the MaxClients setting" (/httpd-2.2.13/server/mpm/prefork/prefork.c:867)&lt;br /&gt;&lt;br /&gt;各ディレクティブの詳細は、apacheのマニュアルを参照の程&lt;br /&gt;&lt;br /&gt;※動作モードはmpm_preforkに限る&lt;br /&gt;※source ver : Apache 2.2.13&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-8362379593382563564?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/8362379593382563564/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=8362379593382563564' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/8362379593382563564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/8362379593382563564'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/10/apache-serverlimit-maxclients.html' title='Apacheの駆動プロセス数について'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-8079191685836453876</id><published>2009-09-30T17:58:00.000+09:00</published><updated>2009-09-30T17:59:23.199+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FreeBSD'/><title type='text'>FreeBSDで利用可能なスワップ領域について</title><content type='html'>FreeBSDで利用可能なスワップ領域は、HDDから割り当てたスワップ領域がどれほど大きくても、デフォルトで7GBまで。&lt;br /&gt;これは、スワップメタ情報を保持するための KVM 量が制限されているため。&lt;br /&gt;(デフォルトでは32MBで、このとき扱えるスワップの上限が7GB)&lt;br /&gt;&lt;br /&gt;これを超えてスワップ領域を使用しようとすると、カーネルが以下のようなエラーを吐く。&lt;br /&gt;"swap zone exhausted, increase kern.maxswzone" (See, /usr/src/sys/vm/swap_pager.c:1715)&lt;br /&gt;&lt;br /&gt;制限値は、sysctl の kern.maxswzone値で確認出来る。&lt;br /&gt;変更は、以下のいずれかの方法で可能。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;カーネルオプションで、VM_SWZONE_SIZE_MAXに大きな値を指定し、カーネルリコンパイル&lt;/li&gt;&lt;li&gt;loader.confで、kern.maxswzoneに大きな値を指定し、リブート&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;指定する値は、「スワップ領域に利用したい容量 * 32MB/7GB」でおおむねOK。&lt;br /&gt;より正しい値を算出するには、/usr/src/sys/vm/swap_pager.c:321 swap_pager_init を参照の程。&lt;br /&gt;&lt;br /&gt;※source ver : FreeBSD 7.2 Release-p3&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-8079191685836453876?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/8079191685836453876/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=8079191685836453876' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/8079191685836453876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/8079191685836453876'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/09/freebsd.html' title='FreeBSDで利用可能なスワップ領域について'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2258037740805060827.post-204312700817589014</id><published>2009-09-10T18:02:00.002+09:00</published><updated>2009-09-10T18:18:12.553+09:00</updated><title type='text'>Blogger始め</title><content type='html'>普段書いている記事を、技術的な考察とただの日記的なものに分けるべくBloggerにお引っ越し（というか追加）&lt;br /&gt;ここでは、技術的な考察について書いていくつもり。&lt;br /&gt;Bloggerの使い方はまだ勉強中、よく意味がわからない設定が多いのだよね。中途半端に日本語化しないで、英語のまま出してくれれば良いのに。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2258037740805060827-204312700817589014?l=classaz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://classaz.blogspot.com/feeds/204312700817589014/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2258037740805060827&amp;postID=204312700817589014' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/204312700817589014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2258037740805060827/posts/default/204312700817589014'/><link rel='alternate' type='text/html' href='http://classaz.blogspot.com/2009/09/blogger.html' title='Blogger始め'/><author><name>きよはら</name><uri>http://www.blogger.com/profile/00938836625062110003</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_GR4ea8i3_ks/SqjDegZSvKI/AAAAAAAAAG8/MvWSbWAGVTI/S220/rm4091-3365-9090021_final.jpg'/></author><thr:total>0</thr:total></entry></feed>
