2016-05-09 96 views
6

Próbuję porównywać ogólną wydajność systemu z uruchomionym Dockerem przy użyciu pakietu Milestone 2 Phoronix Test Suite 6.4.0 2 działającego wewnątrz kontenera Fedora: 23.Eliminowanie wpływu UnionFS na wyniki podczas testów porównawczych w Dockerze

Jedną z rzeczy, którą należy wziąć pod uwagę, jest to, że Docker używa zastrzeżonego systemu UnionFS do przechowywania danych. Jednak podczas uruchamiania aplikacji w świecie rzeczywistym (np. Apache) w Dockerze, trwałe dane są zwykle przechowywane w dedykowanym folderze na hoście, działającym na standardowym systemie plików Linux, takim jak ext4, lub w moim przypadku btrfs.

Rozwiązaniem, które proponuję, jest użycie "docker volume" do zamontowania katalogu hosta w oknie dokowanym. Chodzi o to, że nie wiem, które katalogi mają być używane w benchmarkach i muszą być montowane wewnątrz kontenera Docker.

Na przykład testowy pakiet Suite pts/disk powinien zdecydowanie używać woluminów docker zamiast UnionFS. Zawiera te testy.

pts/compress-gzip 
pts/sqlite 
pts/apache 
pts/pgbench 
pts/compilebench 
pts/iozone 
pts/dbench 
pts/fs-mark 
pts/fio 
pts/tiobench 
pts/postmark 
pts/aio-stress 
pts/unpack-linux 

które katalogi w pojemniku Docker powinny być montowane z hostem (wykonane tomy Döcker)? Czy korzystanie z woluminów dokowania jest nawet dobrym pomysłem? Czy istnieją inne zastrzeżenia, które należy wziąć pod uwagę podczas porównywania Docker?

Odpowiedz

0

Jak wspomniano w „Mount a shared-storage volume as a data volume

Oprócz montażu katalog hosta w pojemniku, niektóre Docker volume plugins pozwalają na świadczenie i zamontować współdzielonej pamięci masowej, takich jak iSCSI, NFS lub FC.

Od dokowanym 1.9, odbywa się to z docker volume create (a następnie zamontować te tomy w swoich oczekiwanych ścieżek w pojemniku)

, który pozwala na:

które katalogi w pojemniku Docker powinien być zamontowany z hostem

dowolnego folderu, który obejmuje trwałe dane i/lub posiada dużą ilość operacji IO.

+0

Należy zauważyć, że odpowiedź na pytanie "dlaczego używać wtyczki woluminu danych, np. Migotania" zamiast "Docker data volume", brzmi "W przeciwieństwie do woluminu danych Docker, który jest powiązany z pojedynczym serwerem, objętością danych Flocker, nazywany zbiorem danych, jest przenośny i może być używany z dowolnym kontenerem w klastrze. " Afaik, jeśli poświęcam przenośność, pojemność danych Docker jest funkcjonalnie równoważna i prawdopodobnie nawet szybsza niż jakakolwiek wtyczka Docker, prawda? – Slazer

+0

@Slazer Zgadzam się. Po prostu wolę używać tworzenia woluminów docker od czasu dokowania 1.9 jako wtyczki lub nie, dzięki temu woluminy stają się bardziej widoczne, zamiast ukrywać się jako kontener, który istnieje tylko po to, aby zostać uruchomionym (nigdy nie uruchamiać) i zamontowany przez inne pojemniki. – VonC

+0

Czy możesz mi doradzić, patrząc na testy, które mam zamiar uruchomić (na ogół intensywne zadania we/wy dysku przy użyciu aplikacji rzeczywistych), które foldery są najlepszymi kandydatami do instalacji z hosta (jako wolumin dokowania lub wolumin dokowania podłącz)? Nie zaprogramowałem testu, więc nie widzę łatwego sposobu na zgadnięcie, które foldery są w użyciu. Testy są uruchamiane jako root w kontenerze Docker. – Slazer