桐山です

At Mon, 19 Apr 2010 18:59:33 +0900,
Hajimu UMEMOTO wrote:
> 
> kiri> nfsd ですが,どうも -n オプションが利かないみたいなんですが,
> kiri> ソースをちょっと見たところどうも新しいカーネル(注)では全く
> kiri> nfsd を産んでくれないみたいなんですが,これは仕様でしょうか?
> 
> 全然気づいていませんでした。仕様でしょう。マルチプロセスではなくカーネ
> ルスレッド化されているようです。
> 
> u...@himuro:~% ps axH |grep nfsd
> 17950  ??  S      0:00.32 nfsd: server (nfsd)
> 17950  ??  S      0:00.24 nfsd: server (nfsd)
> 17950  ??  S      0:00.20 nfsd: server (nfsd)
> 17950  ??  S      0:00.25 nfsd: server (nfsd)
> 51548  ??  Is     0:00.01 nfsd: master (nfsd)

なるほど...

> ここで fork() 後に呼んでいる start_server() で、new_syscall の場合に
> nfssvc() 与える構造体に nfsdcnt をセットしています。名前からしてスレッ
> ド数ですね。
> 
>               nfsdargs.principal = principal;
>               nfsdargs.minthreads = nfsdcnt;
>               nfsdargs.maxthreads = nfsdcnt;
>               error = nfssvc(nfssvc_nfsd, &nfsdargs);

/usr/include/fs/nfs/nfs.h (↓) ですね

/*
 * nfsd argument for new krpc.
 */
struct nfsd_nfsd_args {
        const char *principal;  /* GSS-API service principal name */
        int     minthreads;     /* minimum service thread count */
        int     maxthreads;     /* maximum service thread count */
};

ただ,現状は数十台のディスクレスクライアントマシンを同時に一
斉に立ち上げているのですが,以前(6.2-RELEASE-p7)に比べ驚異的
に遅くなっています(注).クライアントの方もスレッド対応にしな
いといけないということはありますか? クライアントの rc.conf
は [1] なかんじです.まぁ,6.2-RELEASE-p7 は OS はローカルで
KDE3.5に対し 8.0-STABLE の方は完全ディスクレスで KDE4.3.4
ってのはありますけど....

(注) 2〜3分(6.2-RELEASE-p7)→20〜30分(8.0-STABLE)
[1] http://www.openedu.org/~kiri/trouble/rc.conf.default

メールによる返信