Linux는 서버, 임베디드 시스템 및 개인용 컴퓨터에 널리 사용되는 강력하고 유연한 운영 체제입니다. 그러나 가장 잘 구성된 시스템조차도 시간이 지남에 따라 성능 병목 현상에 직면 할 수 있습니다. 성능 튜닝은 리소스 활용을 최적화하고 불필요한 속도를 피할 수있는 Linux 시스템의 효율적인 작동을 보장하는 데 중요합니다.
이 안내서는 CPU, 메모리 및 디스크 최적화의 세 가지 주요 영역에 중점을 둔 Linux 성능 튜닝 방법을 제공합니다. 시스템 관리자이든 DevOps 엔지니어 또는 Linux 애호가이든 이러한 최적화를 이해하고 구현하면 시스템 응답을 늘리고 자원 폐기물을 줄이며 시스템이 원활하게 작동하는지 확인하는 데 도움이됩니다.
더 최적화하기 전에 시스템 성능 메트릭을 이해하십시오. 이러한 메트릭을 모니터링하면 성능 문제를 진단하고 정보에 근거한 조정 결정을 내릴 수 있습니다.
핵심 성과 지표 (KPI) - CPU 사용 : 프로세스에서 취한 CPU 시간의 비율.
성능 모니터링 도구 Linux는 이러한 메트릭을 측정하는 다양한 도구를 제공합니다.
CPU 병목 현상은 높은 공정 부하, 비효율적 인 스케줄링 또는 CPU 리소스에 대한 경합으로 인해 발생할 수 있습니다. CPU 성능을 최적화하는 방법은 다음과 같습니다.
CPU 병목 현상 식별 CPU 문제를 진단하기 위해 다음 명령을 사용하십시오.
상단 HTOP MPSTAT -P 모두 1 SAR -U 5
최적화 된 프로세스 스케줄링 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
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 활동 확인 :
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
마운트 -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을 사용하십시오.
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 -N 100000
SystemCTL 서비스 _name 비활성화
웹 서버의 높은 CPU로드 - 높은 PHP -FPM CPU 사용법이 식별됩니다.
데이터베이스 서버의 초과 디스크 I/O- 로그를 별도의 디스크로 이동하십시오.
성능 튜닝은 모니터링, 분석 및 최적화와 관련된 진행중인 프로세스입니다. 이 안내서에 요약 된 모범 사례를 따르면 Linux 시스템이 원활하고 효율적으로 실행되도록 할 수 있습니다.
위 내용은 Linux 시스템 성능 튜닝 : CPU, 메모리 및 디스크 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!