Jak mogę przedłużyć żywotność mojej karty SD?

252

Nie bardzo lubię kupować dysk twardy USB, ale zdaję sobie sprawę, że karty SD nie nadają się do wielu powtórzeń czytania i pisania.

Czy są jakieś kroki, które mogę podjąć, aby przedłużyć żywotność mojej karty SD, gdy jest ona używana przez mój Raspberry Pi?

Wysoce nieregularne
źródło
19
Jeśli napiszesz do niego z pełną prędkością przez cały dzień i noc 24/7, 16 GB będzie trwać około 30 dni. Przy normalnym użytkowaniu można oczekiwać około 27 lat w oparciu o 10 000 cykli zapisu. Jeśli używa 100 000 cykli zapisu w ciągu 50 lat. Im większa karta, tym dłużej będzie działać dzięki sprytnej logice niwelacji zużycia
Piotr Kula
Wow, to wspaniale wiedzieć, nie miałem pojęcia o twoim pierwszym punkcie 16 GB SD trwającym 30 dni z pisaniem z pełną prędkością. Przypuszczam, że ciągłe nagrywanie wideo na SD, a następnie przesyłanie go nie jest najlepszym pomysłem.
SSH,
3
Biorąc pod uwagę wszystkie wyniki w zakresie wydajności, jakie przyniosą ci te rozwiązania, dlaczego nie po prostu płacić 10 USD co kilka lat?
Alexander

Odpowiedzi:

244

Te metody powinny wydłużyć żywotność karty SD, minimalizując liczbę odczytów / zapisów na różne sposoby:

Wyłącz zamianę

Zamiana to proces wykorzystywania części karty SD jako pamięci ulotnej. Zwiększy to ilość dostępnej pamięci RAM, ale spowoduje dużą liczbę odczytów / zapisów. Jest mało prawdopodobne, aby znacznie zwiększyć wydajność.

Wyłącz zamianę za pomocą swapoffpolecenia:

sudo swapoff --all

Musisz także uniemożliwić jej powrót po ponownym uruchomieniu:

  • W przypadku Raspbian, który używa pliku wymiany dphys do zarządzania plikiem wymiany (zamiast „normalnej” partycji wymiany), możesz po prostu sudo apt-get remove dphys-swapfileusunąć go na stałe. Najlepiej usunąć, ponieważ ustawienie na CONF_SWAPSIZE0, jak wyjaśniono w tej odpowiedzi , wydaje się nie działać i nadal tworzy plik wymiany 100 MB po ponownym uruchomieniu.
  • W przypadku innych dystrybucji korzystających z partycji wymiany zamiast pliku wymiany, usuń odpowiedni wiersz z /etc/fstab

Wyłączanie kronikowania w systemie plików

Korzystanie z systemu plików kronikowania, takiego jak ext3lub ext4BEZ kroniki, umożliwia zmniejszenie odczytu / zapisu. Oczywistą wadą używania systemu plików z wyłączonym kronikowaniem jest utrata danych w wyniku nieskromnego demontażu (tj. Po awarii zasilania, blokowaniu jądra itp.).

Można wyłączyć rejestrowanie ext3, montując go jako ext2.

Możesz wyłączyć kronikowanie na ext4odmontowanym dysku w następujący sposób:

tune4fs -O ^has_journal /dev/sdaX
e4fsck –f /dev/sdaX
sudo reboot

Flaga Mount Noatime

Przypisz flagę noatime mount do partycji znajdujących się na karcie SD, dodając ją do sekcji opcji partycji w /etc/fstab.

Odczytywanie dostępu do systemu plików nie spowoduje już aktualizacji informacji o czasie rzeczywistym powiązanych z plikiem. Znaczenie ustawienia noatime polega na tym, że eliminuje on konieczność dokonywania przez system zapisów w systemie plików dla plików, które są po prostu odczytywane. Ponieważ zapisy mogą być nieco kosztowne, jak wspomniano w poprzedniej sekcji, może to spowodować wymierny wzrost wydajności. Pamiętaj, że informacja o czasie zapisu do pliku będzie aktualizowana za każdym razem, gdy plik zostanie zapisany z włączoną tą opcją.

