Comment puis-je prolonger la vie de ma carte SD?

252

Je ne suis pas très enthousiaste à l'idée d'acheter un disque dur USB, mais je suis conscient que les cartes SD ne conviennent pas à de nombreuses répétitions de lecture et d'écriture.

Puis-je prendre des mesures pour prolonger la durée de vie de ma carte SD pendant qu'elle est utilisée par mon Raspberry Pi?

Très irrégulière
la source
19
Si vous écrivez à pleine vitesse tout le temps, jour et nuit, 24 heures sur 24, 7 jours sur 16, durera environ 30 jours. A l’usage normal, vous pouvez vous attendre à environ 27 ans sur 10 000 cycles d’écriture. S'il utilise 100 000 cycles d'écriture sur 50 ans. Plus la carte est grande, plus elle durera longtemps, grâce à une logique de mise à niveau astucieuse
Piotr Kula
Wow, c'est bon à savoir, je n'avais aucune idée de votre premier point de 16 Go de disque dur d'une trentaine de jours avec l'écriture à pleine vitesse. Je suppose que constamment enregistrer de la vidéo sur le disque dur puis le transférer n'est pas la meilleure idée.
SSH Ce
3
Avec toutes les performances que vous obtiendrez de ces solutions, pourquoi ne pas simplement payer 10 $ toutes les quelques années?
Alexander

Réponses:

243

Ces méthodes devraient augmenter la durée de vie de la carte SD en minimisant le nombre de lectures / écritures de différentes manières:

Désactiver l'échange

L'échange consiste à utiliser une partie de la carte SD en tant que mémoire volatile. Cela augmentera la quantité de RAM disponible, mais entraînera un nombre élevé de lectures / écritures. Il est peu probable que les performances augmentent de manière significative.

Désactiver l'échange avec la swapoffcommande:

sudo swapoff --all

Vous devez également empêcher son retour après un redémarrage:

  • Pour Raspbian qui utilise dphys-swapfile pour gérer un fichier d'échange (au lieu d'une partition d'échange "normale"), vous pouvez simplement sudo apt-get remove dphys-swapfilele supprimer définitivement. Il est préférable de supprimer car définir le paramètre CONF_SWAPSIZEsur 0, comme expliqué dans cette réponse , ne semble pas fonctionner et crée toujours un fichier d'échange de 100 Mo après le redémarrage.
  • Pour les autres distributions utilisant une partition de swap au lieu d’un fichier de swap, supprimez la ligne appropriée de /etc/fstab

Désactivation de la journalisation sur le système de fichiers

Utiliser un système de fichiers de journalisation tel que ext3ou ext4SANS journal est une option pour diminuer les lectures / écritures. L’inconvénient évident de l’utilisation d’un système de fichiers avec journalisation désactivée est la perte de données résultant d’un démontage déplacé (par exemple, une panne d’alimentation, un blocage du noyau, etc.).

Vous pouvez désactiver la journalisation en le ext3montant en tant que ext2.

Vous pouvez désactiver la journalisation sur ext4un lecteur non monté comme ceci:

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

Le drapeau du mont noatime

Attribuez l'indicateur de montage noatime aux partitions résidant sur la carte SD en l'ajoutant à la section des options de la partition située dans /etc/fstab.

La lecture des accès au système de fichiers n'entraînera plus la mise à jour des informations de temps associées au fichier. L'importance du paramètre noatime est qu'elle élimine la nécessité pour le système de faire des écritures dans le système de fichiers pour les fichiers en cours de lecture. Comme les écritures peuvent être un peu coûteuses, comme mentionné dans la section précédente, cela peut entraîner des gains de performance mesurables. Notez que les informations d'heure d'écriture dans un fichier continueront d'être mises à jour chaque fois que le fichier est écrit avec cette option activée.

Répertoires en RAM

Les répertoires très utilisés tels que /var/tmp/et /var/logpeuvent éventuellement être déplacés vers la RAM de la manière /etc/fstabsuivante:

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

