리눅스 리뷰

🚀 CentOS에서 Rocky Linux로 마이그레이션 후 성능 최적화 가이드

StWorld 2025. 3. 19. 22:28
728x90
반응형

1.1 디스크 성능 최적화

디스크 I/O 성능 점검 및 최적화

fioiostat 도구를 사용하여 디스크의 랜덤 쓰기읽기 성능을 측정합니다. 이를 통해 성능이 저조한 디스크를 식별하고 최적화할 수 있습니다. fio는 디스크의 실제 성능을 측정하는 데 유용한 벤치마크 툴입니다.

  • fio 명령어 예시:
     
    #sudo fio --name=mytest --ioengine=rados --size=1G --numjobs=4 --runtime=30s --time_based --rw=randwrite
    • --size=1G: 각 테스트 작업의 크기를 1GB로 설정하여 충분한 데이터 크기에서 성능을 평가합니다.
    • --numjobs=4: 4개의 병렬 작업을 실행하여 다중 작업 환경에서의 성능을 측정합니다.
    • --rw=randwrite: 랜덤 쓰기 성능을 측정합니다. 이는 일반적인 서버 워크로드에서 중요한 성능 요소입니다.

디스크의 I/O 스케줄러를 noop 또는 deadline으로 설정하여 성능을 개선할 수 있습니다. noop 스케줄러는 낮은 지연 시간과 더 높은 성능을 제공하며, deadline은 읽기/쓰기 작업을 처리할 때 우선순위를 주어 시스템의 반응 속도를 높여줍니다.

  • I/O 스케줄러 변경:
    #sudo echo noop > /sys/block/sda/queue/scheduler
    noop 스케줄러는 빠르게 데이터를 전송할 수 있는 환경에서 효율적입니다. 주로 SSD에서 성능 향상에 도움을 줍니다.

디스크 용량 최적화

디스크 용량을 확장한 후, resize2fs(ext4)나 xfs_growfs(XFS) 명령어로 파일 시스템 크기를 확장하여 실제 디스크 용량을 파일 시스템에서 인식하도록 합니다.

  • resize2fs 명령어 예시:
    #sudo resize2fs /dev/mapper/centos-root
    이 명령어는 파일 시스템을 논리 볼륨에 맞게 확장합니다. 이를 통해 추가된 디스크 용량을 활용할 수 있습니다.

1.2 메모리 최적화

메모리 페이징 최소화

swappiness 값을 조정하여 시스템이 메모리 페이지 교환(스왑)으로 넘어가는 빈도를 조절합니다. swappiness가 낮을수록 시스템이 물리적 메모리의 사용을 우선시하고, 스왑을 덜 사용하게 됩니다.

  • swappiness 값을 10으로 설정하는 이유:기본값은 60입니다. swappiness=10으로 설정하면, 시스템이 스왑을 사용하기 전에 가능한 한 많은 물리적 메모리를 사용하도록 강제합니다. 서버의 경우 스왑이 필요하지 않다면 이 설정을 적용하는 것이 성능을 향상시킬 수 있습니다.
  • #sudo sysctl -w vm.swappiness=10
  • HugePages 사용: 서버 애플리케이션은 대용량 메모리 할당을 자주 필요로 하므로, HugePages를 설정하면 메모리 할당 성능이 향상됩니다. hugepages를 활성화하면 메모리 페이지 크기가 커져 CPU와 메모리의 처리 효율이 증가합니다.
  • #sudo sysctl -w vm.hugetlb_shm_group=1000

1.3 CPU 성능 최적화

CPU 성능 관리

cpupower 도구를 사용하여 CPU 성능을 최적화합니다. CPU는 일반적으로 powersave, ondemand, performance 등 여러 성능 모드를 지원합니다.

  • performance 모드로 설정:
    #sudo cpupower frequency-set --governor performance
    performance 모드로 설정하면, CPU가 항상 최대 성능으로 동작합니다. 이 설정은 성능을 최우선으로 하는 서버에서 유용하며, 전력 소모가 늘어날 수 있지만 성능을 극대화할 수 있습니다.

1.4 네트워크 성능 최적화

네트워크 성능 개선

네트워크의 수신 및 송신 버퍼 크기를 늘려 성능을 개선할 수 있습니다. rmem_max와 wmem_max 값은 수신 및 송신 버퍼의 최대 크기를 설정합니다.

  • 버퍼 크기 설정:
    #sudo sysctl -w net.core.rmem_max=16777216 sudo sysctl -w net.core.wmem_max=16777216
    이 값은 기본적으로 1MB로 설정되어 있습니다. rmem_max와 wmem_max 값을 늘리면 대용량 데이터를 전송할 때 성능이 향상됩니다. 이 설정은 고속 네트워크 환경에서 효과적입니다.
반응형
댓글수0