Jak mogę ulepszyć pulpit Linuxa, aby był bardziej responsywny?


30

Mam doświadczenie, że Linux działa dobrze, dopóki pamięć fizyczna nie zostanie wyczerpana. Gdy tylko zostanie użyta przestrzeń wymiany, wydajność jest poważnie obniżona, a GUI przestaje odpowiadać.

Ten problem nie ogranicza się do konkretnej dystrybucji lub pulpitu, ponieważ próbowałem kilka (i problem pozostaje).

Co mogę z tym zrobić?


Jest to znany problem z jądrem Linuksa ... Myślę, że przeczytałem, że ostatnio łatka została naprawiona. Szukam odniesienia do tego ...
xenoterracide

1
Ten artykuł i ten o phoronix jest tym, o czym myślałem ... myślę.
ksenoterrakid

w zasadzie te artykuły mówią o łatkach, które wejdą w 2.6.36, więc kiedy to wyjdzie, zdobądź to (chyba że odważysz się uruchomić RC lub od mistrza)
xenoterracide

Ile masz pamięci RAM? Które programy są tak głodne? VM? JVM?
tshepang,

Mam 8 GB pamięci RAM, a sprawcami są zwykłe aplikacje (przeglądarki internetowe, takie jak Firefox i Chrome, klienci poczty e-mail, tacy jak thunderbird i klienci IRC.
txwikinger

Odpowiedzi:


15

Sugeruję przeczytanie SwapFAQ , w szczególności parametru swapiness .


3
+1, zamiana jest pasmem pomocniczym, którego mamy nadzieję nie używać ...
Avery Payne

1
Szeroko wypróbowałem różne ustawienia swapiness bez powodzenia. Zauważyłem również, że opinie na temat wartości swapiness wcale nie są jednolite. W przypadku komputerów stacjonarnych niektórzy zalecają 10, inni 100, co oznacza, że ​​sugerują całkowity efekt odwrotny.
txwikinger

1
Po dalszych testach odradzam używanie ani zamiany 100, ani 0. Oba stworzyły sytuacje, w których pulpit wpadł w szał wymiany, w którym zegar panelu zatrzymał się nawet na ponad 20 minut.
txwikinger

11

Niektóre wskazówki:

  1. Nie uruchamiaj tak wielu programów GUI na raz.
  2. Upewnij się, że wszystkie programy działające w tle, których nie potrzebujesz, np. Apache, są zatrzymane.
  3. Użyj dystrybucji przeznaczonej na sytuacje braku pamięci (np. Dla netbooka)
  4. Kup więcej pamięci.
  5. Kup szybszą HD (lub SSD) dla partycji wymiany. :)


2
w przypadku nowoczesnych dysków SSD cały system może być przestarzały i gotowy do wymiany na długo przed śmiercią dysku SSD. naprawdę nie warto się martwić o te dni. kopie zapasowe są oczywiście nadal wymagane, ponieważ dysk - SSD lub mechaniczny - może umrzeć w dowolnym momencie.
cas

4

Kup więcej pamięci? :)

Jeśli korzystasz z aplikacji, które zużywają więcej pamięci niż masz w systemie, żaden system operacyjny nie może zrobić nic innego, niż przełączyć się na partycję wymiany. Jeśli często zdarza się taka sytuacja, przestań uruchamiać niektóre niepotrzebne programy lub kup więcej pamięci, w dzisiejszych czasach jest to bardzo tanie.


3
Mam już maksymalną pamięć RAM. Chciałbym poznać pewne poprawki, dzięki którym zamiana jest bardziej wydajna niż jest.
txwikinger,

1
Przekonałem się, że całkowite wyłączenie wymiany zwykle powoduje szybsze reagowanie systemu. Aplikacje są powiadamiane przez jądro, że nie mają pamięci i odpowiednio reagują.
cjac

3
@cjac: Zazwyczaj tak nie jest. Możesz tak skonfigurować jądro, ale domyślnie będzie ono przesadzać (daj pamięci aplikacji, której twój system nie ma). Gdy tylko aplikacja dotknie pamięci, a jądro nie może jej więcej znaleźć, zabójca braku pamięci zakończy jeden lub więcej procesów.
Kristof Provost

