> 시스템 튜토리얼 > 리눅스 > Linux 시스템 성능 튜닝 : CPU, 메모리 및 디스크 최적화

Linux 시스템 성능 튜닝 : CPU, 메모리 및 디스크 최적화

Joseph Gordon-Levitt
풀어 주다: 2025-03-26 09:02:10
원래의
909명이 탐색했습니다.

Linux 시스템 성능 튜닝 : CPU, 메모리 및 디스크 최적화

소개

Linux는 서버, 임베디드 시스템 및 개인용 컴퓨터에 널리 사용되는 강력하고 유연한 운영 체제입니다. 그러나 가장 잘 구성된 시스템조차도 시간이 지남에 따라 성능 병목 현상에 직면 할 수 있습니다. 성능 튜닝은 리소스 활용을 최적화하고 불필요한 속도를 피할 수있는 Linux 시스템의 효율적인 작동을 보장하는 데 중요합니다.

이 안내서는 CPU, 메모리 및 디스크 최적화의 세 가지 주요 영역에 중점을 둔 Linux 성능 튜닝 방법을 제공합니다. 시스템 관리자이든 DevOps 엔지니어 또는 Linux 애호가이든 이러한 최적화를 이해하고 구현하면 시스템 응답을 늘리고 자원 폐기물을 줄이며 시스템이 원활하게 작동하는지 확인하는 데 도움이됩니다.

시스템 성능 지표를 이해합니다

더 최적화하기 전에 시스템 성능 메트릭을 이해하십시오. 이러한 메트릭을 모니터링하면 성능 문제를 진단하고 정보에 근거한 조정 결정을 내릴 수 있습니다.

핵심 성과 지표 (KPI) - CPU 사용 : 프로세스에서 취한 CPU 시간의 비율.

  • 평균 부하 : CPU 시간을 기다리는 프로세스 수.
  • 메모리 사용 : 사용 및 사용 가능한 RAM의 양.
  • 디스크 I/O 대기 : 프로세스가 디스크 액세스를 기다리는 시간.
  • 파티션 사용 : 사용중인 가상 메모리의 양.
  • 컨텍스트 스위치 : 초당 프로세스 전환 시간 수.
  • 디스크 처리량 : 읽기/쓰기 속도 및 대기 시간.

성능 모니터링 도구 Linux는 이러한 메트릭을 측정하는 다양한 도구를 제공합니다.

  • CPU 및 메모리 모니터링 : 상단, HTOP, MPSTAT
  • 디스크 성능 분석 : iostat, iotop, dstat
  • 시스템 수준 모니터링 : VMSTAT, SAR
  • 성능 분석 및 추적 : Perf, Strace
  • 프로세스 및 자원 관리 : Nice, Ulimit, CGroups

CPU 성능 튜닝

CPU 병목 현상은 높은 공정 부하, 비효율적 인 스케줄링 또는 CPU 리소스에 대한 경합으로 인해 발생할 수 있습니다. CPU 성능을 최적화하는 방법은 다음과 같습니다.

CPU 병목 현상 식별 CPU 문제를 진단하기 위해 다음 명령을 사용하십시오.

상단 HTOP MPSTAT -P 모두 1 SAR -U 5

  • 높은 부하 평균 및 낮은 CPU 사용은 I/O 대기 문제를 나타냅니다.
  • 높은 CPU 사용은 CPU 집약적 프로세스를 나타냅니다.

최적화 된 프로세스 스케줄링 Linux는 완전히 공정한 스케줄러 (CFS)를 사용하여 CPU 시간을 할당합니다. 다음 명령을 사용하여 프로세스 우선 순위를 수동으로 조정할 수 있습니다.

니스 -n 10 process_name renice -n -5 -p pid

작업 세트를 사용하여 프로세스를 특정 CPU에 바인딩합니다.

TaskSet -C 0,1 Process_Name

프로세스가 너무 많은 CPU를 소비하지 않도록 CPU 사용을 제한하십시오 . CPULIMIT를 사용하십시오.

cpulimit -l 50 -p pid

컨테이너화 된 환경의 경우 CGroups를 사용하십시오.

cgcreate -g cpu :/limitedgroup echo 50000> /sys/fs/cgroup/cpu/limitedgroup/cpu.cfs_quota_us cgexec -g cpu : LimitedGroup process_name