Katalogi w pamięci RAM

Często używane katalogi, takie jak /var/tmp/i być /var/logmoże, można przenieść do pamięci RAM w /etc/fstabnastępujący sposób:

tmpfs /var/tmp tmpfs nodev,nosuid,size=50M 0 0

Umożliwi /var/tmpto wykorzystanie 50 MB pamięci RAM jako miejsca na dysku. Jedynym problemem jest to, że dyski zamontowane w pamięci RAM nie utrzymają się po ponownym uruchomieniu. Dlatego jeśli zamontujesz, /var/loga system napotka błąd, który powoduje jego ponowne uruchomienie, nie będziesz w stanie dowiedzieć się, dlaczego.

Katalogi na zewnętrznym dysku twardym

Możesz także zamontować niektóre katalogi na trwałym dysku twardym USB. Więcej informacji na ten temat można znaleźć w tym pytaniu .

Raspberry Pi może również uruchomić swoją partycję root z dysku zewnętrznego. Może to być przez USB lub Ethernet i oznacza, że ​​karta SD będzie używana tylko do delegowania do innego urządzenia podczas rozruchu. Wymaga to trochę hakowania jądra, ponieważ nie sądzę, że domyślne jądro obsługuje pamięć USB. Możesz znaleźć więcej informacji na to pytanie lub w tym zewnętrznym blogu .

Jivings
źródło
17
noatimepowinno być domyślne.
Alex Chamberlain,
3
@AlexChamberlain: noatimenie jest domyślny, przynajmniej w Arch.
Jivings,
20
Jest w najnowszych wersjach Raspian.
Oli
4
Zgodnie z tym: superuser.com/a/168126/105936 nie jest tak świetnym pomysłem, /var/tmpaby zapamiętać. Może to myliłeś /tmp.
inf3rno
1
Zauważ, że jeśli noatimepowodują problemy, możesz również użyć tego, relatimeco znacznie zmniejsza zapisy na dysku podczas odczytu, zamiast całkowicie je usuwać.
Mark Booth,
79

Jeśli opcje oferowane przez Jivings nie są możliwe dla Twojej aplikacji, to inną opcją znacznie przedłużyć jej żywotność jest użycie karty SD, która jest znacznie większa niż potrzebujesz.

Pozostaw dużo wolnego miejsca

Większość przyzwoitych kart SD korzysta z algorytmów wyrównywania zużycia , aby zminimalizować liczbę zapisów każdego bloku, więc jeśli karta SD jest większa niż potrzebujesz, zużycie można rozłożyć na znacznie większym obszarze wolnej przestrzeni.

Jednym z powodów, dla których wyrównywanie zużycia jest tak ważne, jest to, że niektóre systemy plików, takie jak FAT (domyślny format wielu kart SD), młotkują te same sektory w kółko.

Aby uzyskać więcej informacji na ten temat, zobacz odpowiedzi na pytanie Czy to prawda, że ​​karta SD / MMC zrównuje się z własnym kontrolerem? w sprawie Electronic Stack Exchange , szczególnie tej odpowiedzi .

Jedną z interesujących statystyk z tej odpowiedzi jest to

wzięcie karty 2 GB i zapisywanie jej zaczyna się w kółko średnio około 10 TB, zanim karta się wyczerpie i nie będzie już można jej zapisać.

Ale niepokojące jest to

Karty SD nie dadzą Ci znać, gdy dane są złe, tzn. Nie zwrócą błędu we / wy, jak na dysku twardym komputera.

Może to sprawić, że wybór systemu plików będzie ważny, jeśli chcesz zagwarantować niezawodne przechowywanie.

Ostatnia uwaga: podwojenie rozmiaru karty SD może podwoić jej żywotność.

To znaczy, jeśli masz kartę SD 2 GB z 200 MB wolnej pamięci, to przejście na kartę 4 GB da ci 11 razy więcej wolnego miejsca, zdolność wyrównywania zużycia, a tym samym żywotność, a przejście na kartę 16 GB da 71 razy więcej przestrzeń.