@txwikinger powodem, dla którego zamiana jest powolna, jest to, że prędkości pamięci RAM są o wiele szybsze niż dyski twarde. Czas przeszukiwania pamięci RAM mierzy się w nanosekundach (10 ^ -9). Czasy wyszukiwania dysku twardego są mierzone w milisekundach (10 ^ -3). To sześć rzędów wielkości, innymi słowy pamięć RAM jest milion razy szybsza niż swap. Twoje pytanie jest jak pytanie, jak sprawić, by rower jechał tak szybko, jak odrzutowiec Concorde. Nie możesz
bahamat

1
@bahamat. Mówisz o oczywistości, ale to nie jest problem. Problem polega na tym, że zamiana odbywa się bardzo nieefektywnie, a zatem tworzy coś w kierunku problemu filozofa.
txwikinger 11.01.11

2

Spróbuj zmienić wartości zmiennych jądra „vm.swappiness” i „vm.page -uster” na bardziej odpowiednie wartości.

  1. Uruchom emulator terminala.
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. Restart.

Sprawdź, czy nowe wartości są używane z:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

Zamiana znacznie obniży wydajność bez względu na wszystko, więc najlepiej tego całkowicie uniknąć. Może to zabrzmieć głupio, ale jedną z opcji jest brak konfiguracji partycji wymiany. Od jakiegoś czasu działam bez swapów na wszystkich moich systemach:

  • 1 GB na netbooku wystarcza do przeglądania Internetu, słuchania muzyki i innych lekkich rzeczy.
  • 4 GB na moim pulpicie wystarcza na wszystkie powyższe rzeczy oraz programowanie (nawet w Eclipse) i podstawową edycję obrazu.

Jeśli robisz coś, co naprawdę wymaga dużej ilości pamięci (Gimp z dużymi obrazami, modelowanie 3D, CAD), prawdopodobnie powinieneś kupić trochę pamięci RAM.


Tak. Powoli dochodzę do tego samego wniosku. Wydaje mi się, że sposób wymiany jądra Linuksa nie jest zbyt wydajny w przypadku komputerów stacjonarnych (na serwerach wszystko działa dobrze). Dlatego być może zaleceniem powinno być wyłączenie całej przestrzeni wymiany na komputerach stacjonarnych. Btw. Używam 8 GB pamięci RAM :)
txwikinger

1
@txwikinger: czy mogę zapytać, dlaczego na serwerach jest w porządku?
phunehehe,

1

Możesz wypróbować compcache , jeśli możesz dowiedzieć się, jak skonfigurować go w swojej dystrybucji. Na przykład w systemie Ubuntu można go włączyć, edytując /etc/initramfs-tools/initramfs.conf i edytując wiersz „COMPCACHE_SIZE”.

Nie sądzę, żeby moja zamiana na dysku została dotknięta raz, odkąd włączyłem compcache. Oto moje aktualne statystyki wymiany:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

Zauważ, że używane jest urządzenie compcache (ramzswap0), a urządzenie na dysku (sda5) nie.


0

Kupuj szybszą pamięć RAM i upewnij się, że system z niej korzysta. Jakiego procesora i architektury używasz?


Jak to poprawia system Linux? Zmiana lub ulepszenie sprzętu nie jest tutaj problemem.
txwikinger

Możliwe, że instalacja Linuksa nie wykorzystuje całego dostępnego sprzętu. Jest to problem z wydajnością i w poprzednim komentarzu stwierdziłeś, że osiągnąłeś maksymalny limit pamięci RAM. Bez wiedzy o szczegółach konfiguracji łatwą drogą jest lepszy sprzęt.
Mike H

1
„system Linux” składa się ze sprzętu i oprogramowania. Dodanie pamięci to „ulepszenie” systemu.
cjac

Linux to oprogramowanie działające na sprzęcie. W Linuksie nie ma sprzętu: p
txwikinger

