Sun NFS サーバーの調整

NFS サーバーの検査


注 -

以下では、大規模な構成の SPARCserver 690 システムを例にとって説明しています。


NFS サーバーを検査する
  1. 何がエクスポートされているのかを調べます。


    server% share
    -               /export/home   rw=netgroup   ""
    -               /var/mail   rw=netgroup   ""
    -               /cdrom/solaris_2_3_ab   ro   ""

  2. マウントされているファイルシステムと、そのファイルシステムが実際にマウントされているディスクドライブを表示します。


    server% df -k
    Filesystem            kbytes    used   avail capacity  Mounted on
    /dev/dsk/c1t0d0s0    73097      36739  29058     56%   /      
    /dev/dsk/c1t0d0s3    214638     159948 33230     83%   /usr
    /proc                 0          0       0         0% /proc  
    fd                    0          0       0         0% /dev/fd   
    swap                 501684     32     501652    0%   /tmp      
    /dev/dsk/c1t0d0s4   582128     302556  267930   53%   /var/mail
    /vol/dev/dsk/c0t6/solaris_2_3_ab                            
    /dev/md/dsk/d100    7299223    687386  279377   96%   /export/home 
                         113512     113514  0        100%   /cdrom/solaris_2_3_ab


    注 -

    この例では、/var/mail/export/home ファイルシステムを使用しています。


    df -k コマンドを使用してファイルサーバーが存在するディスク番号を調べます。

    ファイルシステムの使用率が 100 % になると、通常、クライアント側で NFS 書き込みエラーが発生します。

    上記の例の /var/mail/dev/dsk/clt0d0s4 に、/export/home は Solstice DiskSuite メタディスクの /dev/md/dsk/d100 に存在しています。

  3. df -k コマンドを使用して Solstice DiskSuite メタディスクが返された場合は、ディスク番号を確認します。


    server% /usr/opt/SUNWmd/sbin/metastat ディスク番号
    

    上記の例の /usr/opt/SUNWmd/sbin/metastate d100 によって、物理ディスク /dev/md/dsk/d100 が使用しているディスクを確認することができます。

    d100 ディスクはミラー化されています。各ミラーは、3 つのストライプディスクと、4 つのストライプディスクを連結したものから構成されます。それぞれのセット内のディスクは同じ大きさですが、セット間では大きさが異なります。ミラーの他に、ホットスペアディスクもあります。このシステムでは、IPI ディスク (idX) を使用しており、 SCSI ディスク (sdX) は同じディスクとして扱われます。


    server% /usr/opt/SUNWmd/sbin/metastat d100
    d100: metamirror
        Submirror 0: d10
          State: Okay
        Submirror 1: d20
          State: Okay
        Regions which are dirty: 0%
    d10: Submirror of d100
        State: Okay
        Hot spare pool: hsp001
        Size: 15536742 blocks
        Stripe 0: (interlace : 96 blocks)
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c1t1d0s7          0     No    Okay         
        /dev/dsk/c2t2d0s7          0     No    Okay        
        /dev/dsk/c1t3d0s7          0     No    Okay         
        Stripe 1: (interlace : 64 blocks)
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c3t1d0s7          0     No    Okay         
        /dev/dsk/c4t2d0s7          0     No    Okay         
        /dev/dsk/c3t3d0s7          0     No    Okay         
        /dev/dsk/c4t4d0s7          0     No    Okay         
    d20: Submirror of d100
        State: Okay
        Hot spare pool: hsp001
    Size: 15536742 blocks
        Stripe 0: (interlace : 96 blocks)
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c2t1d0s7          0     No    Okay         
        /dev/dsk/c1t2d0s7          0     No    Okay         
        /dev/dsk/c2t3d0s7          0     No    Okay         
        Stripe 1: (interlace : 64 blocks)
        Device              Start Block  Dbase State        Hot Spare
        /dev/dsk/c4t1d0s7          0     No    Okay         
        /dev/dsk/c3t2d0s7          0     No    Okay         
        /dev/dsk/c4t3d0s7          0     No    Okay         
        /dev/dsk/c3t4d0s7          0     No    Okay      /dev/dsk/c2t4d0s7

  4. エクスポートされている各ファイルシステムについて /dev/dsk エントリを調べます。以下のいずれかの方法を使用します。

    • whatdev スクリプトを使用してドライブのインスタンスかニックネームを調べます(手順 5 に進みます)。

    • ls -lL コマンドを使用して /dev/dsk エントリを調べます (手順 6 に進みます)。

  5. whatdev スクリプトを使用して /dev/dsk エントリを確認する場合は、以下のようにします。

    1. テキストエディタを使用して、以下の whatdev スクリプトを作成します。


      #!/bin/csh
      # print out the drive name - st0 or sd0 - given the /dev entry
      # first get something like "/iommu/.../.../sd@0,0"
      set dev = '/bin/ls -l $1 | nawk '{ n = split($11, a, "/"); split(a[n],b,"”:");
      for(i = 4; i < n; i++) printf("/%s",a[i]); printf("/%s\n", b[1]) }'' 
      if ( $dev == "" ) exit
      # then get the instance number and concatenate with the "sd"
      nawk -v dev=$dev '$1 ~ dev { n = split(dev, a, "/"); split(a[n], \
      b, "@"); printf("%s%s\n", b[1], $2) }' /etc/path_to_inst

    2. df -k /ファイルシステム名」と入力して、ファイルシステムの /dev/dsk エントリを調べます。

      この例では、df -k /var/mail と入力します。


      furious% df -k /var/mail
      Filesystem            kbytes    used   avail capacity  Mounted on
      /dev/dsk/c1t0d0s4     582128  302556  267930    53%    /var/mail

    3. whatdev ディスク名」と入力して、ディスク番号を求めます (ディスク名は、 df -k /ファイルシステム名 コマンドによって返されたディスク名)。

      この例では、whatdev /dev/dsk/clt0d0s4 と入力します。この場合のディスク番号は id8 (IPI ディスク 8) です。


      server% whatdev /dev/dsk/c1t0d0s4
      id8

    4. メタディスク (/dev/md/dsk) 以外のディスクに存在する各ファイルシステムについて手順 b手順 c を繰り返します。

    5. ファイルシステムにメタディスク (/dev/md/dsk) が存在する場合は、metastat の出力に応じて、メタディスクを構成する全ドライブに対して whatdev スクリプトを実行します。

      この例では、whatdev /dev/dsk/c2t1d0s7 と入力します。

      /export/home ファイルシステムは、14 のディスクから構成されています。このディスクの 1 つである /dev/dsk/c2t1d0s7 ディスクに、whatdev スクリプトを実行すると、次の結果が得られます。


      server% whatdev /dev/dsk/c2t1d0s7
      id17

      この場合の /dev/dsk/c2t1d0s7 はディスク id17 (IPI ディスク 17) です。

    6. 手順 7 に進みます。

  6. whatdev スクリプトではなく、ls -1L を使用して/dev/dsk エントリを確認する場合は、以下のようにします。

    1. ls -1L ディスク番号」と入力し、ドライブとそのドライブの主および副デバイス番号を表示します。

      /var/mail ファイルシステムの場合の入力例を以下に示します。 ls -lL /dev/dsk/c1t0d0s4


      ls -lL /dev/dsk/c1t0d0s4
      brw-r-----  1 root      66,  68 Dec 22 21:51 /dev/dsk/c1t0d0s4

    2. ls -1L の出力から副デバイス番号を探します。

      この例では、ファイル所有権 (root) の直後の 66 が主デバイス番号、次の 68 は副デバイス番号です。

    3. ディスク番号を調べます。

      • 上記の例では、副デバイス番号 (68) を 8 で割ります (68÷8 = 8.5)。

      • 端数を切り捨てます。8 がディスク番号です。

    4. スライス (パーティション) 番号を求めます。

      ディスク番号の s (slice の s) の後にある数字を確認します。 たとえば /dev/dsk/clt0d0s4 の場合は、s の後の 4 がスライス 4 を示します。

      ディスク番号が 8、スライス番号が 4 であることを確認できました。 このディスクは sd8 (SCSI) か id8 (IPI) です。

  7. iostat -x 15」と入力して、各ディスクのディスク統計情報を表示します。-x によって、拡張ディスク統計情報を指示するオプションです。15 は、ディスク統計情報を 15 秒おきに収集することを意味します。


    server% iostat -x 15
    extended disk statistics 
    disk      r/s  w/s   Kr/s   Kw/s wait actv  svc_t  %w  %b
    id10      0.1  0.2    0.4    1.0  0.0  0.0   24.1   0   1 
    id11      0.1  0.2    0.4    0.9  0.0  0.0   24.5   0   1
    id17      0.1  0.2    0.4    1.0  0.0  0.0   31.1   0   1 
    id18      0.1  0.2    0.4    1.0  0.0  0.0   24.6   0   1 
    id19      0.1  0.2    0.4    0.9  0.0  0.0   24.8   0   1
    id20      0.0  0.0    0.1    0.3  0.0  0.0   25.4   0   0
    id25      0.0  0.0    0.1    0.2  0.0  0.0   31.0   0   0
    id26      0.0  0.0    0.1    0.2  0.0  0.0   30.9   0   0
    id27      0.0  0.0    0.1    0.3  0.0  0.0   31.6   0   0 
    id28      0.0  0.0    0.0    0.0  0.0  0.0    5.1   0   0 
    id33      0.0  0.0    0.1    0.2  0.0  0.0   36.1   0   0 
    id34      0.0  0.2    0.1    0.3  0.0  0.0   25.3   0   1
    id35      0.0  0.2    0.1    0.4  0.0  0.0   26.5   0   1
    id36      0.0  0.0    0.1    0.3  0.0  0.0   35.6   0   0
    id8       0.0  0.1    0.2    0.7  0.0  0.0   47.8   0   0
    id9       0.1  0.2    0.4    1.0  0.0  0.0   24.8   0   1
    sd15      0.1  0.1    0.3    0.5  0.0  0.0   84.4   0   0
    sd16      0.1  0.1    0.3    0.5  0.0  0.0   93.0   0   0 
    sd17      0.1  0.1    0.3    0.5  0.0  0.0   79.7   0   0 
    sd18      0.1  0.1    0.3    0.5  0.0  0.0   95.3   0   0 
    sd6       0.0  0.0    0.0    0.0  0.0  0.0  109.1   0   0

    iostat -x 15 コマンドを使用し、各ディスクについて拡張ディスク統計情報を得ることができます。次の手順では、sed スクリプトを使用してディスク名をディスク番号に変換する方法を説明します。

    拡張ディスク統計情報出力の各項目の意味は以下のとおりです。

    表 2-3 iostat -x 15 コマンドの出力 (拡張ディスク統計情報)
     引数 説明
    r/s

    秒あたりの読み取り回数 

    w/s

    秒あたりの書き込み回数 

    Kr/s

    秒あたりの読み取り KB 数 

    Kw/s

    秒あたりの書き込み KB 数 

    wait

    サービス待ちの平均トランザクション数 (待ち行列の長さ) 

    actv

    サービスを受けている平均トランザクション数 

    svc_t

    平均サービス時間 (ミリ秒) 

    %w

    待ち行列が空になっていない時間の割合 

    %b

    ディスクが使用されている時間の割合 

  8. ディスク名をディスク番号に変換します。

    ここでは、iostatsar を使用します。ディスク名をディスク番号に変換する最も簡単な方法は、sed スクリプトを利用することです。

    1. 以下に示す d2fs.server sed スクリプトを参考にし、テキストエディタを使用して sed スクリプトを作成します。

      作成した sed スクリプトでは、ディスク番号の代わりにファイルシステム名を使用します。

      この例では、id8 ディスクが /var/mailid9id10id11id17、id18、id25、id26、id27、id28、id33、id34、id35、id36 ディスクが /export/home です。


      sed 's/id8 /var/mail/
          s/id9 /export/home/
          s/id10 /export/home/
          s/id11 /export/home/
          s/id17 /export/home/
          s/id18 /export/home/
          s/id25 /export/home/
          s/id26 /export/home/
          s/id27 /export/home/
          s/id28 /export/home/
          s/id33 /export/home/
          s/id34 /export/home/
          s/id35 /export/home/
          s/id36 /export/home/'

    2. iostat -xc 15 | d2fs.server と入力して、sed スクリプトを通して iostat -xc 15 コマンドを実行します。

      iostat -xc 15 | d2fs.server の各オプションの意味を以下の表に示します。

      表 2-4 iostat -xc 15 | d2fs.server コマンドのオプション
       引数 説明

      -x

      拡張ディスク統計情報の指定です。 

      -c

      システムがユーザーモード (us) 、システムモード (sy) 、入出力待ち (wt) 、アイドル (id) している時間の長さの割合を報告します。

      15

      15 秒ごとにディスク統計情報を収集します。 

      iostat -xc 15 | d2fs.server コマンドの出力例を以下に示します。


      % iostat -xc 15 | d2fs.server
      extended disk statistics          cpu
      disk              r/s  w/s   Kr/s   Kw/s wait actv  svc_t  %w  %b  us sy wt id
      export/home       0.1  0.2    0.4    1.0  0.0  0.0   24.1   0   1   0 11  2 86
      export/home      0.1  0.2    0.4    0.9  0.0  0.0   24.5   0   1 
      export/home      0.1  0.2    0.4    1.0  0.0  0.0   31.1   0   1
      export/home      0.1  0.2    0.4    1.0  0.0  0.0   24.6   0   1
      export/home      0.1  0.2    0.4    0.9  0.0  0.0   24.8   0   1
      id20             0.0  0.0    0.1    0.3  0.0  0.0   25.4   0   0
      export/home      0.0  0.0    0.1    0.2  0.0  0.0   31.0   0   0
      export/home      0.0  0.0    0.1    0.2  0.0  0.0   30.9   0   0
      export/home      0.0  0.0    0.1    0.3  0.0  0.0   31.6   0   0
      export/home      0.0  0.0    0.0    0.0  0.0  0.0    5.1   0   0
      export/home      0.0  0.0    0.1    0.2  0.0  0.0   36.1   0   0
      export/home      0.0  0.2    0.1    0.3  0.0  0.0   25.3   0   1
      export/home      0.0  0.2    0.1    0.4  0.0  0.0   26.5   0   1
      export/home      0.0  0.0    0.1    0.3  0.0  0.0   35.6   0   0
      var/mail         0.0  0.1    0.2    0.7  0.0  0.0   47.8   0   0
      id9              0.1  0.2    0.4    1.0  0.0  0.0   24.8   0   1
      sd15             0.1  0.1    0.3    0.5  0.0  0.0   84.4   0   0 
      sd16             0.1  0.1    0.3    0.5  0.0  0.0   93.0   0   0
      sd17             0.1  0.1    0.3    0.5  0.0  0.0   79.7   0   0
      sd18             0.1  0.1    0.3    0.5  0.0  0.0   95.3   0   0
      sd6              0.0  0.0    0.0    0.0  0.0  0.0  109.1   0   0 

      上記の例の各欄の用語と略語の意味は以下のとおりです。

      表 2-5 iostat -xc 15 コマンドの出力
       引数 説明
      r/s

      秒あたりの読み取り回数 

      w/s

      秒あたりの書き込み回数 

      Kr/s

      秒あたりの読み取り KB 数 

      Kw/s

      秒あたりの書き込み KB 数 

      wait

      サービス待ちの平均トランザクション数 (待ち行列の長さ) 

      actv

      サービスを受けている平均トランザクション数 

      svc_t

      平均サービス時間 (ミリ秒) 

      %w

      待ち行列が空になっていない時間の割合 

      %b

      ディスクが使用されている時間の割合 

      svc_t

      ディスク要求の処理を終えるまでの平均サービス時間 (ミリ秒)。この時間には、待ち時間とアクティブ待ち行列時間、シーク回転時間、転送待ち時間が含まれます。 

      us

      CPU 時間 

    3. sed スクリプトを介して sar -d 15 1000 コマンドを実行します。


      server% sar -d 15 1000 | d2fs.server
      12:44:17   device    %busy       avque   r+w/s  blks/s avwait  avserv
      12:44:18  export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                id20          0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                var/mail      0         0.0       0       0     0.0   0.0
                export/home   0         0.0       0       0     0.0   0.0
                sd15          7         0.1       4     127     0.0  17.6
                sd16          6         0.1       3     174     0.0  21.6
                sd17          5         0.0       3     127     0.0  15.5

      -d オプションは、ディスク装置の利用状況を報告します。15 は、15 秒ごとにデータを収集するという意味です。1000 は、データ収集を 1000 回行うという意味です。出力の各欄の用語と略語の意味は以下のとおりです。

      表 2-6 sar -d 15 1000 | d2fs.server コマンドの出力
       ヘッダー 説明
      device

      監視中のディスク装置名。 

      %busy

      装置が転送要求の処理に費やした時間の割合 (iostat %b と同じ)。

      avque

      監視中に未処理の要求の平均個数 (iostat actv と同じ) 。待ち行列に要求がある場合のみ測定されます。

      r+w/s

      装置に対する 1 秒あたりの読み取りおよび書き込み転送回数 (iostat r/s + w/s と同じ)。

      blks/s

      1 秒あたりに装置に転送された 512 バイトブロック数 (iostat 2*(kr/s + kw/s)と同じ)。

      avwait

      転送要求が待ち行列で待たされる平均時間 (ミリ秒) (iostat wait と同じ) 待ち行列に要求がある場合のみ測定されます。

      avserv

      装置による転送要求の処理を終えるまでの平均時間 (ミリ秒) 。ディスクの場合、この時間には、シーク時間と回転待ち時間、データ転送時間が含まれます。 

    4. NFS 経由でファイルシステムがエクスポートされている場合は、%b%busy 値を調べます。

      %b 値はディスクがビジーになっている時間の割合を表し、iostat コマンドによって返されます。%busy 値は装置が転送要求の処理に費やした時間の割合を表し、sar コマンドによって返されます。%b%busy 値が 30 % を超える場合は、 手順 e に進みます。30 % を超えていない場合は、手順 9 に進みます。

    5. svc_t 値と avserv 値を調べます。

      svc_t 値は平均サービス時間 (ミリ秒) を表し、iostat コマンドによって返されます。avserv 値は装置による転送要求の処理が終えるまでの平均時間 (ミリ秒) を表し、sar コマンドによって返されます。svc_t と同じ測定値を得るには、avwait を追加します。

      svc_t 値 (平均サービス時間) が 40 ミリ秒を超える場合は、ディスクの応答時間が長くなっています。NFS クライアントから見ると、ディスクの入出力を伴う NFS 要求の処理は遅くなります。NFS 応答時間は、NFS プロトコル処理とネットワーク伝送時間を考慮して、平均 50 ミリ秒以下が適当です。ディスクの応答時間は、40 ミリ秒以下が適当です。

      平均サービス時間は、ディスクの関数です。高速なディスクを使用している場合、平均サービス時間は遅いディスクを使用する場合にくらべて短くなります。

  9. sys crontab ファイルの行のコメント指定を外し、sar によって 1 か月間データを収集することによって、定期的にデータを収集します。


    root# crontab -l sys
    #ident"@(#)sys1.592/07/14 SMI"/* SVr4.0 1.2*/
    #
    # The sys crontab should be used to do performance collection.
    # See cron and performance manual pages for details on startup.
    0 * * * 0-6 /usr/lib/sa/sa1
    20,40 8-17 * * 1-5 /usr/lib/sa/sa1
    5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A

    性能に関するデータが継続的に収集され、sar の実行結果の記録が作成されます。


    注 -

    /var/adm/sa ファイルには、数百 KB の空き領域が必要です。


  10. 負荷を分散させます。

    Solstice DiskSuite または Online: DiskSuite を使用し、ファイルシステムを複数のディスクにストライプ処理します。Prestoserve 書き込みキャッシュを使用してアクセス回数を減らし、アクセスのピーク時の負荷を分散します (Solstice DiskSuite または Online: DiskSuite によるディスクのアクセス負荷の分散を参照)。

  11. 読み取り専用ファイルシステムがある場合は、バッファーキャッシュを調整します (バッファーキャッシュの調整 (bufhwm)を参照してください)。

  12. %プロンプトに対して nfsstat -s と入力して、NFS の問題点を調べます。

    -s オプションを指定すると、サーバーの統計情報を表示することができます。


    server% nfsstat -s
    Server rpc:
    calls      badcalls   nullrecv   badlen     xdrcall
    480421     0          0          0          0         
    Server nfs:
    calls      badcalls
    480421     2
    null       getattr    setattr    root       lookup     readlink   read 
    95  0%     140354 29% 10782  2%  0  0%      110489 23% 286  0%    63095 13%
    wrcache    write      create     remove     rename     link       symlink
    0  0%      139865 29% 7188  1%   2140  0%   91  0%     19  0%     231  0%
    mkdir      rmdir      readdir    statfs 
    435  0%    127  0%    2514  1%   2710  1% 

    NFS サーバーの画面には、受信された NFS コール数 (calls)、拒否されたコール数 (badcalls) 、実際に行われた各種呼び出し数とその割合が表示されます。 nfsstat -s を実行して返される呼び出し数と割合については、以下の表を参照してください。

    表 2-7 nfsstat -s コマンドの出力
     ヘッダー 説明
    calls

    受信された RPC コール数の合計。 

    badcalls

    RPC 層に拒否されたコール数の合計 (badlenxdrcall の合計)。

    nullrecv

    受信したと思われるのに使用できる RPC コールがなかった回数。 

    badlen

    最小サイズの RPC コールより短い RPC コール数。 

    xdrcall

    ヘッダーを XDR デコードできなかった RPC コール数。 

    nfsstat -s コマンドの出力と対処方法を以下に示します。

    表 2-8 nfsstat -s コマンドを実行して得られる出力と処置

    原因 

    対処方法 

    writes 値が 5 % を超える1  

    最高の性能が得られるように、Prestoserve NFS アクセラレータ (SBus カードまたは NVRAM-NVSIMM) をインストールします (Prestoserve NFS アクセラレータを参照) 。

    badcalls が返される

    badcalls は、RPC レイヤーによって拒否されたコールで、badlenxdrcall の合計です。ネットワークが過負荷になっている可能性があります。ネットワークインタフェース統計情報を利用して、過負荷のネットワークを特定してください。

    readlink が NFS サーバーの lookup コール数の合計の 10 % を超える

    NFS クライアントが使用しているシンボリックリンクが多すぎます。シンボリックリンクは、サーバーによってエクスポートされたファイルシステム上に存在するリンクです。シンボリックリンクをディレクトリに置き換えてください。NFS クライアントにベースのファイルシステムとシンボリックリンクのターゲットの両方をマウントします。以下の 手順 13 を参照してください。

    getattr が 40 % を超える

    actimeo オプションを使ってクライアントの属性キャッシュを大きくします。必ずDNLC と i ノードキャッシュは大きくしてください。vmstat -s を使用し DNLC のヒット率 (cache hits) を求め、必要に応じて /etc/system ファイルの ncsize 値を大きくします。ディレクトリ名ルックアップキャッシュ (DNLC) も参照してください。

     1. writes 値 29 % は非常に高い値です。

  13. シンボリックリンクを削除します。

    nfsstat -s コマンド出力の symlink 値が 10 % を超える場合は、シンボリックリンクを削除してください。以下の例では、/usr/tools/dist/sun4/usr/dist/bin のシンボリックリンク先です。

    1. /usr/dist/bin のシンボリックリンクを削除します。


      # rm /usr/dist/bin
      

    2. /usr/dist/bin ディレクトリを作成します。


      # mkdir /usr/dist/bin
      

    3. ディレクトリをマウントします。


      client# mount server: /usr/dist/bin
      client# mount server: /usr/tools/dist/sun4
      client# mount 
      

  14. vmstat -s と入力して、ディレクトリ名ルックアップキャッシュ (DNLC) ヒット率を表示します。

    vmstat -s コマンドは、ヒット率 (cache hits) を返します。


    % vmstat -s
    ...[略]...
    79062 total name lookups (cache hits 94%)
    16 toolong

    1. ロングネーム数に問題がないにもかかわらず、ヒット率が 90 % 以下の場合は、 /etc/system ファイルの ncsize 変数値を大きくします。


      set ncsize=5000
      

      30 文字より短いディレクトリ名がキャッシュされます。また、長すぎてキャッシュできないディレクトリ名も報告されます。

      ncsize のデフォルト値は以下のとおりです。

      ncsize (ネームキャッシュ) = 17*maxusers + 90

      • NFS サーバーのベンチマークでは、16000 に設定されています。

      • maxusers = 2048 の場合は、34906 に設定されます。

      ディレクトリ名ルックアップキャッシュの詳細については、ディレクトリ名ルックアップキャッシュ (DNLC) を参照してください。

    2. システムを再起動します。

  15. Prestoserve NFS アクセラレータを使用している場合は、その状態を調べて、UP 状態になっていることを確認します。


    server% /usr/sbin/presto
    state = UP, size = 0xfff80 bytes
    statistics interval: 1 day, 23:17:50  (170270 seconds)
    write cache efficiency: 65%
    All 2 batteries are ok

    • DOWN 状態になっている場合は、UP 状態に設定します。


      server% presto -u
      

    • エラー状態の場合は、『Prestoserve User's Guide』を参照してください。

これでサーバーを検査する手順は終了しました。引き続き、各クライアントを検査してください。