컨테이너를 제한하는 Block IO - Docker 컨테이너 기술(29)을 하루 5분 동안 플레이하기
Block IO는 컨테이너 사용을 제한할 수 있는 또 다른 리소스입니다.Block IO는 디스크의 읽기와 쓰기를 가리킨다. docker는 권한을 설정하고 bps와 iops를 제한하는 방식으로 용기 읽기와 쓰기 디스크의 대역폭을 제어할 수 있다. 다음은 각각의 논의이다.
참고: 현재 Block IO 한도는 direct IO(파일 캐시를 사용하지 않음)에만 적용됩니다.
block IO 가중치
기본적으로 모든 용기는 디스크를 평등하게 읽을 수 있으며, 설정
--blkio-weight
파라미터를 통해 용기 Block IO의 우선 순위를 변경할 수 있습니다.--blkio-weight
는 --cpu-shares
와 유사하며 상대적 권중치를 설정하고 기본값은 500이다.다음 예에서containerA 디스크의 대역폭은containerB의 두 배.docker run -it --name container_A --blkio-weight 600 ubuntu
docker run -it --name container_B --blkio-weight 300 ubuntu
bps와 iops 제한
bps는 byte per second로 초당 읽기와 쓰기의 데이터량입니다.iops는 IO 초당 IO 횟수인 IO per second입니다.
다음 파라미터를 통해 용기의 bps와 iops를 제어할 수 있습니다:
--device-read-bps
어떤 장치의 bps를 읽는 것을 제한합니다.--device-write-bps
, 어떤 장치의 bps를 쓰는 것을 제한합니다.--device-read-iops
장치에 대한 iops 읽기를 제한합니다.--device-write-iops
장치에 대한 iops 쓰기를 제한합니다.다음 예는 용기 쓰기/dev/sda의 속도를 30MB/s로 제한합니다
docker run -it --device-write-bps/dev/sda:30MB ubuntu
실험 결과를 살펴보자.
용기에 디스크를 쓰는 속도를 dd로 테스트합니다.용기의 파일 시스템은host/dev/sda에 있기 때문에 용기에서 파일을 쓰는 것은host/dev/sda에 대한 쓰기 작업과 같다.또한
oflag=direct
direct IO 방식으로 파일을 쓰도록 지정하여 --device-write-bps
만 적용할 수 있습니다.그 결과 bps 25.6MB/s는 30MB/s의 제한 속도를 초과하지 않았다.
비교 테스트에서 속도를 제한하지 않으면 결과는 다음과 같다.
다른 매개 변수의 사용 방법은 유사하여 모두에게 남겨 두어 스스로 연습하게 한다.
다음 절에서 우리는 용기를 실현하는 밑바닥 기술을 토론한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
반사를 통해 객체 작성반사를 통해 객체를 작성하는 두 가지 방법 1. Class 바이트 객체 newInstance()를 통과합니다.(기본적으로 참조 없음으로 생성됨) 2. 구조기 getConstructor(Class>.parameterT...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.