1
Myślę, że więcej pamięci RAM jest bardziej odpowiednie niż szybsze ... Szybkość pamięci RAM jest zwykle ograniczona przez Mobo ...
xenoterracide

0

Aplet Monitora systemu uruchamiam w stacji dokującej po prawej stronie ekranu. Za każdym razem, gdy system wydaje się powolny, spoglądam na mierniki. Jeśli coś działa z wydajnością powyżej 10%, oznacza to, że proces wymyka się spod kontroli.

Po kliknięciu na monitor systemu możesz zalogować się do procesów, które zużywają zasoby w systemie.

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
Większość monitorów systemowych po prostu przeciąga wolny system, bardziej jak kot Schrödingera. Bez zwiększania pamięci musi naprawić wycieki pamięci lub usunąć niepotrzebne programy, które są uruchomione.
jjclarkson,

0

Kilka lat temu zwykle używany był dysk dedykowany do wymiany, a podłączony do własnej magistrali IDE / ATA - zamiana danych na tym samym dysku po prostu nie miała sensu pod względem wydajności.

Ta sztuczka zadziałała dziesięć lat temu, ale teraz przy prędkościach napędowych naprawdę nie powinieneś odczuwać tak gwałtownego spadku wydajności, chyba że zamienisz bibliotekę kongresową, inaczej martwię się o zdrowie twojego dysku - sprawdziłeś to ostatnio?

Zawsze możesz spróbować, nie masz wielu alternatyw, jeśli pamięć RAM jest już maksymalnie wykorzystana. Mam nadzieję, że dzięki temu twój GUI będzie bardziej responsywny.


Wiele zastosowań dla komputerów stacjonarnych nie daje tej opcji, ponieważ są to lapbooki lub netbooki, które nie pozwalają na drugi dysk.
txwikinger

@txwikinger oczywiście prawda, ale zastanowiłem się nad tytułem pytania, które brzmi „komputer”, inaczej nie zasugerowałbym tego, gdyby konkretnie wspomniano o laptopie :-)
inwert

Cóż .. Miałem na myśli pulpit, aby odróżnić się od serwerów, na których moim zdaniem zamiana działa dość dobrze. :)
txwikinger

0

Zainstaluj drugi system Linux w sieci z dużą ilością pamięci RAM, NFS zamontuj go w systemie głównym i umieść na nim plik wymiany.


1
W przypadku gigabitowego Ethernetu będzie to znacznie wolniejsze niż w przypadku dysków SSD ze średniego zakresu i nie jestem pewien, czy można osiągnąć prędkość dysku twardego 7200 obr./min. Może dzięki Firewire możesz osiągnąć prędkość lokalnej wymiany. Ale bardziej efektywne byłoby po prostu dodanie pamięci RAM.
Gilles „SO- przestań być zły”

0

Jednym ze sposobów jest użycie zoptymalizowanego jądra .


Proszę nie tylko publikować linki; zawierać kontekst, aby w przypadku witryny, do której prowadzi link, można było znaleźć wystarczające informacje, aby odpowiedź była znacząca.
jasonwryan

0

Dzięki wieloletniemu doświadczeniu mogę powiedzieć, że nie ma wiele do poprawienia

Ale to, co ostatnio zrobiłem, bardzo mi pomogło.

1

Przeprowadziłem się z Ubuntu na Arch Linux, z Unity / Gnome na pulpit xfce.

Ubuntu jest śmiertelnie powolny, zewsząd. boot / grafika .. wolno.

2)

Kupiłem dysk SSD firmy Intel (80 g) i umieściłem na nim mój system root.

Mój arch Linux + XFCE4 + docky + conky, uruchamia się w 10 sekund (automatyczne logowanie za pomocą lxdm), wszystkie aplikacje zainstalowane na SSD, np. Matlab, uruchamiają się znacznie szybciej.

Pieniądze tego warte.

3)

Utwórz / tmp gdzie indziej, używam do tego ograniczonego rozmiaru ramdysku, aby zapobiec zakodowaniu systemu plików root

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.