Linux에서 디스크 I/O 성능 최적화: 높은 처리량 및 짧은 대기 시간을 위한 고급 기술

Linux에서 디스크 I/O 성능 최적화: 높은 처리량 및 짧은 대기 시간을 위한 고급 기술

저는 현재 디스크 I/O 요구 사항이 높은 Linux 기반 서버를 개발 중이며 최적의 성능을 위해 시스템을 미세 조정하기 위한 고급 전략을 찾고 있습니다. 기본적인 최적화를 구현하면서 더 깊고 기술적인 통찰력을 찾고 있습니다.

구체적으로 다음 사항을 알고 싶습니다.

  • Linux에서 디스크 I/O 성능을 크게 향상시킬 수 있는 고급 커널 수준 구성 및 조정 매개변수는 무엇입니까? I/O 스케줄러, 파일 시스템 조정, 블록 장치 설정과 같은 기능을 어떻게 활용합니까?

  • 높은 I/O 환경에서 제대로 작동하는 특수 파일 시스템이나 스토리지 솔루션이 있습니까? 선택하거나 구성할 때 어떤 요소를 고려해야 합니까?

  • 디스크 I/O 성능을 효과적으로 모니터링하고 분석하여 병목 현상이나 개선 영역을 식별할 수 있는 방법은 무엇입니까? I/O 작업에 대한 통찰력을 제공하는 특정 도구나 유틸리티가 있습니까?

  • 특히 자주 액세스하는 데이터의 경우 디스크 I/O 대기 시간을 줄이고 처리량을 향상시키기 위해 어떤 고급 캐싱 및 버퍼링 전략을 구현할 수 있습니까?

  • 사용 가능한 디스크 리소스를 최대한 활용하기 위해 I/O 집약적인 애플리케이션이나 워크로드(예: 데이터베이스 또는 높은 처리량 웹 서버)를 최적화하기 위한 모범 사례가 있습니까?

답변1

Red Hat에는 tunedRHEL 7.9a부터 tuned-adm list.show 가 표시됩니다.

Available profiles:
- atomic-guest                - Optimize virtual guests based on the Atomic variant
- atomic-host                 - Optimize bare metal systems running the Atomic variant
- balanced                    - General non-specialized tuned profile
- cpu-partitioning            - Optimize for CPU partitioning
- default                     - Legacy default tuned profile
- desktop                     - Optimize for the desktop use-case
- desktop-powersave           - Optmize for the desktop use-case with power saving
- enterprise-storage          - Legacy profile for RHEL6, for RHEL7, please use throughput-performance profile
- hpc-compute                 - Optimize for HPC compute workloads
- laptop-ac-powersave         - Optimize for laptop with power savings
- laptop-battery-powersave    - Optimize laptop profile with more aggressive power saving
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- mssql                       - Optimize for MS SQL Server
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- oracle                      - Optimize for Oracle RDBMS
- powersave                   - Optimize for low power consumption
- server-powersave            - Optimize for server power savings
- spindown-disk               - Optimize for power saving by spinning-down rotational disks
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests

나는 관련성이 있는 것으로 보이는 다른 프로필과 tuned같이 프로필에 대해 그들이 무엇을 했는지 조사할 것입니다 . 구성 파일에서 그런 일이 발생하는 것을 enterprise storage원하지 않을 것입니다 ... 제 생각에는... 또는 어떤 유형의 에너지 절약 관련 작업도 마찬가지입니다.spindown-disk

I/O가 시스템의 RAM 용량을 초과하지 않는 한, 4소켓 고급 서버의 경우 768GB가 표준이고, 저렴한 워크스테이션의 경우 약 128GB입니다. 가장 좋은 방법은 설치를 폴더 tmpfs로 만들어 직접 설치할 수 있는 것입니다. /data[DDR4 또는 DDR5] RAM은 읽기/쓰기를 수행한 다음 그에 따라 해당 휘발성 데이터 위치를 관리합니다. /etc/fstab비슷한 일을 하는 것입니다 tmpfs /data tmpfs defaults,size=512G 0 0. 나는 그것을 그렇게 부르지 않을 것이다.고급 버퍼링 전략, 그러나 6Gbit/s 또는 12Gbit/s의 디스크 대신 RAM 전용 SATA/SAS를 사용하면 훨씬 더 빨라질 것이므로 그렇게 할 필요는 없다고 생각합니다.곡조단순히 적절한 전원 프로필을 실행하는 것 이상으로 Linux를 사용할 수 있습니다.대기 시간 성능바꾸다에너지 절약.

또한 실행하기에 가장 적합한 하드웨어를 선택하면 귀하가 묻는 많은 질문에 더 많은 답변을 얻을 수 있다고 생각합니다.동조리눅스. Linux 운영 체제는 기본적으로디스크 캐시tmpfs그리고 실제 디스크에 쓰기/플러시를 하기 전에 가능한 한 많이 RAM에서 실행되므로 위에서 언급한 것과 정확히 일치합니다. 즉, 더 나은 성능을 원한다면 RAM을 늘리십시오. PC가 8GB 또는 16GB만 실행 중인 경우 서버의 경우 64GB 이상으로 업데이트하고, 128GB 미만인 경우 최대 설정은 768GB 이상입니다. 가장 빠른 RAM DIMM 타이밍을 지원합니다.

관련 정보