Cela permettra /var/tmpd'utiliser 50 Mo de RAM en tant qu'espace disque. Le seul problème avec cette opération est que les lecteurs montés dans la RAM ne persisteront pas après un redémarrage. Ainsi, si vous montez /var/loget que votre système rencontre une erreur entraînant son redémarrage, vous ne pourrez pas savoir pourquoi.

Répertoires sur disque dur externe

Vous pouvez également monter certains répertoires sur un disque dur USB persistant. Plus de détails à ce sujet peuvent être trouvés dans cette question .

Le Raspberry Pi peut également démarrer sa partition racine à partir d'un lecteur externe. Cela peut être via USB ou Ethernet et signifie que la carte SD ne sera utilisée que pour déléguer à un autre périphérique lors du démarrage. Cela nécessite un peu de piratage du noyau, car je ne pense pas que le noyau par défaut supporte le stockage USB. Vous pouvez trouver plus d'informations à cette question , ou ce post de blog externe .

Jivings
la source
17
noatimedevrait être un défaut.
Alex Chamberlain
3
@AlexChamberlain: noatimen'est pas par défaut, du moins sur Arch.
Jivings
20
C'est dans les dernières versions de Raspian.
Oli
4
Selon ceci: superuser.com/a/168126/105936 ce n'est pas une bonne idée de la mettre /var/tmpen mémoire. Peut-être que vous avez confondu avec /tmp.
Inf3rno
1
Notez que si cela noatimevous cause des problèmes, vous pouvez également utiliser relatimece qui réduit considérablement les écritures sur disque lors de la lecture plutôt que de les supprimer complètement.
Mark Booth
79

Si les options fournies par Jivings ne sont pas possibles pour votre application, une autre option pour prolonger considérablement sa durée de vie consiste à utiliser une carte SD beaucoup plus volumineuse que nécessaire.

Laisse beaucoup d'espace libre

La plupart des cartes SD décentes utilisent des algorithmes de nivellement d'usure pour minimiser le nombre d'écritures de chaque bloc. Ainsi, si la carte SD est plus grande que nécessaire, l'usure peut être répartie sur une zone beaucoup plus grande d'espace libre.

Une des raisons pour lesquelles le nivellement par usure est si important est que certains systèmes de fichiers, tels que FAT (le format par défaut de nombreuses cartes SD), martèlent les mêmes secteurs, encore et encore.

Pour plus d'informations à ce sujet, voir les réponses à la question Est-il vrai qu'une carte SD / MMC s'égale avec son propre contrôleur? sur Electronics Stack Exchange , en particulier cette réponse .

Une statistique intéressante de cette réponse est que

prendre une carte de 2 Go et l’écrire en commençant à la fin revient en moyenne à environ 10 To avant que la carte ne soit morte et qu’elle ne puisse plus écrire.

Mais le problème est que

Les cartes SD ne vous permettent pas de savoir si les données sont mauvaises, c’est-à-dire qu’elles ne renverront pas d’erreur I / O comme le ferait un disque dur PC.

Cela peut rendre votre choix du système de fichiers important si vous devez garantir un stockage fiable.

Une dernière remarque: doubler la taille de la carte SD pourrait plus que doubler sa longévité.

Par exemple, si vous avez une carte SD de 2 Go avec 200 Mo d'espace disque disponible, le passage à une carte de 4 Go vous donnera 11 fois l'espace disponible, la capacité de nivellement d'usure et donc la longévité, tandis que le passage à une carte de 16 Go vous donnera 71 fois l'espace libre espace.