Mark Booth
źródło
Aby umożliwić karcie SD wykonywanie wyrównywania zużycia, należy przede wszystkim powiedzieć, które bloki są w tym celu darmowe. fstrim może w tym pomóc.
JimmyB
Przycinanie nie jest wymagane, ale bez niego blok jest ponownie wykorzystywany tylko wtedy, gdy system operacyjny ponownie wykorzystuje blok, a nie kiedy przestaje go używać. O ile wiem, trymowanie jest funkcją SSD i nie jest obsługiwane przez karty SD, do których dostęp jest znacznie prostszy.
Mark Booth
@Mark, twój pierwszy punkt ma rację. - Co do twojego drugiego punktu, istnieje (opcjonalne) MMC_ERASEpolecenie zdefiniowane gdzieś w standardzie MMC / SD tylko do tego celu. Chociaż ze wszystkich kart SD wypróbowałem tylko jedną (tę, która była dołączona do mojego Pi-), faktycznie ją obsługuje.
JimmyB
Czy rozmiar partycji ma w tym przypadku znaczenie? Mam na myśli, że jeśli mam kartę 16 GB i system z unikalną partycją ext4 4 GB, czy wykorzysta ona pozostałe 12 GB do wyrównywania zużycia?
natenho
Trudno powiedzieć @natenho tak dla karty SD z dobrym wyrównaniem zużycia, nie dla osoby ze słabą (lub nie) implementacją.
Mark Booth,
25

Jedyne, co widzę, to NIE zamieniać karty SD.

Zamiana karty SD prawdopodobnie zabije kartę SD.

Jeśli potrzebujesz więcej pamięci RAM, możesz spróbować użyć ZRAM, tam jest post na http://raspberry.pi.gw.gd/t50-Using-ZRAM.html podający kilka szczegółów na temat używania ZRAM na Raspberry Pi

Więcej informacji o zram na http://en.wikipedia.org/wiki/ZRam

Również najnowsze karty SD są o wiele bardziej solidne niż starsze, zakup nowej karty SD klasy 10 jest prawdopodobnie dobrą opcją, jeśli chcesz, aby trwała długo.

neofutur
źródło
14

Możesz spróbować uruchomić Puppy Linux, który jest całkowicie rezydentem pamięci RAM. Jest bardzo mały i niesamowicie szybki, ponieważ działa całkowicie w pamięci, kopiując obraz pamięci (na karcie SD w twoim przypadku) do pamięci RAM podczas rozruchu, a następnie okresowo spłukując zmiany z powrotem do pamięci. Częstotliwość tego zapisu jest kontrolowana przez użytkownika, w tym ręcznie.

Puppy używa warstwowego systemu plików aufs lub starszego systemu plików unionfs z dowolnym standardowym systemem plików Linux, takim jak ext3 lub ext4. Może także znajdować się na partycjach FAT lub NTFS.

Istnieje co najmniej kilka wersji Puppy specjalnie zaprojektowanych dla RPi, jedna z nich została stworzona przez „Puppy Master”, Barry'ego Kaulera.

Więcej informacji można znaleźć na stronie http://puppylinux.org/wikka/Puppi

DocSalvager
źródło
12

Większość ludzi mówi tutaj o swoich założeniach, a nie o osobistych doświadczeniach.

Używam mojego RaspberryPi z RasPBX jako firmowej centrali z 8 rozszerzeniami i faksem. Posiadamy 3 magistrale IP i jeden telefon stacjonarny za pośrednictwem LinkSYS SPA3000. Ugryzienie mojej pierwszej karty SD Kingston 4 GB zajęło tylko 1 miesiąc.

Nadal eksperymentowałem i nie miałem kopii zapasowej. BTW Pi jest podłączony do UPS APC. Następnie ponownie konfiguruję cały RasPBX od zera, ale tym razem przeniosłem / var / log i / var / lib / mysql na nasz korporacyjny NAS. Ta SD nadal była OK po 3 miesiącach.

