Mam crona, który w zasadzie robi prostą „tar zcf” w nocy.
Serwer ma:
- 8 rdzeni - procesor Intel (R) Xeon (E) E5606 @ 2,13 GHz
- 25 GB pamięci RAM
- Ubuntu 12.04.2 LTS
- Sprzętowa macierz RAID 1 (LSI Logic / Symbios Logic MegaRAID SAS SMC2108) z dwoma dyskami twardymi o pojemności 2,728 TB
Jak widać na ekranie hosta monitorowania:
Przez prawie cały czas tar tar I / O przechodzi do> 90% i powoduje, że wszystkie inne aplikacje (mysql, apache) znacznie się spowalniają.
2 pytania:
- Czy to normalne, że podczas tworzenia kopii zapasowej jest tak duża liczba operacji we / wy dysku?
- Czy istnieje sposób ograniczenia wejścia / wyjścia płyty, aby inna aplikacja mogła nadal działać poprawnie?
Dziękuję Ci!
ubuntu
backup
performance
io
hard-drive
acemtp
źródło
źródło
find
bez (np.)-perm
nie uzyska dostępu do i-węzła pliku. Ale pozwala to na optymalizację użycia dwóchfind
połączeń. Jeśli wykonasz to samofind
połączenie dwa razy (z niewielkim czasem między nimi), drugie zwykle kończy się w ciągu kilku sekund (lub krócej). W zależności od ilości wolnej pamięci i ilości danych buforowanych w pewnym momencie dane są wyrzucane z pamięci podręcznej. Zbyt duże czytanie może więc po prostu spowolnić operację. Jeśli możesz nakarmić program do tworzenia kopii zapasowych nazwami plików przez stdin, możesz temu zapobiec, czytając bloki np. 100 plików.Oczekuje się, że podczas tworzenia kopii zapasowych zobaczysz wysoki poziom I / O, ponieważ są one generalnie tworzone na dużych drzewach plików z dużymi plikami. Można użyć
ionice
do priorytetyzacji zadań we / wy w systemie Linux za pomocą klas i poziomów. IIRC, klasa 2, poziom 7 to najniższy, nie głodny poziom, który sprawi, że będzie praktycznie niewidoczny dla innych obciążeń I / O i użytkowników. Zobaczman ionice
dla użycia i szczegółów.źródło
Polecam porzucenie tar i skorzystanie z rsync (jak wspomniano w Dogsbody). Używam BackupPC do tworzenia kopii zapasowych plików w moich systemach Windows i Linux i obsługuje zarówno tar, jak i rsync i automatycznie dba o twarde linkowanie, a także zapewnia przyjemny interfejs sieciowy.
http://backuppc.sourceforge.net/
źródło
Jak odpowiedzieli inni, tak, jest to normalne i
ionice
jest to dobry ogólny sposób, aby nie wpływać na twój system.Wiele razy widziałem ludzi
tar
, kiedy nie musieli tego robić. Jeśli jakikolwiek procent danych, które kopiujesz, nie zmienił się od czasu ostatniej kopii, sugerujęrsync
wypróbowanie.Spowoduje to zmniejszenie liczby operacji wejścia / wyjścia przez kopiowanie tylko plików, które zmieniły się od czasu ostatniej kopii. nie będziesz w stanie zmniejszyć IO o więcej niż połowę, ponieważ wszystkie dane nadal będą musiały zostać odczytane, ale znacznie zmniejszysz ilość zapisywanych danych (co w zależności od twojego sprzętu może być wolniejsze).
Jeśli chcesz mieć oddzielne kopie / kopie zapasowe za każdym razem, gdy jest uruchamiana, najpotężniejszą opcją jest –link-dest, która pozwala na stałe połączyć niezmienione pliki z poprzednią kopią zapasową. Oszczędza to OGROMNE ilości miejsca na serwerze kopii zapasowych. np. wykonuję kopię zapasową komputera (Fred), Fred ma 20 GB HD i wykonuję kopię zapasową / kopiuję cały dysk z wyłączeniem / proc i / dev. Mam teraz katalog 20 GB na moim serwerze kopii zapasowych. Następnego dnia wykonuję kopię zapasową Freda i - link-dest do wczorajszej kopii zapasowej. Rsync porównuje pliki zdalne z lokalną kopią i jeśli dokładnie to samo nie będzie kłopotać się z ich przesyłaniem, ale utrwali połączenie nowego pliku z plikiem wczorajszym. Wszystkie zmienione pliki są kopiowane na nowo (lub częściowo kopiowane przy użyciu wczorajszej kopii zapasowej, jeśli to możliwe). Jeśli tylko 100 MB plików zmieniło się od wczoraj, teraz mam dwa katalogi, oba z 20 GB plików, ale zajmujące tylko 20.
Mam nadzieję, że to pomoże i nadal odpowiada na twoje pytanie.
źródło