JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 カーネルのチューンアップ・リファレンスマニュアル     Oracle Solaris 11.1 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris システムのチューニングの概要

2.  Oracle Solaris カーネルチューニング可能パラメータ

チューニング可能パラメータ情報の記載箇所

カーネルとメモリーの一般的なパラメータ

physmem

default_stksize

lwp_default_stksize

logevent_max_q_sz

segkpsize

noexec_user_stack

fsflush とそれに関連するパラメータ

fsflush

tune_t_fsflushr

autoup

dopageflush

doiflush

プロセス規模調整パラメータ

maxusers

reserved_procs

pidmax

max_nprocs

maxuprc

ngroups_max

ページング関連パラメータ

lotsfree

desfree

minfree

throttlefree

pageout_reserve

pages_pp_maximum

tune_t_minarmem

fastscan

slowscan

min_percent_cpu

handspreadpages

pages_before_pager

maxpgio

スワッピング関連パラメータ

swapfs_reserve

swapfs_minfree

カーネルメモリーアロケータ

kmem_flags

kmem_stackinfo

一般的なドライバパラメータ

moddebug

ddi_msix_alloc_limit

ネットワークドライバ パラメータ

igb パラメータ

mr_enable

intr_force

ixgbe パラメータ

tx_queue_number

rx_queue_number

intr_throttling

rx_limit_per_intr

tx_ring_size

rx_ring_size

tx_copy_threshold

rx_copy_threshold

一般的な入出力パラメータ

maxphys

rlim_fd_max

rlim_fd_cur

一般的なファイルシステムパラメータ

ncsize

dnlc_dir_enable

dnlc_dir_min_size

dnlc_dir_max_size

dnlc_dircache_percent

TMPFS パラメータ

tmpfs:tmpfs_maxkmem

tmpfs:tmpfs_minfree

仮想端末

pt_cnt

pt_pctofmem

pt_max_pty

STREAMS パラメータ

nstrpush

strmsgsz

strctlsz

System V メッセージキュー

System V セマフォー

System V 共有メモリー

segspt_minfree

スケジューリング

disp_rechoose_interval

タイマー

hires_tick

timer_max

SPARC システム固有のパラメータ

tsb_alloc_hiwater_factor

default_tsb_size

enable_tsb_rss_sizing

tsb_rss_factor

近傍性グループのパラメータ

lpg_alloc_prefer

lgrp_mem_pset_aware

3.  Oracle Solaris ZFS チューニング可能パラメータ

4.  NFS チューニング可能パラメータ

5.  インターネットプロトコル群のチューニング可能パラメータ

6.  システム機能のパラメータ

A.  チューニング可能パラメータの変更履歴

B.  このマニュアルの改訂履歴

索引

fsflush とそれに関連するパラメータ

このセクションでは、fsflush とそれに関連するチューニング可能パラメータについて説明します。

fsflush

システムデーモン fsflush は定期的に実行され、主に次の 3 つのタスクを行います。

  1. fsflush は呼び出されるたびに、一定期間が経過した汚れたファイルシステムページをディスクにフラッシュします。

  2. fsflush は呼び出されるたびに、メモリーの一部分を検証し、変更されたページをバッキングストアに書き出します。ページは、変更されており、かつ次の条件のどれにも該当しない場合に書き込まれます。

    • ページはカーネルページです

    • ページは使用されていません

    • ページがロックされています

    • ページにスワップデバイスが対応づけられています

    • ページが入出力操作に現在関与しています

    この結果、書き込み権に基づいて mmap でマッピングされ、かつ実際に変更されているファイルのページがフラッシュされます。

    ページはバッキングストアにフラッシュされますが、それを使用しているプロセスとの接続は保たれます。フラッシュしておくと、システムのメモリーが不足したときのページの再利用が簡単になります。これは、フラッシュ後にそのページが変更されていなければ、ページを回収する前にそのページをバッキングストアに書き出す必要がなくなり、遅延を避けられるからです。

  3. fsflush はファイルシステムのメタデータをディスクに書き込みます。この書き込みは n 回目の呼び出しごとに行われます。n はさまざまな構成変数から計算されます。詳細は、tune_t_fsflushrautoup を参照してください。

次の機能を構成できます。

ほとんどのシステムでは、fsflush によって、メモリーの走査と、ファイルシステムメタデータの同期化を行うのが一般的です。システムの使用状況によっては、メモリーの走査はほとんど意味がなかったり、CPU 時間を使用しすぎることがあります。

tune_t_fsflushr

説明

fsflush の呼び出し間隔を秒数で指定します。