Potem mieliśmy bardzo gorące lato. W trzecim miesiącu pi zaczęło nie wykrywać sieci Ethernet z niebieskiego. Pewnego dnia odkryłem, że wszystkie diody LED są przyciemnione i nie można uruchomić.

Wymieniłem Pi na nowy, gotowy do pracy. Zepsuty jeden zaczął działać po ochłodzeniu, ale działa raczej nieregularnie, a kiedy uruchamia się do RasPBX, tryb wideo nie przełącza się na grafikę, pozostaje w 80 * 25 Tekst. To było naprawdę pomieszane. Od tego czasu zamówiłem zestaw radiatora. Nowe Pi działa z nim już ponad 2 miesiące 7/24.

Więc jeśli będziesz używać pi w środowisku 7/24, nie bądź tani - kup radiator i unikaj używania / var / log i innych zajętych katalogów na karcie SD.

Kerem Ersoy
źródło
Sprawdzanie, czy var / log jest na odpowiednim urządzeniu, brzmi jak doskonała rada. Czy w tym początkowym problematycznym miesiącu nie interesowałeś się również przechowywaniem skrzynek poczty głosowej na karcie USD? Zastanawiam się tylko, czy karty USS o wysokiej wytrzymałości, takie jak te przeznaczone do użytku z kamerą Dash Cam, mogą być lepsze dla mojego wdrożenia RasPBX, jeśli zdecyduję się włączyć skrzynki poczty głosowej.
Mark Booth
11

Porównałem wszystkie rozwiązania wykorzystujące TMPFS i najlepszą odpowiedzią jest synteza skryptów przygotowujących katalogi (patrz http://grenzdebiel.dyndns.org/wordpress/?p=98 ) z poprawnym / etc / defaults / tmpfs ( (patrz http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).

Niezbędne kroki do wykonania na raspbian to:

1. edytuj /etc/default/tmpfsi ustaw :

RAMLOCK=yes
RAMSHM=yes
RAMTMP=yes

Polecam następujące rozmiary:

TMPFS_SIZE=10%VM
RUN_SIZE=10M
LOCK_SIZE=5M
SHM_SIZE=10M
TMP_SIZE=25M

2. włącz dodatkowe katalogi za pomocą / etc / fstab

tmpfs   /var/log                tmpfs   size=20M,defaults,noatime,mode=0755 0 0 
tmpfs   /var/cache/apt/archives tmpfs   size=100M,defaults,noexec,nosuid,nodev,mode=0755 0 0
tmpfs   /var/spool/cups         tmpfs   size=100M,defaults,noatime,mode=0755 0 0
tmpfs   /var/spool/cups/tmp     tmpfs   defaults,noatime,mode=0755 0 0

3. Użyj skryptu, /etc/init.d/prepare-dirsaby utworzyć brakujące katalogi w /var/logcelu uruchomienia wszystkich demonów

Zobacz na końcu, co zawiera w moim przypadku.

4. Ustaw skrypt jako wykonywalny chmod 755 /etc/initd/prepare-dirs.

5. Upewnij się, że skrypt zostanie uruchomiony najpierw podczas rozruchu, zanim uruchomią się demony: update-rc.d prepare-dirs defaults 01 99

zawartość /etc/init.d/prepare-dir:

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          prepare-dirs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Required-Start:
# Required-Stop:
# Short-Description: Create needed directories on /var/log/ for tmpfs at startup
# Description:       Create needed directories on /var/log/ for tmpfs at startup
### END INIT INFO
# needed Dirs
DIR[0]=/var/log/lighttpd
DIR[1]=/var/log/cups
DIR[2]=/var/log/apt
DIR[3]=/var/log/ConsoleKit
DIR[4]=/var/log/fsck
DIR[5]=/var/log/news
DIR[6]=/var/log/ntpstats
DIR[7]=/var/log/samba
DIR[8]=/var/log/lastlog
DIR[9]=/var/log/exim
DIR[10]=/var/log/watchdog
case "${1:-''}" in
  start)
        typeset -i i=0 max=${#DIR[*]}
        while (( i < max ))
        do
                mkdir  ${DIR[$i]}
                chmod 755 ${DIR[$i]}
                i=i+1
        done
        # set rights
        chown www-data.www-data ${DIR[0]}
    ;;
  stop)
    ;;
  restart)
   ;;
  reload|force-reload)
   ;;
  status)
   ;;
  *)
   echo "Usage: $SELF start"
   exit 1
   ;;
