Próbowałem zaktualizować swoje rzeczy na moim komputerze i wygląda na to, że nie mogę odczytać mojej listy pakietów. Wygląda na to, że za każdym razem, gdy sudo apt-get install *something* && sudo apt-get update
to robię , blokuje się czytanie listy pakietów, nie było to wcześniej problemem. Oto moje specyfikacje i tak dalej:
- Pamięć: 15,8 GB
- Procesor: AMD Phenom (tm) II x4 965 Procesor x 4
- Grafika: Gallium 0.4 na AMD BARTS
- Typ systemu operacyjnego: 32-bit
- Prędkość internetu :
command-line
apt
Dre
źródło
źródło
sudo apt-get update
, prawda?Software Sources
zobacz, czy wybranie innego serwera zamiast obecnego pomaga.Odpowiedzi:
Też to widziałem.
Nie mam rozwiązania, ale mam obejście (
echo 3 | sudo tee /proc/sys/vm/drop_caches
) i potencjalnie więcej informacji, aby ktoś mógł kontynuować śledztwo.To nie jest problem z siecią, ponieważ w „Czytanie listy pakietów ...” , po prostu odczytuje pliki
/var/lib/apt/lists/
. ZA:daje:
Zobacz, jak 8
read
wywołań systemowych trwało ponad 2 sekundy, chociaż każde pojedyncze połączenie trwa krócej niż 1 ms.time apt-get update
Podczas uruchamiania lub patrzeniatop
ten proces nie jest zajęty między tymi dwoma połączeniami. Skąd więc to opóźnienie?Potem zrobiłem:
kilka razy i spojrzał na wynik w
kern.log
:Nie wiem, co to znaczy, ale to dotyczy obsługi błędów strony, wskazuje więc na potencjalny problem z zarządzaniem pamięcią.
Następnie spróbowałem:
I to sprawiło, że problem zniknął.
Teraz bardzo przypomina problem z jądrem. Więc zaktualizowałem do najnowszego jądra (backport 3.8 z
raring
) i tam jestem. Zaktualizuje się, jeśli problem będzie się powtarzał w nowszym jądrze.Edytować
Problem utrzymuje się w nowym jądrze, choć nie tak źle. I to samo
na jakiś czas usuwa problem. Widziałem to tylko na laptopach MSI (Nazwa produktu: CR61 2M / CX61 2OC / CX61 2OD).
Edytuj grudzień 2015 r
Jak potwierdzono przez
btrace
aptitude
/apt-get
wydaje się, że w tym momencie wykonuje pewne operacje we / wy dysku. Ma tymczasowy plik (/var/cache/apt/pkgcache.bin.<random-chars>
) zmapowany w pamięci, dlatego nie wyświetla się w danychstrace
wyjściowych.Nadal nie mogę wyjaśnić, dlaczego dzieje się to tylko na niektórych komputerach, dlaczego upuszczanie pamięci podręcznych pomaga, dlaczego przejście na 64-bitowe pomaga.
Jeśli ktoś może to odtworzyć, ciekawym testem może być sprawdzenie, czy dzieje się tak również podczas biegania pod nim,
eatmydata
czy poruszanie się/var/cache/apt
na nimtmpfs
lub pomoc ramdysku.źródło
Porada pod adresem http://antti-juhani.kaijanaho.fi/newblog/archives/521 przyspieszyła mnie kilka razy na różnych komputerach:
(Blog zalecał również
sudo dpkg --forget-old-unavail
między 2 krokami, ale najwyraźniej jest przestarzały i nie jest już potrzebny).źródło
Wykonaj kroki:
Wyczyść pamięć podręczną:
Przenieś,
sources.list
więcapt
nie możesz go użyć:Przesuń go z powrotem, a następnie zaktualizuj:
Sprawdź i usuń niepotrzebne PPA i wiersze źródłowe.
źródło
W moim systemie przyczyną była niepoprawna wartość
LANGUAGE=
zmiennej środowiskowej. Powinien zawierać takie wartościen:fr:de
, a nieen_US.UTF-8,sl_SI.UTF-8
:Po uruchomieniu (przez
strace
)apt-get update
polecenie klonujeread()
połączenie. Wykonanie go zajmuje wieki i zjada wszystkie dostępne cykle jednego rdzenia procesora:Jeśli ustawię
LANGUAGE=
prawidłową wartość (np.en
), Wszystko wróci do normy:źródło