Skocz do zawartości

SWAP - czy potrzebny? (aktualizacja dyskusji)


Gość s6s

Rekomendowane odpowiedzi

Owszem, kiedyś odbyła się tu dyskusja n/t potrzeby SWAP dla Graterlii i  wtedy Tux i koledzy przekonywali że nie trzeba i nic nie daje.

ALE:

a) Już minęło sporo czasu, Graterlia daleko przeewoluowała i czy coś się nie zmieniło w sensie tych wymagań?

b) Wówczas ta dyskusja dotyczyła os na ADB 5180, a może na ESI88 sprawa wygląda inaczej?

c) Obserwuję niepokojące objawy przy okazji korzystania z Live Stream (przez Internet wykorzystując listę matzg ) - otóż bardzo szybko zapełnia się RAM, potem SWAP a potem... ZWIECHA!

Wprawdzie musze przyznać że owe obserwacje pochodzą sprzed jakiegoś czasu i nie wiem czy tego już nie poprawiono (potem sprawdzę) ale przy takiej okazji zapala się przysłowiowa "czerwona lampka alarmowa": czy aby na pewno w jakichś określonych sytuacjach SWAP nie okazuje się NIEODZOWNY?

 

Wcale nie chcę tego SWAPu tak osobiście, tym bardziej, że ostatnio mając partycję SWAP na penie okazało się że ów SWAP zarżnął mi pena w ekspresowym tempie (pół roku) - oczywiste że częste zapisy na pamięciach typu flash skutkują szybkim "wytarciem" się bloków zapisów...

 

   

Odnośnik do komentarza
Udostępnij na innych stronach

Słuchaj, powiem Ci tak. Miałem swap na penie w esi. Działało super stabilnie, po czym pena potrzebowałem, wyjąłem i wiesz co się stało. UWAGA - NIC ;] Dalej działa super stabilnie. Wnioski zostawiam tobie.

Odnośnik do komentarza
Udostępnij na innych stronach

Poprzednią dyskusję rozpocząłem i tutaj mogę dodać tyle: ESI ma 2 razy więcej pamięci niż 5800, więc w tym przypadku swap jest już zupełnie zbędny :P

 

Natomiast swego czasu zauważyłem coś innego. Problem wystąpił w dwóch miejscach. Mam wtyczkę/konwerter, która pokazuje informacje pogodowe. Wtyczka była tak zrobiona, że co 10 min. odpalała os.system() i wgetem ściągała xmla. Po kilku(nastu) godzinach przestawała działać. Druga wtyczka, to OpenWebif i jego "grabscreen" (zresztą kompletnie przebudowany w najnowszej wersji). Też odpalany był przez os.system. I też po jakimś czasie przestawał działać. W obydwu przypadkach po restarcie enigmy wracało do życia. Trochę poszukałem i ... zrozumiałem tyle, nie jestem pewny czy poprawnie, że każde odpalenie os.system() na starcie próbuje zarezerwować tyle pamięci ile akurat zajmuje proces wywołujący. Odpala go enigma, która z czasem zajmuje więcej pamięci, i ... no może swap by się przydał. Ale raczej przydałoby się nie używać os.system() :P

 

(...) otóż bardzo szybko zapełnia się RAM, potem SWAP a potem... ZWIECHA!

 

A to właśnie skłoniło mnie do wyłączenia swapa dawno temu i rozpoczęcia wspomnianej dyskusji. Tak w skrócie się wtedy działo. Próba wykorzystania swapa przy odtwarzaniu filmów czy timeshifcie zapełniała pamięć i odpalała swapowanie i wszystko zwisało. Żadnych GSów, czy podobnych. Zwis i reboot z konsoli (czasami nawet tego nie dało się zrobić). Wyłączenie swapa pomogło.

Odnośnik do komentarza
Udostępnij na innych stronach

W tunerach z małą ilością pamięci dobrze sprawdzał się ramzswap. Korzystanie z os.system w e2 jest kilerskie, bo ta komenda zatrzymuje główny wątkek e2 (stąd spiner przy dłuższym czasie jej wykonania). W e2 należałoby stosować console(), epopen i/lub działania na filesystemie. Pomijając ten drobny szczegół, problem z os.system jest związany w ilością dostępnej pamięci w ram. Jeśli spadnie, problem murowany. Rozwiązaniem jest oczyszczenie buforów przed jej wykonaniem.

 