esac

Otóż ​​to.

użytkownik13222
źródło
Puppy Linux używa TMPFS do wszystkiego.
DocSalvager,
7

Wyłącz plik wymiany:

sudo dphys-swapfile swapoff

Nie ma potrzeby odinstalowywania, jednak jeśli go nie używasz i potrzebujesz miejsca, możesz je bezpiecznie usunąć. Alternatywne polecenie usunięcia:

deinstalacja sudo dphys-swapfile

Sposób użycia: / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}

Dave Henderson
źródło
5

Flash Cell Endurance:

  • W przypadku flashowania wielopoziomowego (MLC) do 10 000 cykli zapisu na sektor fizyczny.
  • W przypadku flashowania jednopoziomowego (SLC) do 100 000 cykli zapisu na sektor fizyczny.
  • Nowsze dyski SSD oferują 1 milion cykli zapisu na sektor fizyczny.

Jest czysto matematyczny na dużych kartach i normalnym zużyciu. Gdybyś pisał na kartę flash typu MLC o pojemności 8 GB dzień i noc w kółko, zabicie jej zajęłoby około 30 dni.

Odcinek 99 w Techsnap mówi o zużyciu dysków SSD, a Allen wyjaśnia, jak niemożliwe jest zużycie dysku SSD w codziennym użytkowaniu i nie musimy się martwić o wyłączenie swapów, cronów i tym podobnych. To po prostu działa teraz! Inteligentne wyrównanie zużycia dba o wszystko.

Normalne zużycie, jak podaje Kingston, powinno zapewnić 27 lat życia w profesjonalnym aparacie cyfrowym.

Które dla zwykłych lustrzanek cyfrowych możesz uzupełniać raz na kilka miesięcy .. zależy od tego, ile podróżujesz. Biorąc pod uwagę Pi, jeśli często eksperymentujesz z przydziałem i ponownie flashujesz, może to być bardziej kosztowne. Zwykle, gdy jesteś zadowolony z dystrybucji ... nie flashujesz jej przez miesiące czy lata. Aby więc przedłużyć zużycie SD, dobrze byłoby postępować zgodnie z kilkoma wskazówkami na temat zmniejszania IO w SD.

Cena lampy błyskowej spadła, a technologia jest znacznie lepsza.

Większość kart SD przeżyje dwie lub trzy generacje urządzeń i do tego czasu będzie uważana za małą i zbyt wolną w użyciu z dostępną znacznie lepszą i tańszą aktualizacją!

