Jak przyspieszyć dpkg?


17

Instalacja (nie) pakietu w systemie Debian jest strasznie powolna, częściowo dlatego, że działa z całą masą (małych) plików. Jak mogę przyspieszyć przechowywanie? Zastanawiam się, czy może ładowanie do pamięci RAM katalogu o wysokiej dostępności jako jednego rozwiązania, ale jak to zrobić? Czy istnieje „lepsze” rozwiązanie?


Jaki system plików i ile masz pakietów? W przypadku dużych katalogów, ext3 lub wyższy z dir_indexopcją lub Reiser, jest radykalną poprawą w porównaniu do ext2 lub ext3 bez dir_index.
Gilles „SO- przestań być zły”

@Gilles Używam ext4 i mam zainstalowane ~ 1400 pakietów.
tshepang

Odpowiedzi:


17

Do tego rozwiązania potrzebujesz wersji dpkg co najmniej 1.15.8.6.

Od tej wersji dpkg dostępna jest nowa force-unsafe-ioopcja, która uniemożliwia dpkg wywoływanie sync () i tym podobnych między każdym pakietem. Możesz dodać tę opcję do config w / etc / dpkg, aby zawsze obowiązywała.

Jeśli masz starszą wersję dpkg, możesz alternatywnie użyć eatmydata .

I pamiętaj, że oba te rozwiązania są niebezpieczne i prawdopodobnie doprowadzą do utraty danych, jeśli nastąpi awaria zasilania podczas działania programu dpkg lub wkrótce po nim.


Po prostu dodaję force-unsafe-iodo /etc/dpkg/dpkg.cfg i to wszystko?
tshepang

1
Obecnie nie mam działającego systemu Linux (awaria zasilacza), ale echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/force-unsafe-iopowinien działać. Lub możesz dodać go do głównego pliku konfiguracyjnego dpkg, który moim zdaniem to /etc/dpkg/dpkg.cfg .
Arrowmaster

3
I timed it zi bez tej opcji, i nie było żadnego zauważalna zmiana w wydajności.
tshepang

Czy próbowałeś tego z eatmydata? Dodatkowo, kiedy zacząłem używać opcji force-unsafe-io w moich chrootach programisty, pamiętam bardzo zauważalną różnicę.
Arrowmaster

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.