부호 관계가 적은 응용 프로그램에 Docker를 최적화하려면 응용 프로그램이 요청에 응답하는 데 걸리는 시간을 줄이기위한 몇 가지 전략이 포함됩니다. 모범 사례는 다음과 같습니다.
--init
를 사용하여 어린이 프로세스를 더 빠르게 종료하는 데 도움이 될 수 있습니다.--cpuset-cpus
와 같은 특정 CPU에 PIN 프로세스와 같은 효과적으로 사용하여 컨텍스트 스위치를 줄이고 대기 시간을 향상시킵니다.--net=host
여러 Docker 구성 설정은 컨테이너 내에서 실행되는 응용 프로그램의 대기 시간에 큰 영향을 줄 수 있습니다. 가장 효과적인 설정은 다음과 같습니다.
--cpuset-cpus
) :이 설정을 사용하면 컨테이너를 특정 CPU에 고정하여 컨텍스트 스위치 오버 헤드를 줄이고 성능을 향상시킬 수 있습니다.--memory
) : 적절한 메모리 제한을 설정하면 컨테이너가 필요한 것보다 더 많은 메모리를 소비하지 않으므로 과도한 페이징으로 인해 성능 저하가 방지됩니다.--net=host
) : 호스트 네트워킹을 사용하면 Docker의 네트워크 스택을 우회하여 Docker의 브리지의 오버 헤드를 피함으로써 대기 시간을 줄일 수 있습니다.--blkio-weight
) :이 설정을 사용하면 컨테이너가 장치에서 가져 오는 대역폭의 비율을 제어 할 수 있으므로 I/O 성능을 최적화하는 데 도움이 될 수 있습니다.--storage-driver
) : 더 나은 I/O 성능을 위해 오버레이 2 또는 Devicemapper와 같은 효율적인 스토리지 드라이버를 선택하여 전반적인 대기 시간을 줄이는 데 도움이 될 수 있습니다.--cpu-shares
, --memory-swappiness
) : 이러한 설정은 미세 조정 리소스 할당에 도움이되며 컨테이너가 리소스에 대해 과도하게 경쟁하지 않도록하여 대기 시간을 줄일 수 있습니다.여러 네트워크 구성 조정을 통해 Docker 내에서 응용 프로그램 응답 시간을 개선 할 수 있습니다.
--net=host
) 사용 : 호스트의 네트워크 스택을 직접 사용하면 Docker의 네트워크 브리지의 오버 헤드를 제거하여 네트워크 성능을 크게 향상시킬 수 있습니다.bridge
드라이버에서 macvlan
또는 ipvlan
과 같은 네트워크 드라이버를 선택하십시오. 이 드라이버는 컨테이너가 자체 MAC 주소와 IP 주소를 갖도록하여 네트워크 스택을 단순화하여 대기 시간을 줄입니다.--mtu
사용하여 Docker 네트워크 용 MTU를 설정하십시오.--dns
옵션을 사용하여 빠르고 안정적인 DNS 서버를 지정하십시오. 컨테이너가 최적화 된 경우 호스트의 DNS 설정을 사용하는지 확인하십시오.Docker 컨테이너 오버 헤드 최소화는 낮은 긴장 환경에서 성능을 향상시키기 위해 필수적입니다. 모범 사례는 다음과 같습니다.
RUN
명령을 결합하여 불필요한 계층을 피하십시오.COPY
주문하고 지침을 ADD
하여 Docker의 레이어 캐싱을 효과적으로 활용하여 Dockerfile의 끝에 자주 변경된 파일을 배치하여 덜 자주 변경된 레이어를 캐시 할 수 있도록합니다.--cpuset-cpus
, --memory
및 --blkio-weight
와 같은 Docker의 리소스 관리 기능을 사용하여 리소스를 효율적으로 할당하여 컨테이너가 과도하게 프로비저닝하지 않고 필요한 것을 갖도록합니다.--net=host
, --ipc=host
및 --pid=host
사용하여 호스트의 네트워크, IPC 및 PID 네임 스페이스를 각각 공유하여 네임 스페이스 격리의 오버 헤드를 줄입니다.이러한 모범 사례를 적용하면 Docker 컨테이너 오버 헤드를 크게 줄이고 저렴한 환경에서 성능을 향상시킬 수 있습니다.
위 내용은 저도가 낮은 대기 애플리케이션을 위해 Docker를 최적화하는 가장 좋은 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!