Mark Booth
la source
1
Pour permettre à la carte SD d'effectuer un nivellement d'usure en premier lieu, il est nécessaire d'indiquer les blocs réellement libres d'utilisation. Fstrim pourrait aider à le faire.
JimmyB
Le rognage n’est pas obligatoire, mais sans lui, un bloc n’est réutilisé que lorsque le système d’exploitation le réutilise plutôt qu’il cesse de l’utiliser. Autant que je sache, trim est une fonction SSD et n'est pas pris en charge par les cartes SD auxquelles on accède par un protocole beaucoup plus simple.
Mark Booth
@ Mark, votre premier point est tout à fait exact. - En ce qui concerne votre deuxième point, il y a la MMC_ERASEcommande (facultative) définie quelque part dans la norme MMC / SD uniquement à cette fin. Bien que de toutes les cartes SD, je n’ai essayé qu’une seule carte (celle fournie avec mon Pi-) le supporte réellement.
JimmyB
La taille de la partition est-elle importante dans ce cas? Je veux dire, si j'ai une carte de 16 Go et un système avec une partition ext4 unique de 4 Go, utilisera-t-il également les 12 Go restants pour le nivellement par l'usure?
natenho
Il est difficile de dire @natenho oui pour une carte SD avec un bon nivellement d'usure, non pour une carte avec une mise en œuvre médiocre (ou non).
Mark Booth
26

La seule chose que je vois est de NE PAS permuter sur la carte SD.

Permuter sur la carte SD est probablement ce qui pourrait tuer votre carte SD.

Si vous avez besoin de plus de RAM, vous pouvez essayer d’utiliser zram. Il y a un post sur http://raspberry.pi.gw.gd/t50-Using-ZRAM.html qui donne quelques détails sur l’utilisation de ZRAM sur la framboise pi.

Plus d'infos pour zram sur http://en.wikipedia.org/wiki/ZRam

De plus, les cartes SD les plus récentes sont bien plus solides que les anciennes. Acheter une nouvelle carte SD de classe 10 est probablement une bonne option si vous souhaitez la voir durer longtemps.

néofutur
la source
14

Vous pouvez essayer d’exécuter Puppy Linux qui est complètement résidant en ram. Il est très petit et extrêmement rapide puisqu'il fonctionne entièrement en mémoire en copiant l'image de stockage (sur la carte SD dans votre cas) dans la RAM au démarrage, puis en effaçant périodiquement les modifications dans le stockage. La fréquence de cette sauvegarde est contrôlée par l'utilisateur, y compris manuellement.

Puppy utilise le système de fichiers couches aufs ou ancien unionfs avec l'un des systèmes de fichiers Linux standard tels qu'ext3 ou ext4. Il peut également résider sur des partitions FAT ou NTFS.

Il existe au moins deux versions de Puppy spécialement conçues pour le RPi, dont l’une d’elles a été créée par le "Puppy Master", Barry Kauler.

Pour plus d'informations, visitez http://puppylinux.org/wikka/Puppi

DocSalvager
la source
13

La plupart des gens ici parlent de leurs hypothèses et non de leur expérience personnelle.

J'utilise RaspberryPi avec RasPBX comme standard de société avec 8 extensions et un fax. Nous avons 3 lignes réseau IP et une ligne fixe via LinkSYS SPA3000. Ma carte SD Kingston 4 Go Kingston initiale n'a fallu qu'un mois pour mordre la poussière.

J'étais encore en train d'expérimenter et je n'avais pas de sauvegarde. BTW le Pi est connecté à un onduleur APC. J'ai ensuite reconfiguré RasPBX dans son intégralité, mais cette fois-ci, j'ai déplacé les fichiers / var / log et / var / lib / mysql sur notre NAS d'entreprise. Ce SD était toujours OK après 3 mois.

Ensuite, nous avons eu un été très chaud. Au cours du troisième mois, le pi a commencé à ne pas détecter l’Ethernet à l’improviste. Puis un jour, j’ai trouvé que tous les Leds étaient sombres et que cela ne démarrerait pas.

J'ai remplacé le Pi par un autre qui fonctionne. Celui en panne a commencé à fonctionner après refroidissement, mais cela fonctionne plutôt irrégulier et lorsqu'il démarre sur RasPBX, le mode vidéo ne bascule pas en mode graphique, il reste en 80 * 25 texte. C'était vraiment foiré. J'ai commandé un ensemble dissipateur thermique depuis. Le nouveau Pi fonctionne avec cela depuis plus de 2 mois, 7 jours sur 7.