Co do swap, ja mam go zawsze utworzonego w pliku i nigdy nie mam żadnych problemów z zawieszaniem w tunerze ze 128MB RAM. Fakt, w 90% czasu jest niewykorzystywany (więc nie przeszkadza), ale zdarza się te 10%, kiedy tuner coś do niego pakuje.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Poprzednią dyskusję rozpocząłem i tutaj mogę dodać tyle: ESI ma 2 razy więcej pamięci niż 5800, więc w tym przypadku swap jest już zupełnie zbędny :P

 

Natomiast swego czasu zauważyłem coś innego. Problem wystąpił w dwóch miejscach. Mam wtyczkę/konwerter, która pokazuje informacje pogodowe. Wtyczka była tak zrobiona, że co 10 min. odpalała os.system() i wgetem ściągała xmla. Po kilku(nastu) godzinach przestawała działać. Druga wtyczka, to OpenWebif i jego "grabscreen" (zresztą kompletnie przebudowany w najnowszej wersji). Też odpalany był przez os.system. I też po jakimś czasie przestawał działać. W obydwu przypadkach po restarcie enigmy wracało do życia. Trochę poszukałem i ... zrozumiałem tyle, nie jestem pewny czy poprawnie, że każde odpalenie os.system() na starcie próbuje zarezerwować tyle pamięci ile akurat zajmuje proces wywołujący. Odpala go enigma, która z czasem zajmuje więcej pamięci, i ... no może swap by się przydał. Ale raczej przydałoby się nie używać os.system() :P

 

(...) otóż bardzo szybko zapełnia się RAM, potem SWAP a potem... ZWIECHA!

 

A to właśnie skłoniło mnie do wyłączenia swapa dawno temu i rozpoczęcia wspomnianej dyskusji. Tak w skrócie się wtedy działo. Próba wykorzystania swapa przy odtwarzaniu filmów czy timeshifcie zapełniała pamięć i odpalała swapowanie i wszystko zwisało. Żadnych GSów, czy podobnych. Zwis i reboot z konsoli (czasami nawet tego nie dało się zrobić). Wyłączenie swapa pomogło.

 

 

Od kiedy esi ma 2 razy więcej pamięci niż 5800 ??? z tego co ja wiem 5800 ma 128MB na system i 64MB na koprocesory czyli generowanie obrazu i dzwięku,

a esi ma po 128MB i tu i tu także łącznie ma 256MB a 5800 ma 192MB, co do pamięci SWAP to moje zdanie jest takie że nie zaszkodzi jej mieć fakt w ciągu tygodnia zdarza się że tuner tylko parę razy z niej skorzysta ale zawsze jednak po coś z niej skorzystał :D

Odnośnik do komentarza
Udostępnij na innych stronach

Ja bym najpierw radził wszystkim zgłębić wiedzę na temat zarządzania pamięcią RAM przez Linux bowiem różni się ono znacznie od MS. Tu system może zeżreć cały RAM ale nie oznacz to, że używa całego ot tak i już. W skrócie zarządza nią dynamicznie.

Mój ESI-88 nie ma SWAPa i pracował stabilnie 114 dni bez restartu póki zakład energetyczny mu go nie zafundował :)

Odnośnik do komentarza
Udostępnij na innych stronach

no to musisz szybko się podzielić tą informacją z developerami systemów. Muszą natychmiast wywalić tę funkcję skoro szkodzi. ;)

 

A na poważnie, nie wiem co tam za tuner miałeś, ale mogę Ci pokazać kilkaset postów, w których udowodniono, że brak SWAP-a szkodzi. Śmiem więc twierdzić, że nie rozwiązałeś przyczyny problemu a znalazłeś jedynie obejście.

 

Używam SWAP-a od zawsze, począwszy od kathrein ufs-910, który pamięci miał jak na lekarstwo, poprzez wiele dziwnych wynalazków i zawsze swap mi pomagał, więc pozwolisz, że zostanę przy swoim i ogółu zdaniu, że SWAP się przydaje. No chyba, że pomożesz mi przejrzeć na oczy.... :)

 

Odnośnik do komentarza
Udostępnij na innych stronach

Nie potrzeba mi kilkaset, wystyarczy jeden, gdzie mógłbym sprawdzić, że ze swapem jest lepiej niż bez niego. Bo przykład odwrotny już miałem (na 5800SX). Używałem partycji swap, a Ty z tego co czytam, masz go w pliku. Może wtedy obsługa wygląda inaczej i jest lepiej?

 

Obejście problemu ... może. Tamten post ma prawie rok i w tym czasie braku swapa nie odczułem.

 

