[sugj-tech:7443] vfs_aio_ptheadの訳
ribbon sv user
ribbon @ ns.ribbon.or.jp
2012年 8月 8日 (水) 13:11:22 JST
3.6.6で追加になったvfs_aio_pthearの訳ですが、
こんなもんでどうでしょうか。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
<refentry id="vfs_aio_pthread.8">
<refmeta>
<refentrytitle>vfs_aio_pthread</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo class="source">Samba</refmiscinfo>
<refmiscinfo class="manual">システム管理ツール</refmiscinfo>
<refmiscinfo class="version">3.6</refmiscinfo>
</refmeta>
<refnamediv>
<refname>vfs_aio_pthread</refname>
<refpurpose>pthread poolを使うSamba vfs中の非同期I/Oの実装</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>vfs objects = aio_pthread</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>説明</title>
<para>この VFS モジュールは
<citerefentry><refentrytitle>samba</refentrytitle>
<manvolnum>7</manvolnum></citerefentry>システムの一部である。</para>
<para><command>aio_pthread</command> VFS モジュールは、pthread APIが
有効で、Posix AIOインタフェースを使っていないプラットフォーム上で、
Samba用の非同期I/Oを有効にする。Posix AIOはきつい制限によって使いづらい。
たとえば、あるバージョンのLinuxでは、使用するリアルタイムシグナルは
高負荷の時には動作が不正になる。その他のシステムでは、特別なカーネル
モジュールがロードされるときにのみAIOが有効になるか、特定の、システム全体での
非同期要求がスケジュールされている時にのみAIOが許可される。
(ほとんどのLinuxシステムで使われている)glibcベースのシステムでは、
glibcの実装を使うシステム上でPOSIX AIOを本質的に使えなくさせる、
ファイルディスクリプタ毎の、単一の未処理要求のみを許可する。
</para>
<para><command>aio_pthread</command> VFSmodule enables asynchronous
I/O for Samba on platforms which have the pthreads API available,
without using the Posix AIO interface. Posix AIO can suffer from severe
limitations. For example, on some Linux versions the
real-time signals that it uses are broken under heavy load.
Other systems only allow AIO when special kernel modules are
loaded or only allow a certain system-wide amount of async
requests being scheduled. Systems based on glibc (most Linux
systems) only allow a single outstanding request per file
descriptor which essentially makes Posix AIO useless on systems
using the glibc implementation.</para>
<para>これらのすべての実装を直すため、aio_pthreadモジュールが
作成された。これは、読み取りと書き込みの呼び出しを非同期に処理する
ことができるようにするため、内部Posix AIOインタフェースの代わりに、
ptherad poolを使用する。workとして新しいスレッドを作成することに
よる、動的に拡張されるpthead poolが作成され、それは、smbdプロセス毎に
最大100スレッドまで割り当てられる。この制限を変更するには、下記の
"aio num threads"を参照のこと。新しいスレッドは、新しい読み取りか
書き込み要求が受け取られた時に有効なアイドルスレッドがあった場合には
作成されず、新しいworkは存在するアイドルスレッドに割り当てられる。
スレッドはもしも1秒アイドルになった時にそれ自身を終了する。</para>
<para>To work around all these limitations, the aio_pthread module
was written. It uses a pthread pool instead of the
internal Posix AIO interface to allow read and write calls
to be process asynchronously. A pthread pool is created
which expands dynamically by creating new threads as work is
given to it to a maximum of 100 threads per smbd process.
To change this limit see the "aio num threads" parameter
below. New threads are not created if idle threads are
available when a new read or write request is received,
the new work is given to an existing idle thread. Threads
terminate themselves if idle for one second.
</para>
<para>
smb.confパラメータ<command>aio write size</command>と
<command>aio write size</command>はこのモジュールを有効にするために
適切に設定する必要があることに注意。</para>
<para>
Note that the smb.conf parameters <command>aio read size</command>
and <command>aio write size</command> must also be set appropriately
for this module to be active.
</para>
<para>このモジュールは、Samba VFS pread/pwriteインタフェースが
スレッドセーフではないので、任意のモジュールスタックの最後に
位置づけなければならない。このモジュールは直接preadとpwrite
システムコールを使い、Samba VFS preadとpwriteインタフェースを
呼び出さない。</para>
<para>This module MUST be listed last in any module stack as
the Samba VFS pread/pwrite interface is not thread-safe. This
module makes direct pread and pwrite system calls and does
NOT call the Samba VFS pread and pwrite interfaces.</para>
</refsect1>
<refsect1>
<title>例</title>
<para>Straight forward use:</para>
<programlisting>
<smbconfsection name="[cooldata]"/>
<smbconfoption name="path">/data/ice</smbconfoption>
<smbconfoption name="aio read size">1024</smbconfoption>
<smbconfoption name="aio write size">1024</smbconfoption>
<smbconfoption name="vfs objects">aio_pthread</smbconfoption>
</programlisting>
</refsect1>
<refsect1>
<title>オプション</title>
<variablelist>
<varlistentry>
<term>aio_pthread:aio num threads = INTEGER</term>
<listitem>
<para>IO要求を提供するためのthread pool中に作成される、
smbd毎のスレッドの最大数を制限する。
</para>
<para>既定値ではこの値は 100である。</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>バージョン</title>
<para>このマニュアルページはバージョン 3.6.3のSambaシステム用である。
</para>
</refsect1>
<refsect1>
<title>著者</title>
<para>オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew
Tridgell によって作成された。現在 Samba は Samba Team に
よって、Linuxカーネルの開発と同様のオープンソースプロジェクト
として開発が行なわれている。</para>
</refsect1>
<refsect1>
<title>日本語訳</title>
<para>このドキュメントは、Samba 3.6.6 - 3.6.7 に対応する。</para>
<para>このドキュメントの翻訳は
<itemizedlist>
<listitem><para>太田俊哉 (ribbon @ samba.gr.jp)</para></listitem>
</itemizedlist>
によって行なわれた。</para>
</refsect1>
</refentry>
おおた@さんば
sugj-tech メーリングリストの案内