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) のマニュアルページを参照) を実行します。