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.  このマニュアルの改訂履歴

索引

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

このセクションでは、物理メモリーやスタック構成に関連する一般的なカーネルパラメータについて説明します。ZFS 関連のメモリーパラメータは第 3 章Oracle Solaris ZFS チューニング可能パラメータに移動しました。

physmem

説明

Oracle Solaris OS とファームウェアが把握されたあとで、メモリーの物理ページ数に関するシステム構成を変更します。

データ型

符号なし long

デフォルト

そのシステムで使用できる物理メモリーのページ数。これには、コアカーネルとそのデータが格納されているメモリーは含まれません。

範囲

1 からシステムの物理メモリーの総量まで

単位

ページ

動的か

いいえ

検証

なし

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

より少ない物理メモリーでシステムを実行したときの影響を調べたい場合。このパラメータに対しては、コアカーネルやそのデータ、その他のさまざまなデータ構造体 (起動処理の初期に割り当て) などのメモリーは考慮されません。したがって、physmem の値は、より小さなメモリー量を表わすよう、想定したページ数より小さくすべきです。

コミットレベル

変更の可能性あり

default_stksize

説明

すべてのスレッドのデフォルトスタックサイズを指定します。default_stksize より小さいスタックサイズを指定してスレッドを作成することはできません。default_stksize が設定されている場合、それは lwp_default_stksize をオーバーライドします。lwp_default_stksize も参照してください。

データ型

整数

デフォルト
  • SPARCシステムでは PAGESIZE の 3 倍。

  • x64 システムでは PAGESIZE の 5 倍。

範囲

最小値はデフォルト値です。

  • SPARCシステムでは PAGESIZE の 3 倍。

  • x64 システムでは PAGESIZE の 5 倍。

最大値はデフォルト値の 32 倍です。

単位

getpagesize パラメータから戻った値の倍数になるバイト数です。詳細は、getpagesize(3C) を参照してください。

動的か

はい。変数の変更後、作成されるスレッドに影響があります。

検証

8192 以上、262,144 (256 x 1024) 以下にする必要があります。また、システムページサイズの倍数でなければなりません。これらの条件が満たされないと、次のメッセージが表示されます。

Illegal stack size, Using N

N の値は、 default_stksize のデフォルト値です。

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

スタック容量が足りないためにシステムがパニックになる場合。この問題を解決するもっともよい方法は、システムが容量を使い果たす原因を明らかにし、それを修正することです。

デフォルトのスタックサイズを増やすと、ほとんどすべてのカーネルスレッドのスタックが大きくなるため、カーネルのメモリー使用量が不当に増加します。通常、そのスペースは使用されません。さらに、カーネルの使用量が増えると、同じメモリープールを使用する他のリソースの容量が少なくなるため、システムの作業を行う能力が低下するおそれがあります。副次的な影響として、カーネルが作成できるスレッドの数が少なくなります。したがって、この方法は、根本的な原因が解消されるまでの一時的な回避策として使用すべきです。

コミットレベル

変更の可能性あり

lwp_default_stksize

説明

カーネルスレッドの作成時に呼び出しルーチンが明示的に使用サイズを提供しなかった場合に使用する、スタックの大きさのデフォルト値を指定します。

データ型

整数

デフォルト
  • 32,768 (SPARC プラットフォーム)

  • 20,480 (x64 プラットフォーム)

範囲

最小値はデフォルト値です。

  • SPARCシステムでは PAGESIZE の 3 倍。

  • x64 システムでは PAGESIZE の 5 倍。

最大値はデフォルト値の 32 倍です。

単位

getpagesize パラメータから戻った値の倍数になるバイト数です。詳細は、getpagesize(3C) を参照してください。

動的か

はい。変数の変更後、作成されるスレッドに影響があります。

検証

8192 以上、262,144 (256 x 1024) 以下にする必要があります。また、システムページサイズの倍数でなければなりません。これらの条件が満たされないと、次のメッセージが表示されます。

