четверг, 10 апреля 2014 г.

An Ethernet Configuration Tip MOD

Из этой заметки можно подчерпнуть как добится от AIX  6.1 сохранения значения конфигурации largesend на сетевом интерфейсе, которое до версии AIX 6.1 TL7, значительно увеличивает производительность 10Gb интерфейсов.
Автор навоял сценарий, который прописывается в /etc/inittab командой:
mkitab -i srcmstr "lg_send0:2:wait:/usr/local/bin/ena_lg_send_ent_mod01.sh en0 # Enable largesend for virt enet adapters"

У сценария Дена / Dean Rowswell, есть один незначительный минуc / нюанс - он ставит largesend на все интерфейсы. Возможно это и правильно, но хочется управлять селективностью и выставлять largesend на нужные интерфейсы.  Для этого сценарий автора был незначительно модифицирован:


Классная подсветка, без б , но везде где ">&gt"; надо заменить на >>
#cat /usr/local/bin/ena_lg_send_ent_mod01.sh

#!/bin/ksh
set -x
# Created by Dean Rowswell, IBM, March 22, 2010
# This script will enable the largesend tunable for the virtual ethernet interface in order
# to dramatically improve performance of this adapter
#
# This script should run just before the rctcpip entry in the inittab
# mod by pdmtry 2014


if [[ $# -ne 1 ]];then
        echo "usage $0 EN
                enable LARGESEND option on virtual ethernet interface, where
                EN - virtual ethernet interface, en0,en1,en2,...,en8, 
                exiting"
        exit 0
fi


LOG=/var/adm/ena_lg_send_virt_eth.log


echo "\n================================================================================="
>>  ${LOG}
echo "Running $0 on `hostname` at `date`" | tee -a ${LOG}
echo "================================================================================="
>> ${LOG}

INTERFACE=$1
  # Convert the interface to the device
  DEVICE=`echo ${INTERFACE} | sed 's/en/ent/g'`

  # Check all Virtual Adapters for this device
  lsdev -Cc adapter -Sa -s vdevice -F name | grep -w ${DEVICE}
>/dev/null 2>/dev/null

  # If a match is found then enable largesend for this interface
    if [ $? -eq 0 ]
      then
      echo "\nCurrent interface config for ${INTERFACE} is:" >>${LOG}
      ifconfig ${INTERFACE} >>${LOG}
      echo "\nENABLE LARGESEND FOR VIRTUAL ETHERNET INTERFACE ->
${INTERFACE} at `date`" >>${LOG}
      ifconfig ${INTERFACE} largesend >>${LOG} 2>>${LOG}
      echo "\nNew interface config for ${INTERFACE} is:" >>${LOG}
      ifconfig ${INTERFACE} >>${LOG}
    fi


2do:
1. check if INTERFACE exist
2. check чтонибуть ещё

Комментариев нет: