]> granicus.if.org Git - apache/blob - docs/manual/vhosts/fd-limits.xml.ja
update transformation
[apache] / docs / manual / vhosts / fd-limits.xml.ja
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 659902:1674195 (outdated) -->
5
6 <!--
7  Licensed to the Apache Software Foundation (ASF) under one or more
8  contributor license agreements.  See the NOTICE file distributed with
9  this work for additional information regarding copyright ownership.
10  The ASF licenses this file to You under the Apache License, Version 2.0
11  (the "License"); you may not use this file except in compliance with
12  the License.  You may obtain a copy of the License at
13
14      http://www.apache.org/licenses/LICENSE-2.0
15
16  Unless required by applicable law or agreed to in writing, software
17  distributed under the License is distributed on an "AS IS" BASIS,
18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  See the License for the specific language governing permissions and
20  limitations under the License.
21 -->
22
23 <manualpage metafile="fd-limits.xml.meta">
24 <parentdocument href="./">バーチャルホスト</parentdocument>
25   <title>ファイル記述子の限界</title>
26
27 <summary>
28
29     <p>たくさんのバーチャルホストを運用する場合、もし、
30     各バーチャルホストごとに異なるログファイルが指定してあると、
31     Apache がファイル記述子 (<cite>ファイルハンドル</cite>とも呼ばれます)
32     を使い切ってしまうことがあります。Apache が使用するファイル
33     記述子の数は、各エラーログファイルにつき 1 つ、他のログファイルの
34     ディレクティブにつき 1 つ、さらに内部で使用する 10 から 20、
35     の合計になります。Unix オペレーティングシステムではプロセスごとに
36     使用可能なファイル記述子の数を制限しています。たいていの場合は 64 で、
37     普通は大きな値のハードリミットまで増やすことができます。</p>
38
39     <p>Apache は必要に応じて上限を拡大しようと試みますが、
40     以下のような場合にはうまくいかないかもしれません。</p>
41
42     <ol>
43       <li>利用しているシステムで <code>setrlimit()</code>
44       システムコールが提供されていない。</li>
45
46       <li>システム上で <code>setrlimit</code>(RLIMIT_NOFILE) が動作しない
47       (たとえば Solaris 2.3 のように)。</li>
48
49       <li>要求されるファイル記述子の数が
50       ハードリミットを超えてしまう。</li>
51       
52       <li>システムにファイル記述子に関して別の制限が存在してしまっている。
53       たとえば、stdio ストリームではファイル記述子を 256 以上使えない
54       (Solaris 2)、など。</li>
55     </ol>
56
57     <p>問題が発生した時に取り得る対処方法は次のとおり:</p>
58
59     <ul>
60       <li>ログファイルの数を減らす。<directive type="section"
61       module="core">VirtualHost</directive>
62       セクションでログファイルを指定せず、メインのログファイルにのみ記録する。
63       (これに関する詳しい情報は以下の<a
64       href="#splitlogs">ログファイルの分割</a>を読んでください。)</li>
65
66       <li>
67         もし、前述の 1 または 2 の場合であれば、
68         Apache を起動する前にファイル記述子を増やします。
69         たとえば次のようなスクリプトを使います。
70
71         <example>
72           <code>#!/bin/sh<br />
73            ulimit -S -n 100<br />
74            exec httpd</code>
75         </example>
76       </li>
77     </ul>
78 </summary>
79
80 <section id="splitlogs"><title>ログファイルの分割</title>
81
82 <p>複数のバーチャルホストのログを同じログファイルに収集しようとしているときには、
83 各バーチャルホストについて統計的な解析を実行するために後でログファイルを
84 分割したくなるかもしれません。これは以下のようにして実現できます。</p>
85
86 <p>まず、バーチャルホストの情報をログのエントリに追加する必要があります。
87 これは <directive module="mod_log_config">LogFormat</directive>
88 ディレクティブの <code>%v</code> 変数を使うことでできます。
89 これをログのフォーマット文字列の先頭に追加します:</p>
90
91 <example>
92 LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost<br />
93 CustomLog logs/multiple_vhost_log vhost
94 </example>
95
96 <p>これは common log format のログを作成しますが、それぞれの行の先頭に
97 正規化されたバーチャルホストの名前
98 (<directive module="core">ServerName</directive>
99 ディレクティブに書かれているもの) が付加されます。
100 (ログファイルのカスタマイズの詳細については <a 
101 href="../mod/mod_log_config.html#formats">Custom Log Formats</a> を
102 読んでください。)</p>
103
104 <p>ログファイルを各部分 (バーチャルホスト毎に 1 ファイル) に分けたいときは、
105 <code><a href="../programs/other.html">split-logfile</a></code>
106 を使って行なうことができます。プログラムは Apache 配布の 
107 <code>support</code> ディレクトリにあります。</p>
108
109 <p>以下のようなコマンドでこのプログラムを実行します:</p>
110
111 <example>
112 split-logfile &lt; /logs/multiple_vhost_log
113 </example>
114
115 <p>このプログラムはバーチャルホストのログファイルの名前とともに実行され、
116 ログファイルに現れるそれぞれのバーチャルホスト毎に一つのファイルを作成します。
117 それぞれのファイルは <code>ホスト名.log</code> という名前になります。</p>
118
119 </section>
120 </manualpage>
121