Illegal stack size, Using N

N の値は、lwp_default_stksize のデフォルト値です。

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

スタック容量が足りないためにシステムがパニックになる場合。この問題を解決するもっともよい方法は、システムが容量を使い果たす原因を明らかにし、それを修正することです。

デフォルトのスタックサイズを増やすと、ほとんどすべてのカーネルスレッドのスタックが大きくなるため、カーネルのメモリー使用量が不当に増加します。通常、そのスペースは使用されません。さらに、カーネルの使用量が増えると、同じメモリープールを使用する他のリソースの容量が少なくなるため、システムの作業を行う能力が低下するおそれがあります。副次的な影響として、カーネルが作成できるスレッドの数が少なくなります。したがって、この方法は、根本的な原因が解消されるまでの一時的な回避策として使用すべきです。

コミットレベル

変更の可能性あり

logevent_max_q_sz

説明

キューに格納して syseventd デーモンへの配信を待機させることのできる、システムイベントの最大数です。システムイベントキューのサイズがこの制限に達すると、他のシステムイベントをキューに入れることはできません。

データ型

整数

デフォルト

5000

範囲

0 から MAXINT

単位

システムイベント

動的か

はい

検証

ddi_log_syseventsysevent_post_event によってシステムイベントが生成されるたびに、システムイベントフレームワークはこの値をチェックします。

詳細は、ddi_log_sysevent(9F) およびsysevent_post_event(3SYSEVENT) のマニュアルページを参照してください。

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

システムイベントのログ、生成、または送信が失敗したことをエラーログメッセージが示す場合。

コミットレベル

変更の可能性あり

segkpsize

説明

利用できるページング可能なカーネルのメモリー量を指定します。このメモリーは主にカーネルスレッドのスタックに使用されます。この値を増やすと、スレッドの数を増やさないのであれば個々のスレッドでより大きなスタックが使用でき、あるいはより多くのスレッドを使用できるようになります。

データ型

符号なし long

デフォルト

2G バイト x nCPU/128 または物理メモリーの容量/256G バイトのどちらか小さい方

範囲

512M バイトから 64G バイト (SPARC)

200M バイトから 8G バイト (x86)

単位

ページ

動的か

いいえ

検証

値は最小および最大サイズと比較されます。最小値に満たないか、または最大値を超えている場合は 2G バイトにリセットされます。その作用に関するメッセージが表示されます。

SPARC システムでは、segkpsize 値は物理メモリーのサイズの 2 倍を超えることができません。x86 システムでは、値は物理メモリーのサイズを超えることができません。

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

システム上で多数のプロセスをサポートしなければならない場合。2G バイトのデフォルトサイズでは、65,536 を超えるカーネルスレッド用に 24K バイトのスタックを作成できます。これより大きな数が必要な場合や、スタックサイズを増やすことが必要な場合は、物理メモリーが十分にあれば segkpsize を増やすことができます。

コミットレベル

変更の可能性あり

変更履歴

詳細は、segkpsizeを参照してください。

noexec_user_stack

説明

スタックを実行不能として指定できるので、バッファーオーバーフロー攻撃がいっそう困難になります。

64 ビットカーネルが動作している Oracle Solaris システムでは、すべての 64 ビットアプリケーションのスタックがデフォルトで実行不能になります。このパラメータの設定は、32 ビットアプリケーションを実行不能にするために必要です。

データ型

符号付き整数

デフォルト

0 (無効)

範囲

0 (無効)、1 (有効)

単位

切り替え (オン/オフ)

動的か

はい。ただし、すでに実行中のプロセスに対しては無効です。値が設定された後に起動されたプロセスに対してのみ有効です。

検証

なし

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

アプリケーションが、mprotect を使用してスタックを実行可能にすることなくスタックに実行可能コードを意図的に置いている場合を除き、この変数は常に有効にすべきです。詳細は、mprotect(2) のマニュアルページを参照してください。

コミットレベル

変更の可能性あり