커널 매개 변수 튜닝 및 조정 커널 매개 변수는 CPU 효율성을 향상시킬 수 있습니다.

sysctl -w kernel.sched_min_granularity_ns = 100000000 sysctl -w kernel.sched_wakeup_granularity_ns = 15000000

메모리 성능 최적화

메모리 문제로 인해 시스템이 심각하게 느려질 수있어 과도하고 대기 시간이 높아질 수 있습니다.

메모리 사용 진단 이 도구를 사용하여 메모리 통계를 확인합니다.

무료 -m vmstat 5 smem

메모리 압력을 나타내는 높은 스왑 파티션 사용 (SI 등)을 찾으십시오.

스왑 파티션 사용 최적화 - 스왑 파티션 성능 점검 :

Swapon -S

  • 스왑 파티션 경향을 조정하십시오.

sysctl -w vm.supappiness = 10

  • 압축 스왑 파티션 zswap 또는 zram 사용 :

ModProbe zram echo 1>/sys/block/zram0/reset

캐시 및 버퍼를 관리하여 메모리를 확보하고 사용하지 않은 캐시를 제거하십시오.

동조; echo 3>/proc/sys/vm/drop_caches

커널 버퍼 동작 조정 :

sysctl -w vm.dirty_ratio = 20 sysctl -w vm.dirty_background_ratio = 5

데이터베이스와 같은 응용 프로그램의 큰 페이지 최적화 , 큰 페이지 활성화 :

echo 1024>/proc/sys/vm/nr_hugepages

디스크 I/O 성능 튜닝

디스크 성능은 데이터베이스, 파일 서버 및 다량의 데이터를 처리하는 응용 프로그램에 중요합니다.

디스크 성능 측정 - I/O 활동 확인 :

iostat -x 5 iotop

  • 벤치 마크 디스크 성능 :

fio -name = seqwrite -rw = write - -bs = 128k -size = 1g -numjobs = 4 -runtime = 60

파일 시스템 최적화 - 최적화 된 파일 시스템 (Ext4, XFS, BTRFS)을 사용하십시오.

  • 필요한 경우에만 로깅 활성화 :

tune2fs -o has_journal /dev /sdx

  • Noatime 및 Nodiratime 마운트 옵션을 사용하십시오.

마운트 -O 리 마운트, NOATIME, NODIRATIME /DEV /SDX /MNT

디스크 스케줄러는 SSD 변경을 위해 I/O 스케줄러를 최적화합니다 .

echoop>/sys/block/sda/queue/scheduler

HDD의 경우 :

echo cfq>/sys/block/sda/queue/scheduler

RAID 및 LVM 최적화 - 더 나은 읽기/쓰기 성능을 위해 RAID 10을 사용하십시오.

  • LVM 스트라이핑 최적화 :

lvcreate -i 2 -i 256 -l 10g -n lv_name vg_name

SSD 최적화 - 트림 활성화 :

fstrim -v /

  • 마운트 설정 최적화 :

마운트 -o 버려지는, 기본값 /dev /sdx /mnt

일반적인 시스템 최적화 전략

  • 커널 매개 변수 조정 :

sysctl -w net.core.somaxconn = 1024 sysctl -w fs.file -max = 100000

  • 자원 피로를 방지하기 위해 Ulimit을 사용하십시오.

Ulimit -N 100000

  • 불필요한 서비스 비활성화 :

SystemCTL 서비스 _name 비활성화

성능 조정 사례 연구

웹 서버의 높은 CPU로드 - ​​높은 PHP -FPM CPU 사용법이 식별됩니다.

  • 작업 세트를 사용하여 하중을 할당하십시오.
  • 캐싱 구현은 CPU 사용량이 40%줄어 듭니다.

데이터베이스 서버의 초과 디스크 I/O- 로그를 별도의 디스크로 이동하십시오.

  • postgresql shared_buffers 및 work_mem을 최적화하십시오.
  • SSD로 전환하면 쿼리 시간이 60%증가합니다.

결론적으로

성능 튜닝은 모니터링, 분석 및 최적화와 관련된 진행중인 프로세스입니다. 이 안내서에 요약 된 모범 사례를 따르면 Linux 시스템이 원활하고 효율적으로 실행되도록 할 수 있습니다.

위 내용은 Linux 시스템 성능 튜닝 : CPU, 메모리 및 디스크 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