Piotr Kula
źródło
Raspberry Pi skonfigurowany z kamerą internetową do celów bezpieczeństwa może również zapisywać dane 24/7. Myślę, że w takim przypadku dysk SSD jest prawdopodobnie lepszy.
Wysoce nieregularny
1
Tak, ale nie zapisuje WSZYSTKICH sektorów CAŁY czas sekwencyjnie. Jest zarządzany pod kątem najmniejszego zużycia, a nowe dane zawsze trafiają do sektora / obszaru o najmniejszym dostępie. Wideo nie zastąpi plików systemu plików ani plików stronicowania. Zastanawiasz się, ile godzin można uzyskać na dysku flash 16 GB? Zwykle telewizja przemysłowa powinna być dostępna 15-30 dni później! Zamiast tego użyj dysku o pojemności 1 TB lub pamięci NAS do celów historycznych. Nawet w krótkim okresie do przechowywania i transferu dostaniesz lata z karty SD! Lepiej jeszcze użyj 32 GB SD, ale zmień folder na 16 GB - ponad dwukrotnie zwiększysz żywotność tej techniki!
Piotr Kula,
4
@ppumkin, czy możesz nam powiedzieć, jak faktycznie używasz kart SD w swoich RPI? Wielu z nas (Google „malina uszkodzona sd”) napotkało fatalne awarie (ja więcej niż jeden, w tym Kingston, teraz jak już wspomniałeś) z ich domyślnymi ustawieniami Raspbian, pomimo imponujących liczb producentów ... Może to być RPi, a nie SD, ale twoje papierowe dane wciąż nie są poparte żadnymi odniesieniami do (powiem dobrze znanych?) Problemów SD SD RPi, twoich własnych rzeczywistych praktyk terenowych lub, co jeszcze lepsze: studia przypadków eksperymentalnie obalają „pogłoski” o uszkodzeniu SD.
Sz.
1
Posłuchaj, wszystko o czym mówię jest powiązane z odnośnikiem. OK, chcesz wiedzieć, jak go używam? Ja nie! Ponieważ Pi, to naprawdę duży ból w tyłek! Karty SD ciągle zawodzą, a to nie jest usterka karty SD. Zarówno sprzęt, jak i oprogramowanie Pi blokują te rzeczy. Myślę, że są to niestabilne napięcia dostarczane przez tanie zasilacze USB. Nowy B + ma na sobie regulatory. Dzięki Bogu! To naprawiło WiFi, sprzężenie dźwiękowe i modlę się do boga budowania kart SD. Nadal potrzebuję zamówienia, ale teraz gram z Netduino, na razie nie ma awarii SD.
Piotr Kula
1
@ppumkin Użyłem SanDisk. Nie w serwisie eBay. Istnieje duża różnica między ponownym flashowaniem karty SD (powiedzmy w celu ponownego użycia w kamerze) a używaniem jej jako systemu operacyjnego. Powinieneś być bardziej szczegółowe, jak dokładnie ty używać twój, i jak długo trwała. Nie muszę powtarzać komentarza Lunakids, ale całkowicie się z nim zgadzam. .
RolfBly
4

Jak wspomniano wcześniej, głównym problemem są pliki i katalogi, które nie są warte zapisywania między restartami, ale są dość często zapisywane, tj. Pliki pamięci podręcznej, foldery pobierania itp.

Raspbian oraz Debian i Ubuntu mają pakiet o nazwie unburden-home-dir, którego głównym celem jest symlinkowanie takich plików do mniej problematycznych miejsc, takich jak np. tmpfsMount lub zewnętrzny dysk twardy, który jest mniej podatny na zużycie.

Zwykle jest uruchamiany podczas logowania pod X i jest kierowany do plików pamięci podręcznej aplikacji GUI, ale może być również wywoływany ze skryptów lub podobnych i skonfigurowany dla dowolnych plików w katalogu osobistym użytkownika.

Axel Beckert
źródło
3

Oto moje rekomendacje dotyczące Debiana 8.0 (Jessie)

Opierają się na iotop -bktoqqqi iostat -dzp 5. Powinieneś najpierw uruchomić te polecenia, aby zorientować się w problemie i jego rozwiązaniu.

1. Wyłącz zamianę

sudo systemctl disable dphys-swapfile
sudo rm /var/swap

2. Użyj opcji montowania i pamięci RAM

Zamontuj wszystkie partycje na karcie SD z noatime,commit=1800opcjami i zamontuj następujące katalogi w pamięci RAM za pomocą tych wpisów /etc/fstab/:

/dev/mmcblk0p1  /boot           vfat    defaults,noatime,commit=1800  0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime,commit=1800  0       1

tmpfs           /tmp            tmpfs   size=50M,nodev,nosuid     0       0
tmpfs           /var/tmp        tmpfs   size=10M,nodev,nosuid     0       0
tmpfs           /var/cache/samba tmpfs   size=5M,nodev,nosuid     0       0

Commit opóźni zapisy i najpierw je zbierze.

3. Zaloguj się do najczęściej używanych plików dziennika /var/tmp/log/

Zobacz mój opis Jak zmniejszyć zapis do plików dziennika .

4. Powstrzymaj Chromium przed wbijaniem karty SD