Dysk wymiany, pamięc wirtualna, swap ... mniejsza o nazwę, nadaje się do użytku, kiedy system ma co na niego zrzucać. Czyli procesy, które dłuższą chwilę nic nie robią i trzeba je gdzieś uśpić, a nie kiedy to faktycznie próbuje zastąpić RAM. Jeżeli program będzie potrzebował więcej pamięci niż jest RAMu to wirtualny RAM niewiele pomoże. Przykład: Windows 7 x64, 16 GB RAM, 2 procesory 4 rdzeniowe i skrypt obliczeniowy w matlabie. Chwila nieuwagi i w pamięci znajduje się tablica przekraczająca dostępny RAM. System zaczyna "swapować". Skutek: obliczenia stoją a system nawet ciężko zamknąć czy ubić proces, bo obsługa dysku zajmuje prawie cały czas procesora...

Odnośnik do komentarza
Udostępnij na innych stronach

Jak rozumiem, Ty wolałbyś aby system się wywalił z błędem pamięci i stratą obliczeń. ;)

 

Jak chcesz sprawdzić, ze jest lepiej, to poszukaj na dvhk informacji, że buforowanie na nboxie działa ze swapem włączonym a bez się wywala. Skoro działa to jest chyba lepiej? ;)

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jak rozumiem, Ty wolałbyś aby system się wywalił z błędem pamięci i stratą obliczeń. ;)

 

Eeee... TAK. Może system jednak nie, ale aplikacja tak. Czas wykonania obliczeń przy użyciu swapa był nieakceptowalny.

 

W opisanej przeze mnie sytuacji najszybszym rozwiązaniem był twardy reset systemu. To jak wiadomo kończy się czasmi źle, więc zostawało Ctrl+Alt+Del i "trochę" cierpliwości, albo reset i nadzieja, że system wstanie bez błędów. A potem zmiana ustawień skryptu obliczeniowego i od nowa, ale tak żeby upchnąć dane w pamięci.

 

Jak chcesz sprawdzić, ze jest lepiej, to poszukaj na dvhk informacji, że buforowanie na nboxie działa ze swapem włączonym a bez się wywala. Skoro działa to jest chyba lepiej? ;)

 

Sam napisałeś "chyba". Jak dla mnie: skoro w nboksie brakuje pamięci na buforowanie, to lepiej nie używać ;) Jeżeli pod pojęciem "się wywala" kryje się GS i po włączeniu swapa go nie ma, to warto przemyśleć.

Odnośnik do komentarza
Udostępnij na innych stronach

Skoro nie buforujesz i nie chcesz używać swapa, to nie możesz oglądać pewnych materiałów. Więc opcja raczej nie za bardzo. ;)

Ale zamiast udowadniać, ze SWAP nie szkodzi, może udowodnij, że szkodzi. ;)

Jak pisałem, miałem kathrein ufs-910 z pamięcią 64MB i z własnego doświadczenia wiem, że wywalał się (czytaj był GS) w przypadku braku swap-a i wykonywaniu ukochanej komendy system.

Miałem ipbox9900, ipbox9000, octagon 1008, amiko alien, triplex i na żadnym z tych tunerów nie miałem problemów ze swap-em. A tego włączam standardowo. Mogę więc napisać, że na przestrzeniu kilku lat i doświadczając zabawy z kilkoma tunerami NIE stwierdziłem problemów spowodowanych przez swap.

Odnośnik do komentarza
Udostępnij na innych stronach

A tego swapa miewasz na penie czy hd? Ponieważ jeżeli na penie to częste zapisy szybko go "wytrą" - co w połaczeniu z partycjami na systemy i "data" może nam dać nagle przykrą niespodziankę: "read only filesystem" a po jeszcze paru zamontowaniach w ogóle odmowa zamontowania i jakiegokolwiek odzyskania danych (np. modów i katalogu /etc/Enigma).

 

Jeżeli natomiast na hdd to okaże się że nasz dysk twardy nigdy nie sypia...

 

Odnośnik do komentarza
Udostępnij na innych stronach

Mam na penie i nie daje przykrych niespodzianek od ładnych 15 miesięcy. Najważniejsze, aby kupić pen-a noname (ten był nawet piłowany szlifierką kątową). Jak widać triplex sobie nawet skorzystał ze swapa. :)

 

spark7162:~# free

            total        used        free      shared      buffers

Mem:        116480        78416        38064            0        1380

-/+ buffers:              77036        39444

Swap:        65528        2184        63344

Odnośnik do komentarza
Udostępnij na innych stronach

tuxish:~# free
             total       used       free     shared    buffers     cached
Mem:        117220      84304      32916          0        536      36968
-/+ buffers/cache:      46800      70420
Swap:            0          0          0
tuxish:~# 

I tak wygląda to bez SWAPa. Tuner działa sobie już 58 dni bez restartu.