Donc, si vous voulez utiliser le pi dans un environnement 7/24, ne soyez pas cher: achetez un dissipateur thermique et évitez d'utiliser / var / log et d'autres répertoires surchargés sur la carte SD.

Kerem Ersoy
la source
S'assurer que var / log est sur un périphérique approprié, cela semble être un excellent conseil. Par intérêt, au cours de ce premier mois difficile, avez-vous également stocké des boîtes de messagerie vocale sur la carte USD? Je me demande simplement si des cartes USB haute endurance, telles que celles conçues pour Dash Cam, pourraient être meilleures pour mon déploiement RasPBX si je décide d'activer les boîtes vocales.
Mark Booth le
11

J'ai comparé toutes les solutions de l'utilitaire TMPFS et la meilleure réponse est une synthèse du script prepare-dirs (voir http://grenzdebiel.dyndns.org/wordpress/?p=98 ) avec un fichier / etc / defaults / tmpfs approprié ( (voir http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).

Les étapes nécessaires pour effectuer sur raspbian sont les suivantes:

1. éditer /etc/default/tmpfset régler :

RAMLOCK=yes
RAMSHM=yes
RAMTMP=yes

Je recommanderais les tailles suivantes:

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

2. Activer des répertoires supplémentaires en utilisant / 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. utilisez le script /etc/init.d/prepare-dirspour créer les répertoires manquants /var/logafin que tous les démons commencent

Voir à la fin ce qu'il contient dans mon cas.

4. Rendre le script exécutable chmod 755 /etc/initd/prepare-dirs.

5. Assurez-vous que le script sera démarré d’abord au démarrage avant que vos démons ne démarrent: update-rc.d prepare-dirs defaults 01 99

contenu de /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

C'est ça.

utilisateur13222
la source
Puppy Linux utilise TMPFS pour tout.
DocSalvager
7

Désactiver le fichier d'échange:

sudo dphys-swapfile swapoff

Il n'est pas nécessaire de désinstaller, mais si vous ne l'utilisez pas et que vous voulez de l'espace, vous pouvez le supprimer en toute sécurité. Commande alternative à supprimer:

sudo dphys-swapfile désinstaller

Utilisation: / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}

Dave Henderson
la source
5

Endurance Flash Cell:

  • Pour une mémoire Flash MLC (Multi-Level Cell), jusqu'à 10 000 cycles d'écriture par secteur physique.
  • Flash SLC (Single-Level Cell): jusqu'à 100 000 cycles d'écriture par secteur physique.
  • Les nouveaux SSD offrent 1 million de cycles d'écriture par secteur physique.

C'est purement mathématique sur les grandes cartes et l'usure normale. Si vous deviez écrire jour et nuit sur une carte flash de type MLC de 8 Go, il faudrait environ 30 jours pour la tuer.

L’épisode 99 de Techsnap parle de l’usure des disques SSD et Allen explique qu’il est impossible d’utiliser un disque SSD au quotidien et qu’il n’est pas nécessaire de s’inquiéter de la désactivation des swap, crons et autres. Cela fonctionne juste maintenant! Le nivellement d'usure intelligent prend soin de tout.

L’usure normale indiquée par Kingston devrait vous donner 27 ans de la vie d’une caméra numérique professionnelle.

Pour les appareils photo reflex numériques normaux, vous pouvez le remplir une fois tous les deux mois environ. Cela dépend de votre temps de déplacement. En prenant en compte un Pi, si vous expérimentez attribuer et ré-clignoter souvent, cela peut prendre plus de temps. Habituellement, une fois que vous êtes satisfait d’une distribution ... vous ne la flashez pas pendant des mois ou des années. Donc, pour prolonger l'usure du DD, il serait bon de suivre quelques conseils sur la réduction des entrées-sorties sur le DD.

Le prix du flash a baissé et la technologie est bien meilleure.

La plupart des cartes SD survivront à deux ou trois générations d’appareils. À ce moment-là, il sera considéré comme trop petit et trop lent pour être utilisé avec une mise à niveau bien meilleure et moins chère disponible!