データ型

符号付き整数

デフォルト

1

範囲

1 から MAXINT

単位

動的か

いいえ

検証

値がゼロ以下の場合、値は 1 にリセットされ、警告メッセージが出力されます。この確認が行われるのはブート時だけです。

どのような場合に変更するか

autoup パラメータを参照してください。

コミットレベル

変更の可能性あり

autoup

説明

個々の呼び出しでダーティーページに関して検査するメモリー量と、ファイルシステム同期操作の頻度を、tune_t_flushr とともに制御します。

さらに、autoup の値は、空リストからバッファーを書き出すかどうかの制御にも使用されます。B_DELWRI フラグが付いているバッファー (変更されているファイルコンテンツページを示す) は、空リストに置かれている時間が autoup 秒を超えると書き出されます。autoup の値を増やすと、バッファーがメモリーに置かれている時間が長くなります。

データ型

符号付き整数

デフォルト

30

範囲

1 から MAXINT

単位

動的か

いいえ

検証

autoup がゼロ以下の場合は、30 に再設定され、警告メッセージが出力されます。この確認が行われるのはブート時だけです。

暗黙的制約

autouptune_t_fsflushr の整数倍でなければなりません。最小でも autouptune_t_fsflushr 値の 6 倍以上でなければなりません。そうでないと、fsflush が呼び出されるたびに余計なメモリーが走査されます。

dopageflush がゼロでない場合にメモリーを検査するには、全体のシステムページ数に tune_t_fsflushr を掛け合わせた値が autoup 以上でなければなりません。

どのような場合に変更するか

autoup または tune_t_fsflushr (あるいはその両方) の変更が必要になる状況はいくつかあります。

  • 大きなメモリーをもつシステム – この場合には、autoup を増やすと、fsflush の個々の呼び出しで走査されるメモリー量が少なくなります。

  • メモリーの要求量が最小限のシステム – autouptune_t_fsflushr を両方とも増やすと、走査の回数が減ります。autouptune_t_fsflushr の現在の比率を維持するには autoup も増やす必要があります。

  • 一時ファイルの数が多いシステム (メールサーバーやソフトウェアビルドマシンなど) – 多数のファイルが作成されて削除された時、fsflush によって、これらのファイルのデータページがディスクに不必要に書き込まれるおそれがあります。

コミットレベル

変更の可能性あり

dopageflush

説明

fsflush の呼び出し時に、変更されたページの有無についてメモリーを検証するかどうかを制御します。fsflush を呼び出すたびに、システムの物理メモリーページ数が判別されます。この値は動的再構成動作によって変更されている可能性があります。呼び出しのたびに、次のアルゴリズムを使用して走査が実行されます。 ページ総数 x tune_t_fsflushr / autoup ページ

データ型

符号付き整数

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

単位

切り替え (オン/オフ)

動的か

はい

検証

なし

どのような場合に変更するか

システムページスキャナの実行がまれな場合 (vmstat 出力の sr 欄に値 0 が示される)。

コミットレベル

変更の可能性あり

doiflush

説明

fsflush 呼び出しでファイルシステムメタデータの同期化を行うかどうかを制御します。同期化は、fsflushN 回目の呼び出しごとに行われます。ここで N(autoup / tune_t_fsflushr) です。このアルゴリズムは整数の割り算であるため、tune_t_fsflushrautoup より大きいと、反復カウンタが N 以上であるかどうかをコードがチェックするので、同期化は fsflush が呼び出されるたびに行われます。Nfsflush を実行するときに 1 度だけ計算されることに注意してください。その後で tune_t_fsflushrautoup を変更しても、同期化操作の頻度に影響はありません。

データ型

符号付き整数

デフォルト

1 (有効)

範囲

0 (無効)、1 (有効)

単位

切り替え (オン/オフ)

動的か

はい

検証

なし

どのような場合に変更するか

一定期間にファイルが頻繁に変更されるため、フラッシュによる負荷がシステムの動作に悪影響を与える場合。

システムがリブートされる際に消えたり状態の一貫性がどうなっても構わないファイルは、 TMPFS ファイルシステム (/tmp など) に置いた方がいいでしょう。システム上の i ノードトラフィックを減らすには、mount -noatime オプションを使用します。このオプションを使うと、ファイルがアクセスされた時に i ノードの更新が行われません。

リアルタイム処理を行うシステムでは、このオプションを無効にし、アプリケーションによってファイルの同期化を明示的に行い、一貫性を保つことを望むこともあるでしょう。

コミットレベル

変更の可能性あり