SWAP może się czasem przydać ale biorąc pod uwagę 32MB wolnego RAMu + 36MB Cache, które dynamicznie system przydziela daje nam 68MB wolnego RAMu. Przy normalnym użytkowaniu tunera bez dziesiątek pluginów nic nie powinno się dziać.

Gorzej jak ktoś musi mieć dziesiątki pluginów i to zasobożernych - np. transmission.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

W ogóle bez plugin'ów obejść się nie sposób. Więc pytam, czy przy "rozsądnym" stosowaniu plugin'ów (czyli takim niezbędniku: PTimeShift, FreePlayer, History Zap Selector, Graphical Multi EPG, AssignButton) można się obejść bez swap czy nie?

 

Przy okazji: jak ktoś nie używa to czy może bezkarnie wywalić preinstalowane pluginy: PositionerSetup, WirelessLan, SatFinder, SkinSelector (mam ciągle jedynie default'ową skórkę), OpenWeb, WebInterface ?

 

j00zek, a jaką prędkość ma ten Twój pendrive? Ponieważ do SWAPa trzeba chyba coś MEGA-szybkiego co nie?

Pen czy karta SD o dużej prędkości niemało kosztuje więc szkoda jeżeli SWAP poprzez swe intensywne operacje io szybko ją zażyna...

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

spark7162:~# hdparm -t /dev/sda3

/dev/sda3:
Timing buffered disk reads:   43 MB in 3.03 seconds = 14520 kB/s
spark7162:~#

 

Czy to szybko, czy wolno nie wiem i kompletnie mnie to nie interesuje. System mam tak skonfigurowany, że ustawienia softcam-a, pikony, plik wymiany i takie tam różne są na tej partycji, bo nie chce mi się tego kopiować przy upgrade image. Wsio działa od 15 miesięcy.(15-01-2013 partycja została sformatowana)

 

Jeśli ktoś nie korzysta ze swap-a, to polecałbym czyszczenie buforów w cronie (broń boże z wtyczki e2) po przekroczeniu 80% zajętości. Na pewno nie zaszkodzi. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Generalnie bufory powinny się same czyścić i jak trzeba. Przynajmniej u mnie tak to działa i działało od zawsze jak mam Linux. Na tunerze nie jest inaczej. Nie widzę konieczności czyszczenia buforów w cronie choć prewnie jakiś przykład się znajdzie gdzie się to przyda tak samo jak SWAP.

Odnośnik do komentarza
Udostępnij na innych stronach

Generalnie bufory powinny się same czyścić i jak trzeba. Przynajmniej u mnie tak to działa i działało od zawsze jak mam Linux. Na tunerze nie jest inaczej. Nie widzę konieczności czyszczenia buforów w cronie choć prewnie jakiś przykład się znajdzie gdzie się to przyda tak samo jak SWAP.

 

No właśnie, powinny....

 

Widzę, że mamy odmienne spojrzenie na świat. ;) Ty naprawiasz, jak się coś się popsuje. Ja dążę, żeby się nie popsuło. Innymi słowy, jak coś może zaszkodzić i jest na to metoda pozwalająca ochronić się przed ewentualnym problemem, to ją wdrażam. Bo normalny użytkownik chce aby działało, a nie aby musiał się doktoryzować co się dzieje. Pomijam kwestię wizerunkowe softu, który, nawet z nie swojej winy, będzie pomawiany o niestabilność. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Tu akurat się nie różnimy. Graterlia z założenia jest Systemem Operacyjnym. Jeżeli znajduję coś co jest niestabilne to staram się to eliminować - w ramach OS. Wszystkim się dogodzić nie da. Dlatego też o ile SWAP jest wyłączony standardowo o tyle automatem montowany jest jak partycja ma nadaną etykietę "swap" i jest sformatowana jako swap.

Zawsze też można wygenerować plik swap, sformatować i zamontować jako swap - choćby na czas kiedy będzie potrzebny. Przykładem może być CrossEPG. Bez SWAP na naszych tunerach nie da rady. Jednak daleki jestem od podejścia, że system musi mieć na standardzie wszystko bo garstka osób może to potrzebować. W Linux to jest piękne, że może być wiele podejść do zaganiania.

Odnośnik do komentarza
Udostępnij na innych stronach

Tu akurat się nie różnimy. Graterlia z założenia jest Systemem Operacyjnym. Jeżeli znajduję coś co jest niestabilne to staram się to eliminować - w ramach OS. Wszystkim się dogodzić nie da. Dlatego też o ile SWAP jest wyłączony standardowo o tyle automatem montowany jest jak partycja ma nadaną etykietę "swap" i jest sformatowana jako swap.

