2015-01-24 2 views
1

docker에 이상한 점이 있습니다. Windows Azure에서 실행되는 우분투 서버 VM이 있습니다. 예를 들어 새로운 도커 컨테이너를 시작하면 워드 프레스과 같이 :Azure VM에서 다시 시작한 후 Docker 컨테이너가 느림

sudo docker run --name some-wordpress --link some-mysql:mysql -p 80:80 -d wordpress

모든 것이 잘 작동, 나는 로우 엔드 VM 설정을 고려 resonably 물어 사이트를 얻을.

그러나, 나는 VM을 부팅하고 컨테이너를 시작하는 경우 :

sudo docker start some-mysql 
sudo docker start some-wordpress 

모든 것은 아주 천천히, 한 페이지에 대한 응답 시간이 일부 2~4초에 일어나서 실행됩니다.

컨테이너를 제거하고 새 컨테이너를 시작하면 모든 것이 정상적으로 다시 실행됩니다.

어떻게 될 수 있습니까?

답변

2

디스크 사용과 관련이 있다고 생각되지만 MySQL 컨테이너는 로컬 디스크를 사용하여 저장소에 저장합니까? 기존 도킹 장치 컨테이너를 다시 시작하면 기존 볼륨을/var/lib/docker의 하위 폴더에 저장되지만 새 컨테이너는 새 볼륨을 만듭니다.

Azure의 Linux가 "소프트"재부팅을 제대로 처리하지 못하고 그 물건이 다시 연결되지 않는다는 검색 결과가 있습니다. "하드"재부팅이이를 수정했습니다.

도커가 도움이되는지 잘 모르는 경우 AWS의 경험입니다.

1

컨테이너는 디스크 당 max. 500 IOPS의 블롭 저장소에 저장된 디스크에서 실행됩니다. 디스크를 치거나 (MySQL에서는별로 현실성이 없음) 스트라이핑 (RAID0) 또는 SSD (Azure의 D 시리즈)를 사용하여 더 많은 디스크를 추가 할 수 있습니다. 또한 사용 사례에 따라 Docker를 완전히 리베이스하여 임시 저장 영역을 사용할 수도 있습니다 (/ dev/sdb) - 여기에 how for CoreOS입니다. BTW, azure.com에 몇 가지 MySQL 성능 (비 -Docker) 제안이 있습니다.

+0

이것은 다시 시작한 후에 느린 이유를 설명하지 않습니다. 도커 이미지가 처음 시작될 때와 다시 부팅 한 후의 차이점은 무엇입니까? –

+0

나는 재부팅 후 재부팅을 경험하지 않아서 대답이 없습니다. 컨테이너를 다시 시작한 직후에 디스크 작업과 관련이 있다고 추측 할 수 있습니다. 여기서 볼 수있는 성능 문제 대부분 (특히 MySQL)은 결국 IOPS와 관련이 있습니다 (이전에 경험 한 적이있는 장치에 몇 가지 스레드가 있음을 보았습니다). 10-15 분 후에 실행하는 것이 더 나은가요? 또 다른 흥미로운 테스트는 CoreOS를 사용하고 디스크의 캐시 설정을 변경하는 것입니다. 확실한 대답을 못해서 미안해, 로저 – bureado

관련 문제