blob: 27818abe2eb3900b41296d8a22309f783dba1329 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>ファイル記述子の限界 - Apache HTTP サーバ</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.js" type="text/javascript">
</script>
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page" class="no-sidebar"><div id="page-header">
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.5</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP サーバ</a> > <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> > <a href="../">バージョン 2.5</a> > <a href="./">バーチャルホスト</a></div><div id="page-content"><div id="preamble"><h1>ファイル記述子の限界</h1>
<div class="toplang">
<p><span>翻訳済み言語: </span><a href="../en/vhosts/fd-limits.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/vhosts/fd-limits.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/vhosts/fd-limits.html" title="Japanese"> ja </a> |
<a href="../ko/vhosts/fd-limits.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/vhosts/fd-limits.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div>
<div class="outofdate">この日本語訳はすでに古くなっている
可能性があります。
最近更新された内容を見るには英語版をご覧下さい。
</div>
<p>たくさんのバーチャルホストを運用する場合、もし、
各バーチャルホストごとに異なるログファイルが指定してあると、
Apache がファイル記述子 (<cite>ファイルハンドル</cite>とも呼ばれます)
を使い切ってしまうことがあります。Apache が使用するファイル
記述子の数は、各エラーログファイルにつき 1 つ、他のログファイルの
ディレクティブにつき 1 つ、さらに内部で使用する 10 から 20、
の合計になります。Unix オペレーティングシステムではプロセスごとに
使用可能なファイル記述子の数を制限しています。たいていの場合は 64 で、
普通は大きな値のハードリミットまで増やすことができます。</p>
<p>Apache は必要に応じて上限を拡大しようと試みますが、
以下のような場合にはうまくいかないかもしれません。</p>
<ol>
<li>利用しているシステムで <code>setrlimit()</code>
システムコールが提供されていない。</li>
<li>システム上で <code>setrlimit</code>(RLIMIT_NOFILE) が動作しない
(たとえば Solaris 2.3 のように)。</li>
<li>要求されるファイル記述子の数が
ハードリミットを超えてしまう。</li>
<li>システムにファイル記述子に関して別の制限が存在してしまっている。
たとえば、stdio ストリームではファイル記述子を 256 以上使えない
(Solaris 2)、など。</li>
</ol>
<p>問題が発生した時に取り得る対処方法は次のとおり:</p>
<ul>
<li>ログファイルの数を減らす。<code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code>
セクションでログファイルを指定せず、メインのログファイルにのみ記録する。
(これに関する詳しい情報は以下の<a href="#splitlogs">ログファイルの分割</a>を読んでください。)</li>
<li>
もし、前述の 1 または 2 の場合であれば、
Apache を起動する前にファイル記述子を増やします。
たとえば次のようなスクリプトを使います。
<div class="example"><p><code>
<code>#!/bin/sh<br />
ulimit -S -n 100<br />
exec httpd</code>
</code></p></div>
</li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="splitlogs" id="splitlogs">ログファイルの分割</a></h2>
<p>複数のバーチャルホストのログを同じログファイルに収集しようとしているときには、
各バーチャルホストについて統計的な解析を実行するために後でログファイルを
分割したくなるかもしれません。これは以下のようにして実現できます。</p>
<p>まず、バーチャルホストの情報をログのエントリに追加する必要があります。
これは <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code>
ディレクティブの <code>%v</code> 変数を使うことでできます。
これをログのフォーマット文字列の先頭に追加します:</p>
<div class="example"><p><code>
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost<br />
CustomLog logs/multiple_vhost_log vhost
</code></p></div>
<p>これは common log format のログを作成しますが、それぞれの行の先頭に
正規化されたバーチャルホストの名前
(<code class="directive"><a href="../mod/core.html#servername">ServerName</a></code>
ディレクティブに書かれているもの) が付加されます。
(ログファイルのカスタマイズの詳細については <a href="../mod/mod_log_config.html#formats">Custom Log Formats</a> を
読んでください。)</p>
<p>ログファイルを各部分 (バーチャルホスト毎に 1 ファイル) に分けたいときは、
<code><a href="../programs/other.html">split-logfile</a></code>
を使って行なうことができます。プログラムは Apache 配布の
<code>support</code> ディレクトリにあります。</p>
<p>以下のようなコマンドでこのプログラムを実行します:</p>
<div class="example"><p><code>
split-logfile < /logs/multiple_vhost_log
</code></p></div>
<p>このプログラムはバーチャルホストのログファイルの名前とともに実行され、
ログファイルに現れるそれぞれのバーチャルホスト毎に一つのファイルを作成します。
それぞれのファイルは <code>ホスト名.log</code> という名前になります。</p>
</div></div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/vhosts/fd-limits.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="../fr/vhosts/fd-limits.html" hreflang="fr" rel="alternate" title="Français"> fr </a> |
<a href="../ja/vhosts/fd-limits.html" title="Japanese"> ja </a> |
<a href="../ko/vhosts/fd-limits.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
<a href="../tr/vhosts/fd-limits.html" hreflang="tr" rel="alternate" title="Türkçe"> tr </a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/vhosts/fd-limits.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2014 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/quickreference.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>
|