Zawsze też można wygenerować plik swap, sformatować i zamontować jako swap - choćby na czas kiedy będzie potrzebny. Przykładem może być CrossEPG. Bez SWAP na naszych tunerach nie da rady. Jednak daleki jestem od podejścia, że system musi mieć na standardzie wszystko bo garstka osób może to potrzebować. W Linux to jest piękne, że może być wiele podejść do zaganiania.

 

Jednak troszkę się różnimy. ;) Ja nie wymagam od zwykłego użytkownika, aby sobie formatował partycje swap. W linux to jest "nie-piękne", że użytkownik musi sam się zagłębiać i doktoryzować z tematu, zamiast używać. Podczas, gdy taki swap (to tylko przykład), jak sobie jest nieużywany to nie przeszkadza nikomu. Ale jest dostępny w razie czego. :)

 

No dosyć tych wypocin o wyższości świąt... Każdy ma wybór i korzysta jak lubi. :D

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli ktoś nie korzysta ze swap-a, to polecałbym czyszczenie buforów w cronie (broń boże z wtyczki e2) po przekroczeniu 80% zajętości. Na pewno nie zaszkodzi. :)

 

To czyszczenie buforów w cronie to taki wpis?

*/5 * * * * echo 3 > /proc/sys/vm/drop_caches

Bo jeżeli tak, to mnie zaszkodziło: http://forum.xunil.pl/index.php?topic=919.msg11933#msg11933 ;)

 

Tak ogólnie to jako wieloletni użytkownik Windows oduczyłem się używanie wszelkiego rodzaju "tweaków" do zarządzania pamięcią - z nimi czasami ładniej wyglądało na wskaźnikach ale zawsze system z czasem gorzej działa. Mądrzejsi ode mnie pisali system, wszystko jedno linux czy windows czy inne freebsd, i jeżeli uznali, że nie trzeba buforów czyścić na zapas, to widać tak jest lepiej.

 

Gdyby nie doświadczenie własne, to zgodziłbym się, że swap powinien być w systemie, ale jakoś tam wyszło, że lepiej mi bez niego. I podobnie jak Ty zostanę przy swoim zdaniu :)

 

BTW: Jak chodzi o os.system(), to co prawda w logu widziałem "out of memory", ale system na to nie reagował. Natomiast brak pamięci przy os.popen() momentalnie generował GSa. Pewnie gdybym miał swapa, to jedno i drugie by zadziałało bez generowania błędów...

Odnośnik do komentarza
Udostępnij na innych stronach

A czy twoja komenda czyści pamięć po przekroczeniu 80% zajętosci? :P

 

Skoro system widział out of memory to jednak chyba zareagował. ;)

 

Ale co ja tam wiem....

 

Jak napisałem wcześniej. Każdy ma wybór. Ja wiem jaki jest dla mnie najlepszy i jaki się sprawdził przez kilka lat korzystania.

Macie inne przemyślenia, super. nie kombinujcie i nie korzystajcie.

 

Z mojej strony EOT. W tym temacie wszystko zostało napisane.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 miesiące temu...

Czyszczenie pamięci po przekroczeniu 80% trafiło do GOS i wygląda, że problemów nie sprawia. Chociaż jak przeglądałem skrypt, to zakłada, że jeżeli ilość zajętej pamięci przekracza 80% dostępnej, to jest co czyścić z cached bez sprawdzania ... ale to szczegół.

 

Uznając racje przedmówcy postanowiłem jednak swapa odpalić ... ale tak, żeby był używany jeżeli już koniecznie trzeba. A żeby sobie skomplikować życie i nie męczyć pojedynczego obszaru dysku/pendrive padło na użycie kilku plików. Dokładnie 7 - jeden z nich jest ładowany przy starcie systemu zależnie od dnia tygodnia. W praktyce pewnie są to pliki 6 i 7, bo w weekendy jest czas, żeby pomęczyć tuner, więc zdarza się jakiś restart ;)

 

Jak to wygląda w praktyce:

 

1) Tworzenie plików swapa, w przykładzie rozmiar 96MB - czyli dla nboksa:

 

#!/bin/sh
# rozmiar...
swapsize=98304
# pliki...
dd if=/dev/zero of=/hdd/swap/swapfile1 bs=$swapsize count=1024
dd if=/dev/zero of=/hdd/swap/swapfile2 bs=$swapsize count=1024
dd if=/dev/zero of=/hdd/swap/swapfile3 bs=$swapsize count=1024
dd if=/dev/zero of=/hdd/swap/swapfile4 bs=$swapsize count=1024
dd if=/dev/zero of=/hdd/swap/swapfile5 bs=$swapsize count=1024
dd if=/dev/zero of=/hdd/swap/swapfile6 bs=$swapsize count=1024
dd if=/dev/zero of=/hdd/swap/swapfile7 bs=$swapsize count=1024