Piotr Kula
la source
Un Raspberry Pi configuré avec une webcam pour des raisons de sécurité peut très bien écrire des données 24h / 24 et 7j / 7. Je suppose que dans ce cas, un disque SSD est probablement meilleur.
Très irrégulière
1
Oui, mais cela n’écrit pas TOUT le secteur de façon séquentielle. Elle est gérée de manière à minimiser l'usure et les nouvelles données vont toujours vers les secteurs / zones les moins accessibles. La vidéo ne remplacera pas les fichiers du système de fichiers ou les fichiers de pagination. En attendant combien d'heures pouvez-vous obtenir sur un lecteur flash de 16 Go? CCTV devrait normalement être accessible 15-30 jours plus tard! Utilisez plutôt un disque dur de 1 To ou un NAS pour le stocker à des fins historiques. Même à court terme pour le stockage et le transfert, vous obtiendrez des années avec une carte SD! Mieux encore, utilisez une carte SD de 32 Go, mais plafonnez le dossier à 16 Go. Vous doublez la durée de vie de cette technique!
Piotr Kula
4
@ppumkin, pouvez-vous nous dire comment vous utilisez vos cartes SD dans vos RPi? Beaucoup d'entre nous (Google "raspberry endommagé sd") ont rencontré des échecs fatals (plus d'un, y compris Kingston, maintenant que vous mentionnez) avec leurs configurations Raspbian par défaut, malgré les numéros de fournisseurs impressionnants ... Il peut être RPi, pas SD, mais vos chiffres sur papier ne sont toujours pas fondés, sans aucune référence aux questions de RPi SD (devrais-je dire bien connues?), À vos propres pratiques de terrain, ou, mieux encore: des études de cas réfutant expérimentalement les "rumeurs" des dommages causés par le SD.
Sz.
1
Regardez, tout ce que je parle est lié à la référence. OK, vous voulez savoir comment je l'utilise? Non! Parce que le Pi, c'est vraiment une grosse douleur dans le cul! Les cartes SD continuent de tomber en panne, et ce n'est pas le défaut de la carte SD. Soit le matériel ou le logiciel Pi cogne ces choses. Je pense que ce sont les tensions instables fournies par les alimentations USB bon marché. Le nouveau B + a des régulateurs sur eux. Dieu merci! Ce WiFi fixe, les retours sonores et je prie Dieu de casser les cartes SD. J'ai encore besoin de commander, mais je joue maintenant avec Netduino, aucune carte SD ne s'est encore effondrée à ce sujet.
Piotr Kula
1
@ pumkin j'ai utilisé SanDisk. Pas ceux d'ebay. Il y a une grande différence entre reflasher une carte SD (pour la réutiliser dans une caméra, par exemple) et l'utiliser comme maison d'un système d'exploitation. Vous devriez être plus précis sur la manière dont vous utilisez le vôtre et sur sa durée. Pas besoin que je répète le commentaire de Lunakids, mais je suis entièrement d'accord avec lui. .
RolfBly
4

Comme mentionné précédemment, le problème principal concerne les fichiers et les répertoires qui ne valent pas la peine d'être sauvegardés entre les redémarrages, mais sont écrits assez souvent, c'est-à-dire les fichiers en cache, les dossiers de téléchargement, etc.

Raspbian, ainsi que Debian et Ubuntu ont un paquet appelé unburden-home-dir dont le but principal est de créer un lien symbolique vers de tels fichiers vers un emplacement moins problématique, comme par exemple un tmpfsmontage ou un disque dur externe moins sujet à l’usure.

Il est généralement exécuté au moment de la connexion sous X et ciblé vers les fichiers de cache de l'application graphique, mais peut également être appelé à partir de scripts ou être configuré pour des fichiers arbitraires dans le répertoire de base d'un utilisateur.

Axel Beckert
la source
3

Voici mes recommandations pour une Debian 8.0 (Jessie)

