Solaris 10 システム上で TCP 設定をチューニングするもっとも単純な方法は、単純な SMF サービスを次のようにして作成することです。
Directory Server チューニング用の SMF プロファイルを作成します。
次の xml ファイルを環境に従って編集し、そのファイルを /var/svc/manifest/site/ndd-nettune.xml として保存します。
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/ service_bundle.dtd.1">
<!--
ident "@(#)ndd-nettune.xml 1.0 04/09/21 SMI"
-->
<service_bundle type='manifest' name='SUNWcsr:ndd'>
<service
name='network/ndd-nettune'
type='service'
version='1'>
<create_default_instance enabled='true' />
<single_instance />
<dependency
name='fs-minimal'
type='service'
grouping='require_all'
restart_on='none'>
<service_fmri value='svc:/system/filesystem/minimal' />
</dependency>
<dependency
name='loopback-network'
grouping='require_any'
restart_on='none'
type='service'>
<service_fmri value='svc:/network/loopback' />
</dependency>
<dependency
name='physical-network'
grouping='optional_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/network/physical' />
</dependency>
<exec_method
type='method'
name='start'
exec='/lib/svc/method/ndd-nettune'
timeout_seconds='3' />
</exec_method>
<exec_method
type='method'
name='stop'
exec=':true'
timeout_seconds='3' >
</exec_method>
<property_group name='startd' type='framework'>
<propval name='duration' type='astring' value='transient' />
</property_group>
<stability value='Unstable' />
<template>
<common_name>
<loctext xml:lang='C'>
ndd network tuning
</loctext>
</common_name>
<documentation>
<manpage title='ndd' section='1M'
manpath='/usr/share/man' />
</documentation>
</template>
</service>
</service_bundle>
ndd-nettune.xml の設定内容をインポートする前に、その構文が正しいことを確認します。それには次のコマンドを実行します。
$ svccfg validate /var/svc/manifest/site/ndd-nettune.xml |
次のコマンドを実行して設定をインポートします。
$ svccfg import /var/svc/manifest/site/ndd-nettune.xml |
詳細については、svccfg(1M) のマニュアルページを参照してください。
次のシェルスクリプトを /lib/svc/method/ndd-nettune 内にコピーします。
#!/sbin/sh # # ident "@(#)ndd-nettune.xml 1.0 01/08/06 SMI" . /lib/svc/share/smf_include.sh . /lib/svc/share/net_include.sh # Make sure that the libraries essential to this stage of booting can be found. LD_LIBRARY_PATH=/lib; export LD_LIBRARY_PATH echo "Performing Directory Server Tuning..." >> /tmp/smf.out /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 1024 /usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 600000 /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_cinterval 10000 /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 60000 # Reset the library path now that we are past the critical stage unset LD_LIBRARY_PATH
svcadm を実行して nettune (詳細は svcadm(1M) のマニュアルページを参照) を有効にします。
svcs -x (詳細は svcs(1) のマニュアルページを参照) を実行します。