# konwersja...
mkswap /media/hdd/swap/swapfile1
mkswap /media/hdd/swap/swapfile2
mkswap /media/hdd/swap/swapfile3
mkswap /media/hdd/swap/swapfile4
mkswap /media/hdd/swap/swapfile5
mkswap /media/hdd/swap/swapfile6
mkswap /media/hdd/swap/swapfile7

# aktywacja...
/sbin/swapon /media/temp/swap/swapfile`/bin/date +%u`
echo 0 > /proc/sys/vm/swappiness

 

2) Ładowanie przy starcie systemu z ustawieniem używania swapa ... jak już koniecznie trzeba. Wpisy są w rcS.users.sh (który oczywiście trzeba sobie uaktywnić):

 

# włączenie pliku swap
/sbin/swapon /media/temp/swap/swapfile`/bin/date +%u`
echo 0 > /proc/sys/vm/swappiness

 

3) Okazało się w praktyce, że przy takim podejściu potrzebne są jeszcze /etc/rc.d/rc6.d/S39umountswap i /etc/rc.d/rc0.d/S39umountswap:

 

#! /bin/sh
#
# umountswap    Turn off all swap files.
#
# Version:      @(#)umountswap  0.00-01  10-Jul-2014

PATH=/sbin:/bin:/usr/sbin:/usr/bin

echo -n "Deactivating swap files..."

for file in `cat /proc/swaps | grep file | awk '{print $1}'`
do
  swapoff $file
done

echo "...done."

: exit 0

 

Mnie akurat wyszło S39, ale istotne jest tylko, żeby to było przed S40umountfs.

 


 

Skutek:

 

nbox:~# free
             total       used       free     shared    buffers     cached
Mem:         98156      77340      20816          0        272      13932
-/+ buffers/cache:      63136      35020
Swap:        98296       1420      96876
nbox:~# uptime
08:17:29 up 6 days, 21:03,  2 users,  load average: 4.06, 4.01, 4.00

 

Czyli czasami z tego swapa korzysta. Jak wynika z analizy prostego skryptu, który co 5 minut sprawdza temperaturę dysku oraz czy się kręci czy poszedł spać, to system korzysta ze swapa tylko rano, kiedy odpala się EPGImport. Może jeszcze w czasie nagrywania ... ale tutaj i tak dysk jest rozkręcany, więc nie widać tego w logu ;)

 


 

Na razie niekorzystnych skutków ubocznych nie zaobserwowałem, ale w sumie mało ostatnio avi odtwarzam na tunerze a właśnie przy nich było najgorzej...

Odnośnik do komentarza
Udostępnij na innych stronach

Czyszczenie pamięci po przekroczeniu 80% trafiło do GOS i wygląda, że problemów nie sprawia. Chociaż jak przeglądałem skrypt, to zakłada, że jeżeli ilość zajętej pamięci przekracza 80% dostępnej, to jest co czyścić z cached bez sprawdzania ... ale to szczegół.

...

 

Ale co skrypt miałby sprawdzać? Przecież czyszczeniem zajmuje się kernel, my tylko go prosimy aby to zrobił.

Odnośnik do komentarza
Udostępnij na innych stronach

To absolutnie oczywiste , że tym ma zająć się  kernel (właściwie  skompilowany) !

A ustawienie  echo 0 > /proc/sys/vm/swappiness  = prosta droga do "zwiechy" systemu.

Nie ustawiałem nigdy mniej niż 10% , dla 0% to chyba jak masz w sprzęcie z 16G Ram-u

i się nie obawiasz że go braknie .

Odnośnik do komentarza
Udostępnij na innych stronach

To absolutnie oczywiste , że tym ma zająć się  kernel (właściwie  skompilowany) !

A ustawienie  echo 0 > /proc/sys/vm/swappiness  = prosta droga do "zwiechy" systemu.

Nie ustawiałem nigdy mniej niż 10% , dla 0% to chyba jak masz w sprzęcie z 16G Ram-u

i się nie obawiasz że go braknie .

 

hm.... ale nikt nie ustawia swappiness lecz drop_caches. Ta operacja jest bezpieczna i pomaga w tunerach, niezaleznie od tego co na to teoria. ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Ale co skrypt miałby sprawdzać? Przecież czyszczeniem zajmuje się kernel, my tylko go prosimy aby to zrobił.

 