Jak się okazuje, Chrom mocno pisze i nie można go zatrzymać (patrz 176727 , 52663 ). Wpływa to na pamięć podręczną i katalog danych użytkownika. The Chromium / Porady wyjaśnić, jak to może zostać przeniesione do pamięci RAM. Ponieważ Raspberry nie ma dużo pamięci RAM, sugerowany Tab Suspender jest przydatny do oszczędzania pamięci RAM.

a) Pamięć podręczna

Ogranicz rozmiar pamięci podręcznej i przenieś ją do pamięci RAM, edytując /etc/chromium-browser/customizations/00-rpi-varsw

CHROMIUM_FLAGS="--disable-quic --enable-fast-unload --enable-tcp-fast-open --disk-cache-size=10000000 --media-cache-size=5000000"

Teraz pamięć podręczna jest na tyle mała, że ​​można ją przenieść na dysk RAM, zmieniając XDG_CACHE_HOMEwpis /etc/security/pam_env.confna

XDG_CACHE_HOME  DEFAULT=/tmp/@{PAM_USER}/cache

Teraz moi dwaj użytkownicy mają małą pamięć podręczną przeglądarki w pamięci RAM. Jeśli to nie wystarczy, zmień odpowiednio pamięć podręczną lub / tmp / size.

b) Dane użytkownika reż

Również dane użytkownika dir ( .config/chromium/) doświadczają ciężkich zapisów. Profil-sync-demon jest zalecany przez Chromium / Porady i wskazówki . Został opracowany w celu zarządzania profilem przeglądarki w tmpfs i okresowej synchronizacji z powrotem na dysk fizyczny. Niestety pakiet nie jest jeszcze częścią dystrybucji Raspbian 8.0 (Jessie). Więc jeszcze tego nie testowałem.

5. Wolne miejsce na karcie SD

Zwolnij miejsce, odinstalowując niepotrzebne pakiety i pliki. To powinno rozłożyć zużycie bardziej równomiernie na partycje.

Gotowy!

Teraz uruchom iotop -bktoqqqi iostat -dzp 5ponownie i zobaczyć znaczne ograniczenie dostępu do zapisu, gdy system jest bezczynny. Przez wiele minut nic nie jest zapisywane na mój dysk. I nie martw się, że zielona dioda ACT miga . Najwyraźniej nie jest to dobry wskaźnik dostępu do zapisu.

Frank Breitling
źródło
2

Wystarczy niewielką redukcję cykli zapisu, przesyłając strumieniowo dane wyjściowe syslog na inny serwer. Oczywiście posiadanie takiego serwera z syslogduruchomionym programem jest warunkiem wstępnym. Jednak, ponieważ Pi jest zabawką dla entuzjastów Linuksa, prawdopodobnie tak często jest. :-)

Aby aktywować to przesyłanie strumieniowe, wystarczy wstawić instrukcję typu

*.*    @myserver.mydomain

w górnej części pliku /etc/rsyslog.conf, skomentuj wszystkie pozostałe wiersze i ponownie uruchom rejestrowanie, wydając polecenie service rsyslog restart. Następnie wiadomości powinny przychodzić na wybrany serwer.

Jednym wyraźnym korzystnym efektem ubocznym jest to, że możesz łatwo monitorować swoje Pi w połączeniu z innymi komputerami na tym samym serwerze. Jednym minusem jest to, że podczas uruchamiania i zamykania systemu możesz utracić niektóre wiadomości, gdy połączenie sieciowe nie zostało jeszcze ustanowione lub zostało już zamknięte.

Marcus Rickert
źródło
Zauważ, że nowoczesne systemy Linux (w tym CentOS 7 i Debian 8 oraz systemy oparte na takich, jak Raspbian 8) wykonują wszystkie logowanie, w journaldktórym są przechowywane w dzienniku systemd. Konfigurują także journaldprzekazywanie dzienników do gniazda syslog, na którym rsyslogdnasłuchuje; który umieszcza dodatkowe kopie wiadomości w plikach dziennika pod /var/log. Jeśli nie masz nic przeciwko journalctlprzeglądaniu dzienników (i działa o wiele lepiej niż /var/logpo zaznajomieniu się z nimi), możesz całkowicie wyłączyć rsyslogi zapisać niektóre zapisy.
Curt J. Sampson,
1