Ils sont basés sur iotop -bktoqqqet iostat -dzp 5. Vous devez d’abord exécuter ces commandes pour avoir une idée du problème et de sa solution.

1. Désactiver l'échange

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

2. Utiliser les options de montage et la RAM

Montez toutes les partitions sur la carte SD avec les noatime,commit=1800options et montez les répertoires suivants dans la RAM avec ces entrées dans votre /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

S'engager retardera les écritures et les collectera en premier.

3. Enregistrez les fichiers journaux les plus fréquents sur /var/tmp/log/

Voir ma description. Comment puis-je réduire l'écriture dans les fichiers journaux ?

4. Arrêtez le chrome de marteler la carte SD

Il s'avère que Chromium écrit fortement et ne peut pas être arrêté (voir 176727 , 52663 ). Ceci affecte le cache et le répertoire de données utilisateur. Les chrome / Trucs et astuces expliquent comment cela peut être déplacé à la RAM. Étant donné que le Raspberry ne dispose pas de beaucoup de RAM, il est recommandé de mettre Tab Suspender pour économiser de la RAM.

a) cache

Limitez la taille du cache et déplacez-le vers la RAM en modifiant /etc/chromium-browser/customizations/00-rpi-varsle

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

Maintenant , le cache est assez petit pour être déplacé sur le disque RAM en changeant l' XDG_CACHE_HOMEentrée dans /etc/security/pam_env.confla

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

Maintenant, mes deux utilisateurs ont un petit cache de navigateur dans la RAM. Si cela ne vous suffit pas, changez le cache ou / tmp / size selon vos besoins.

b) Répertoire de données utilisateur

De plus, l'utilisateur dir ( .config/chromium/) connaît des écritures lourdes. Le démon Profile-sync est recommandé par Chromium / Trucs et astuces . Il a été développé pour gérer le profil de votre navigateur dans les fichiers tmpfs et pour le synchroniser périodiquement avec votre disque physique. Malheureusement, le package ne fait pas encore partie de la distribution Raspbian 8.0 (Jessie). Donc, je n'ai pas encore testé cela.

5. Espace libre sur la carte SD

Libérez de l'espace en désinstallant les packages et les fichiers dont vous n'avez pas besoin. Cela devrait répartir l’usure de manière plus uniforme sur vos partitions.

Terminé!

Maintenant, exécutez iotop -bktoqqqet iostat -dzp 5recommencez et constatez une réduction significative de l'accès en écriture lorsque le système est inactif. Rien n'est écrit sur mon disque pendant plusieurs minutes. Et ne vous inquiétez pas du voyant vert ACT clignotant . Apparemment, ce n'est pas un bon indicateur d'accès en écriture.

Frank Breitling
la source
2

Seule une infime réduction du nombre de cycles d'écriture peut être atteinte en transmettant la sortie de syslog à un autre serveur. Bien sûr, avoir un tel serveur en cours d' syslogdexécution est une condition préalable. Cependant, le Pi étant un jouet pour les passionnés de Linux, c'est probablement très souvent le cas. :-)

Pour activer cette diffusion, insérez simplement une déclaration telle que

*.*    @myserver.mydomain

À peu près en haut du fichier /etc/rsyslog.conf, commentez toutes les autres lignes et redémarrez la journalisation en émettant service rsyslog restart. Après cela, les messages devraient arriver sur le serveur sélectionné.

Un des effets secondaires évidents de cette situation est que vous pouvez facilement surveiller votre Pi en conjonction avec d’autres machines sur le même serveur. Un inconvénient est que lors du démarrage et de l'arrêt du système, vous risquez de perdre des messages lorsque la connexion réseau n'a pas encore été établie ou a déjà été fermée.

Marcus Rickert
la source
Notez que les systèmes Linux modernes (y compris CentOS 7 et Debian 8, ainsi que les systèmes basés sur ceux tels que Raspbian 8) effectuent toute la journalisation dans journaldlaquelle ils les stockent dans le journal systemd. Ils configurent également journaldpour transférer les journaux au socket syslog sur lequel vous rsyslogdécoutez; qui place des copies supplémentaires des messages dans les fichiers journaux sous /var/log. Si vous êtes à l'aise journalctlpour parcourir vos journaux (et que cela fonctionne beaucoup mieux qu'une /var/logfois que vous y êtes habitué), vous pouvez complètement désactiver rsysloget enregistrer certaines écritures.
Curt J. Sampson
1