Gdyby zaszła taka sytuacja, że nie ma tyle "cached", żeby zwiększyć "free" ponad 80%, to kernel będzie próbował w kółko ... a czy to źle, to nie wiem.

 

A ustawienie  echo 0 > /proc/sys/vm/swappiness  = prosta droga do "zwiechy" systemu.

Nie ustawiałem nigdy mniej niż 10% , dla 0% to chyba jak masz w sprzęcie z 16G Ram-u

i się nie obawiasz że go braknie .

 

Na temat tego czy swap w "nboksie" w ogóle jest potrzebny (ja z tej grupy, co uważa, że nie ;) ), to już dwa wątki są na forum. Do 16GB pamięci to daleko w tym sprzęcie ale działa bez (większych) problemów bez swapa. Wartość 0 w vm.swappiness nie oznacza "wyłącz swap". Ciągle działa ale z tego co widzę, to włączany jest gdy to jest bardzo konieczne. Takiej konfiguracji używam na ESI (wszystko na pendrive) już jakieś 2 miesiące, na 5800 od miesiąca (system w NAND, swap na HDD) i na razie zwiech nie zaliczyłem.

Odnośnik do komentarza
Udostępnij na innych stronach

Ale co skrypt miałby sprawdzać? Przecież czyszczeniem zajmuje się kernel, my tylko go prosimy aby to zrobił.

 

Gdyby zaszła taka sytuacja, że nie ma tyle "cached", żeby zwiększyć "free" ponad 80%, to kernel będzie próbował w kółko ... a czy to źle, to nie wiem.

 

 

Ciekawe spostrzeżenie. Na pewno taka sytuacja jest nieoptymalna. Czy wpływa negatywnie na stabilość? Dowiemy się wkrótce, właśnie ustawiłem Arivkę, aby czyściła pamięć po zajęciu jej do 50%, czyli zawsze. :)

Jutro się okaze.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 miesiące temu...

Witam, dodam swoje 3 grosze.

Od jakiegoś czasu po ok 2-3 dniach działania w tunerze dziłay się dziwne rzeczy, czasami nie działał Os Manager ( wyświetlał karzaki, albo nieprawidłowe menu), nie odpalało się odtwarzanie z iptv playera.

Sprawdziłem ram, okazało się, żę zaraz po restarcie mam zajętość 83% ramu - postanowiłem dodać swapa.

Co ciekawe po 1 dniu na swapie było ok 2MB, po ok 3 dniach, 6MB itd, aktualnie w swapie mam ponad 20MB - co ciekawe ww. problemy nie pojawiają się, czyli było za mało ramu.

Czy jest to możliwe, żeby były jakies wycieki pamięcie? Z pluginów mam tylko IPTV i EPGImport....

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

To absolutnie oczywiste , że tym ma zająć się  kernel (właściwie  skompilowany) !

A ustawienie  echo 0 > /proc/sys/vm/swappiness  = prosta droga do "zwiechy" systemu.

Nie ustawiałem nigdy mniej niż 10% , dla 0% to chyba jak masz w sprzęcie z 16G Ram-u

i się nie obawiasz że go braknie .

 

hm.... ale nikt nie ustawia swappiness lecz drop_caches. Ta operacja jest bezpieczna i pomaga w tunerach, niezaleznie od tego co na to teoria. ;)

 

Po wywaleniu standardowego drop caches z crona, i zostawieniu swapa - tuner znacznie szybciej chodzi - przynajmniej takie mam odczucie.....

Odnośnik do komentarza
Udostępnij na innych stronach

Tak aktywował się, bo tam w tym skrypcie aktywował się powyżej 80% zajętości - a  u mnie przy 5800 prawie cały czas miałem ponad 80%.

Po wyłączeniu drop cache, sprawdzałem i teraz mam znacznie więcej buforów zapełnionych i więcej idzie do swapa. Wolny ram czasami spada do 2MB, by np. po wyłaczeniu iptvplayera zwolnić 20MB - czyli normalna sprawa.

Potestuję jeszcze, ale mam wrażenie, że tuner chodzi szybciej, nie ma lagów gdy skacze się po menu z listą programów (InfinityHD z wylaczonymi next zdarzeniami). Poprzednio było tak, że po przeskakiwaniu po liście, raz za czas kursor zatrzymywał się, by za chwile przeskoczyć o parę miejsc dalej. Teraz jest tak, że każde naciśnięcie, nawet bardzo szybkie (np. 3x/sekundę) powoduje zmianę zaznaczenia na liście.

Same programy też chyba przełaczają się szybciej (samo pojawienie się infobara).

Odnośnik do komentarza
Udostępnij na innych stronach

Nie tak.

