내가 관리하는 대부분의 Linux 시스템은 기능 하드웨어 RAID 컨트롤러 (대부분 HP Smart Array )입니다. 그들은 모두 RHEL 또는 CentOS를 실행하고 있습니다.
SAS 디스크 (Smart Array, Perc, LSI 등) 및 배터리 백업 또는 플래시 백업 캐시가있는 하드웨어 RAID 컨트롤러를 통합 한 설정의 성능을 최적화 할 수있는 실제 튜너 블을 찾고 있습니다. RAID 1 + 0 및 여러 스핀들 (4+ 디스크)을 가정하십시오.
지연 시간이 짧고 금융 거래 응용 프로그램에 대한 Linux 네트워크 설정을 조정하는 데 상당한 시간이 걸립니다. 그러나 이러한 옵션 중 많은 부분이 문서화되어 있습니다 (송수신 버퍼 변경, TCP 창 설정 수정 등). 스토리지 측에서 엔지니어는 무엇을하고 있습니까?
과거에는 I / O 스케줄링 엘리베이터를 변경하여 최근에 내 응용 프로그램 내에서 성능을 향상시키기 위해 deadline
및 noop
스케줄러를 선택했습니다 . RHEL 버전이 발전함에 따라 SCSI 및 CCISS 블록 장치의 컴파일 된 기본값도 변경되었음을 알았습니다. 이는 시간이 지남에 따라 권장 스토리지 서브 시스템 설정에 영향을 미쳤습니다. 그러나 명확한 권장 사항을 본 이후로 시간이 오래 걸렸습니다. 그리고 OS 기본값이 최적이 아님을 알고 있습니다. 예를 들어 서버 클래스 하드웨어에 배포 할 때 기본 미리 읽기 버퍼 인 128kb는 매우 작은 것 같습니다.
다음 기사에서는 미리 읽기 캐시 및 nr_requests 값을 변경하여 블록 큐에 미치는 성능 영향을 살펴 봅니다 .
http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux-why-tuning-really-matters
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html
예를 들어, 다음은 HP Smart Array RAID 컨트롤러에 대한 제안 된 변경 사항입니다.
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
스토리지 성능을 향상시키기 위해 다른 무엇을 안정적으로 조정할 수 있습니까?
프로덕션 시나리오에서 sysctl 및 sysfs 옵션을 구체적으로 찾고 있습니다.