Remarque: la limite de 100 000 cycles est une hypothèse qui s'applique à tout périphérique informatique, même aux touches d'un clavier. Je pense qu'utiliser Pi dans des conditions de refroidissement appropriées et avec des cycles d'arrêt / démarrage appropriés donnera de meilleurs résultats que de passer à des analogies.

Cela peut aussi augmenter mon opinion ci-dessus.

Ajouter un nouvel utilisateur en plus de l'utilisateur Pi [par défaut]. Pointez le répertoire de base du nouvel utilisateur sur le lecteur externe [lecteur / disque dur]. Accordez au nouvel utilisateur les autorisations de super-utilisateur et commencez à l'utiliser comme compte principal.

J'espère que ça aide..

pierre de touche
la source
J'essaie toujours de taper moins pour économiser sur les claviers;)
Piotr Kula
L'ajout d'un nouvel utilisateur n'empêchera pas occupé /var/loget /var/tmp. En outre, avoir la preuve par expérience qu'un refroidissement correct fait toute la différence est bien mieux que de dire "je crois".
RolfBly
0

Utilisez le démon syslog de busybox (dans le paquet busybox-syslogd sur Raspbian / Debian / Ubuntu) au lieu du démon syslog par défaut (généralement rsyslog). Par défaut, sous Raspbian / Debian / Ubuntu, le syslogd de busybox se connecte uniquement dans la mémoire tampon circulaire en mémoire et non sur le disque. La mémoire tampon circulaire a une taille de 128 Ko par défaut, c’est-à-dire que les anciennes entrées du journal disparaissent assez rapidement et disparaissent ensuite. Mais vous pouvez le configurer pour qu'il utilise plus de RAM.

Néanmoins, il s'agit d'une bien meilleure solution que de ne pas avoir de démon syslog, c'est-à-dire que vous pouvez toujours vous connecter et lire les entrées du journal d'env. depuis quelques heures ou jours (en fonction de la taille configurée du tampon circulaire) avec la commande logread. Vous pouvez également utiliser logread -fpour obtenir un tail -fcomportement similaire, par exemple pour ne stocker que les entrées de journal intéressantes à l'aide d'un script de filtrage, ou pour transférer des entrées de journal sur le réseau ailleurs, par exemple à l'aide de stunnelou autre.

Axel Beckert
la source
-1

Quelques choses que j'ai faites:

chmod du fichier dphys-swap (quelque part dans / etc - pas près du PI pour le moment) à:

sudo chmod a-x dphys-swapfile

Je reçois des erreurs mineures au démarrage (impossible de démarrer le service dphys-swapfile) - Supposons qu'il existe un meilleur moyen ... rc-update ??

De plus, je capture des images à partir du module de caméra, pour éventuellement les mettre sur mon serveur Web (le Pi). J'ai formaté / dev / ram0 sur ext2, je l'ai monté en tant que / media / ramdrive (en utilisant /etc/init.rc, je pense). C'est 4megs, assez grand pour un snap. Non écrit à SD.

Le serveur (oululife.dnsdynamic.com) est expérimental, mais sur le Web. Pour être vraiment stressant, je l'ai laissé également lire un épisode MP4 de 'Heartbeat *'. Il fonctionne sous lighttpd, Mysql, PHP, WordPress, et même lorsque je diffuse à distance sur le Web, il transpire à peine, la charge moyenne est d'environ 0,2. Aucun dépassement de temps du tout. Modèle B rév. 2, 24 heures sur 24, 7 jours sur 7. Donc, si je peux obtenir mes fichiers journaux dans l’autre 15 / dev / ramX, je pense que ma carte Micro-SD 16G durera des années ...

utilisateur10419
la source