Załadowany IPTV wchodzi do pamięci, po wyłaczeniu zwalnia - być moze źle się wyraziłem wcześniej.

Przykładowo, mam 20M wolnego, odpalam IPTV mam 2M wolnego. Zamykam IPTV mam 20M wolnego.

Standardowo, odpalam sybckp - zajmuje mi całą pamięć + pojawia się coś w swap, po skonczonym skrypcie - pamięć jest zwalniana.

 

Dedukuję, że w przypadku mojego tunera cache pomaga w działaniu. Przez to że mam swapa, nie ma strachu, że zabraknie RAM.

 

Tutaj chodzi tylko o to, że jeżeli z crona co minute odpalało się drop cache to taka sytuacja NIE powodowała u mnie polepszenia wydajności systemu, tylko spadek.

 

tak działa python, raz załadowany skrypt zostaje w pamięci.

Po czym wnosisz, że tak jest?

Importując moduły w pythonie podciągane są do pamięci, kończąc wykonywanie programu pamięć jest zwalniana. Swego czasu dużo pisałem w pythonie i nie było nigdy problemy z niezwalnianiem pamięci.

 

Nie piszemy posta pod własnym postem edytujemy.... Scalono

Odnośnik do komentarza
Udostępnij na innych stronach

Zdefiniuj co dla ciebie oznacza "kończąc wykonywanie programu pamięć jest zwalniana" ;)

 

Twój tuner i Twoje potencjalne problemy. Jak przestanie Ci poprawnie działać np. opkg z menu, nie pytaj dlaczego.

Odnośnik do komentarza
Udostępnij na innych stronach

Z poziomu systemu odpalamy pythona wykonywujacego program, kończymy program, spada python z procesów, zwalnia się pamięć. Tutaj rozumiem, że cały czas mamy podniesionego pythona, że względu na openpli, i jak jawnie nie wywalimy biblioteki, to cały czas siedzi w pamięci.

Nie rozumiem o jakich problemach piszesz. Czyszczenie cache to jest łata pochodząca z plug-in u clearmem, nie manie tego mną powodować problemy? Nie rozumiem. Nawet tux wypowiadał się że żadne dodatkowe czyszczenia pamięci są zbedne, bo system sam o to dba

 

Wysłane z mojego C5303 przy użyciu Tapatalka

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Doskonale rozumiesz, python działa cały czas więc każdy załadowany moduł pozostaje w pamięci i nie da się go wywalić, nie ważne czy jawnie, czy nie.

I żeby skończyć dywagacje na ten temat raz na zawsze, oficjalne stanowisko developerów pythona jest:

"Please accept that Python indeed does not support unloading modules for severe, fundamental, insurmountable, technical problems, in 2.x."

 

Tyle w temacie iptvplayera i ilości skryptów, które ładuje.

 

Co do problemów z pamięcią i czyszczenia. To nie jest skrypt z clearmem. Ale mniejsza. Nie chce mi się znów udowadniać, że coś działa inaczej niż wskazuje na to teoria. Jak jesteś zainteresowany to sam znajdziesz mnóstwo postów na temat wywalania się pythona przy gęstym korzystaniu z os-a, co jest tego przyczyną i jak rozwiązać problem. Swap na pewno ich nie rozwiązuje.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Co do samego pythona to oczywiście że moduły można unloadować, ja nigdy tego nie robiłem, bo nie musiałem - python żył na czas wykonania programu. Samo wywalenie modułu wywala referencje ale trzeba by przetestować czy też zwalnia pamięć.

Mój system jest w jak najbardziej podstawowej konfiguracji, lista pluginów to:

DreamExplorer  EPGImport      GOSmanager    IPTVPlayer    UserSkin      DynDNS        FlashBackup    GraphMultiEPG  OpenWebif      WebInterface  inHDcontroler

.

Nie wiem czy moje spostrzerzenia odbierasz za jakiś atak, ale mam poczucie, że odbiegasz od tematu, na kwestie związane z samym pythonem, a tematem mojej wypowiedzi było:

zatrzymanie 

echo 1 > /proc/sys/vm/drop_caches

 

spowodowało szybsze działanie mojego systemu - to jest spostrzerzenie, nie chcę niczego udowadniać - w moim przypadku jest po prostu lepiej.

 

Edit, właśnie na próbe wyłączyłem swapa, i oczywiście czyszczenie cache, zobaczymy jak teraz będzie.

Obcenie na standby mam:

GraterliaOS:~# free
             total       used       free     shared    buffers     cached
Mem:         98156      77604      20552          0        300       6580
-/+ buffers/cache:      70724      27432
Swap:            0          0          0

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...