Uwaga: Limit 100 000 cykli to hipoteza, która dotyczy każdego urządzenia komputerowego, nawet klawiszy na klawiaturze. Wierzę, że uruchomienie Pi w odpowiednich warunkach chłodzenia i odpowiednie cykle wyłączania / uruchamiania zapewnią lepsze wyniki niż wchodzenie w analogie.

To również może wzmocnić moją powyższą opinię.

Dodaj nowego użytkownika oprócz użytkownika Pi [domyślnie]. Wskaż katalog domowy nowego użytkownika na dysku zewnętrznym [kciuk / dysk twardy]. Nadaj nowemu użytkownikowi uprawnienia superużytkownika i zacznij używać go jako konta głównego.

Mam nadzieję, że to pomoże..

kamień probierczy
źródło
Zawsze staram się pisać na klawiaturze mniej, aby zaoszczędzić;)
Piotr Kula,
Dodanie nowego użytkownika nie zapobiegnie zajęciu /var/logi /var/tmp. Ponadto posiadanie dowodów z doświadczenia, że właściwe chłodzenie robi różnicę, jest znacznie lepsze niż mówienie „wierzę”.
RolfBly
0

Użyj demona syslog busybox (w pakiecie busybox-syslogd na Raspbian / Debian / Ubuntu) zamiast domyślnego demona syslog (zwykle rsyslog). Domyślnie w Raspbian / Debian / Ubuntu syslogd z busybox loguje się tylko w buforze pierścieniowym w pamięci, a nie na dysku. Bufor pierścieniowy ma domyślnie rozmiar 128 kB, tzn. Stare wpisy dziennika szybko się wycofują i wtedy znikają. Ale możesz go skonfigurować tak, aby używał do tego więcej pamięci RAM.

Jest to jednak znacznie lepsze rozwiązanie niż brak demona syslog, tzn. Nadal możesz się zalogować i odczytać wpisy dziennika ok. ostatnie kilka godzin lub dni (w zależności od skonfigurowanego rozmiaru bufora dzwonka) za pomocą polecenia logread. Możesz także użyć logread -fdo uzyskania tail -fpodobnego zachowania, aby np. Przechowywać tylko interesujące wpisy dziennika za pomocą skryptu filtrującego lub przekazywać wpisy dziennika przez sieć gdzie indziej, np. Za pomocą stunnellub podobnego .

Axel Beckert
źródło
-1

Kilka rzeczy, które zrobiłem:

chmod pliku dphys-swap (gdzieś w / etc - w tej chwili nie w pobliżu PI), aby:

sudo chmod a-x dphys-swapfile

Dostaję drobne błędy podczas uruchamiania (nie mogę uruchomić usługi dphys-swapfile) - Załóżmy, że jest lepszy sposób ... rc-update ??

Ponadto przechwytuję obrazy z modułu kamery, aby ostatecznie umieścić je na moim serwerze internetowym (Pi). Sformatowałem / dev / ram0 do ext2, zamontowałem go jako / media / ramdrive (chyba za pomocą /etc/init.rc). Ma 4 megabajty, wystarczająco duże na jedno kliknięcie. Nie zapisuje do SD.

Serwer (oululife.dnsdynamic.com) jest eksperymentalny, ale w Internecie. Aby naprawdę to podkreślić, pozwoliłem mu również przesyłać strumieniowo odcinek MP4 „Heartbeat *”. Działa z lighttpd, Mysql, PHP, WordPress, a nawet gdy zdalnie przesyłam strumieniowo przez sieć, prawie nie poci się, średnio ładuje około 0,2. Żadnego przetaktowywania. Model B rev. 2, w górę 24/7. Tak więc, jeśli uda mi się przenieść moje logi do innych 15 / dev / ramX, liczę, że moja karta Micro-SD 16G będzie działać przez lata ...

użytkownik10419
źródło