2007/05/28

Solaris 10 x86 IO tuning(ufs)

솔라리스10의 x86 버젼은 x86의 역사적인 이유(?)로 인하여, IDE 디스크를 사
용하는 경우에는 디스크의 모든 성능을 제대로 낼 수 없도록 되어(?)있기 때
문에 다소 튜닝할 필요가 있습니다. 솔라리스의 IDE 디스크는 기본적으로 physical device <-> ATAPI driver(SCSI HBA emulation) <-> sd(scsi disk) 와 같은 통신 방식을 사용하는데, 맨 하부의 물리적 디스크와 ATAPI 사이에서 데이타 전송시 사용하는 기본 블럭의 개수가 56으로 되어 있는데, 이 블럭을 128로 변경할 필요가 있습니다.

즉,
tunefs -a 128 /dev/rdsk/c1d0p0
tunefs -a 128 /dev/rdsk/c1d1p0
...

이 튜닝은 ufs에만 해당하면 zfs 인 경우에는 해당하지 않습니다. 또한, 이 옵션은 SATA와 SAS 디스크의 경우에는 해당되지 않습니다.

동시에 동시 전송 블럭의 수를 늘렸기 때문에 물리적인 디스크와 사용하게될 버퍼의 크기는 1M(=1048576)으로 설정할 필요가 있습니다. 다음과 같이 설정 하도록 합니다.
maxphys는 상당히 오래된 커널 변수인 관계로 최신 디스크나 어레이등을 사용 할 때는 반드시 사용하는 것이 좋습니다.

#echo "set maxphys=1048576" >> /etc/system

설정하고 재부팅이 필요합니다. 이 튜닝은 상위 화일 시스템과 상관없이 사용 하는 것이 좋습니다.

아울러, 솔라리스에서 제공하는 잉여 화일 시스템 서비스인 UFS용 access time 기록 기능을 정지시키게 되면, 화일 수가 많은 환경(web, bbs, cache ...) 에서 상당한 성능 향상을 볼 수 있습니다.

mount -F ufs -o remount,noatime /disk partition

위의 ufs 튜닝 옵션들은 모두 서비스 제공중에 설정가능한 것이나, 최적의 성능을 위해서라면 화일시스템을 새로이 구성하시는 것이 바람직합니다(구성할 때 위 옵션들을 사용하도록 구성)

* 유용하셨으면 AdSense 살짝 클릭해주세요 *