SD 카드의 수명을 연장하려면 어떻게해야합니까?


252

나는 USB 하드 디스크를 구입하는 데 열중하지는 않지만 SD 카드는 많은 반복적 인 읽기 및 쓰기 작업에 적합하지 않다는 것을 알고 있습니다.

내 Raspberry Pi에서 SD 카드를 사용하는 동안 SD 카드의 수명을 연장하기 위해 취할 수있는 조치가 있습니까?


19
24/7 하루 종일 하루 종일 최고 속도로 쓰면 16GB는 30 일 정도 지속됩니다. 정상적인 사용에서는 10,000 회의 쓰기주기를 기준으로 약 27 년이 소요될 수 있습니다. 50 년 동안 100,000 회의 쓰기주기를 사용하는 경우. 영리한웨어 레벨링 로직 덕분에 카드가 클수록 오래 지속됩니다
Piotr Kula

알다시피, 나는 최고 속도를 쓰는 데 30 일 동안 지속되는 16gb sd의 첫 포인트에 대해 전혀 몰랐습니다. 나는 끊임없이 sd에 비디오를 녹화 한 다음 전송하는 것이 가장 좋은 생각은 아니라고 생각합니다.
SSH 이번

3
이러한 솔루션으로 얻을 수있는 모든 성능 저하로 몇 년에 10 달러 만 지불하면 어떨까요?
Alexander

답변:


244

이러한 방법은 다양한 방법으로 읽기 / 쓰기 수를 최소화하여 SD 카드의 수명을 늘려야합니다.

스왑 비활성화

스와핑은 SD 카드의 일부를 휘발성 메모리로 사용하는 프로세스입니다. 이로 인해 사용 가능한 RAM의 양이 증가하지만 많은 수의 읽기 / 쓰기가 발생합니다. 성능이 크게 향상되지는 않습니다.

다음 swapoff명령으로 스왑을 비활성화하십시오 .

sudo swapoff --all

또한 재부팅 후에 다시 나타나지 않도록해야합니다.

  • Raspbian을 위해 사용하는 dphys - 스왑 파일을 단순히 수 (대신 "정상"스왑 파티션의) 스왑 파일을 관리하기 위해 sudo apt-get remove dphys-swapfile영구적으로 제거 할 수 있습니다. 이 답변에CONF_SWAPSIZE 설명 된 것처럼를 0으로 설정하면 작동하지 않는 것 같고 재부팅 후 여전히 100MB 스왑 파일을 만듭니다.
  • 스왑 파일 대신 스왑 파티션을 사용하는 다른 배포의 경우 적절한 줄을 제거하십시오. /etc/fstab

파일 시스템에서 저널링 비활성화

저널이 ext3있거나 없는 저널링 파일 시스템을 사용하면 ext4읽기 / 쓰기를 줄일 수 있습니다. 저널링이 비활성화 된 상태에서 파일 시스템을 사용하는 데있어 명백한 단점은 비정상적으로 마운트 해제 (예 : 사후 정전, 커널 잠금 등)로 인한 데이터 손실입니다.

ext3로 마운트하여 저널링을 비활성화 할 수 있습니다 ext2.

다음 ext4과 같이 마운트 해제 된 드라이브에서 저널링을 비활성화 할 수 있습니다 .

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

noatime 마운트 플래그

의 noatime 마운트 플래그를 SD 카드에있는 파티션에 파티션의 옵션 섹션에 추가하여 할당하십시오 /etc/fstab.

파일 시스템에 대한 액세스 권한을 읽을 때 더 이상 파일과 관련된 atime 정보가 업데이트되지 않습니다. noatime 설정의 중요성은 시스템이 단순히 읽고있는 파일에 대해 파일 시스템에 쓸 필요가 없다는 것입니다. 이전 섹션에서 언급 한 것처럼 쓰기 비용이 다소 비쌀 수 있으므로 성능이 크게 향상 될 수 있습니다. 이 옵션이 활성화 된 상태에서 파일을 쓸 때마다 파일에 대한 쓰기 시간 정보가 계속 업데이트됩니다.

RAM의 디렉토리

같은 높은 사용 디렉토리 /var/tmp/가능성 및이 /var/log의 RAM에 재배치 할 수 있습니다 /etc/fstab다음과 같이 :

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

이를 통해 /var/tmp디스크 공간으로 50MB의 RAM을 사용할 수 있습니다. 이 작업의 유일한 문제는 RAM에 마운트 된 모든 드라이브가 재부팅 후에도 지속되지 않는다는 것입니다. 따라서 마운트 /var/log할 때 시스템을 재부팅하는 오류가 발생하면 이유를 찾을 수 없습니다.

외장 하드 디스크의 디렉토리

영구 USB 하드 디스크에 일부 디렉토리를 마운트 할 수도 있습니다. 이에 대한 자세한 내용은 이 질문 에서 찾을 수 있습니다 .

Raspberry Pi는 외장 드라이브에서 루트 파티션으로 부팅 할 수도 있습니다. 이것은 USB 또는 이더넷을 통한 것일 수 있으며 부팅하는 동안 SD 카드를 사용하여 다른 장치로 위임 할 수 있습니다. 기본 커널이 USB 스토리지를 지원한다고 생각하지 않기 때문에 약간의 커널 해킹이 필요합니다. 이 질문 또는이 외부 블로그 게시물 에서 자세한 정보를 찾을 수 있습니다 .


17
noatime기본값이어야합니다.
Alex Chamberlain

3
@AlexChamberlain : noatime최소한 아치에서는 기본값이 아닙니다.
Jivings

20
최신 Raspian 빌드에 있습니다.
Oli

4
이것에 따르면 : superuser.com/a/168126/105936/var/tmp 메모리 에 넣는 것은 그리 좋은 생각이 아닙니다 . 어쩌면 당신은 그것을 혼동했을 것입니다 /tmp.
inf3rno

1
noatime문제 가 발생 하는 경우 relatime디스크 쓰기를 완전히 제거하지 않고 읽기시 디스크 쓰기를 크게 줄이는 것을 사용할 수도 있습니다 .
Mark Booth

79

Jivings 가 제공하는 옵션을 응용 프로그램 에서 사용할 수없는 경우 수명연장하는 또 다른 옵션 은 필요한 것보다 훨씬 큰 SD 카드를 사용하는 것입니다.

충분한 여유 공간을 두십시오

대부분의 괜찮은 SD 카드는 웨어 레벨링 알고리즘을 사용하여 각 블록이 작성되는 횟수를 최소화하므로 SD 카드가 필요한 것보다 큰 경우 마모가 훨씬 더 넓은 여유 공간에 퍼질 수 있습니다.

웨어 레벨링이 중요한 이유 중 일부는 FAT (많은 SD 카드의 기본 형식) 와 같은 일부 파일 시스템 이 동일한 섹터를 반복해서 망치는 것입니다.

이에 대한 자세한 내용은 질문에 대한 답변을 참조하십시오 . SD / MMC 카드가 자체 컨트롤러를 사용하여 레벨링되는 것이 사실입니까? 이상에 전자 스택 거래소 특히, 이 답변 .

이 답변의 흥미로운 통계 중 하나 는

2GB 카드를 가져 와서 끝까지 반복해서 쓰는 것은 카드가 죽기 전에 더 이상 쓰기가 불가능하기 전에 평균 약 10TB입니다.

하지만 걱정되는 것은

SD 카드는 데이터가 나쁜시기를 알려주지 않습니다. 즉 PC 하드 드라이브처럼 I / O 오류를 반환하지 않습니다.

신뢰할 수있는 스토리지를 보장해야하는 경우 파일 시스템 선택이 중요 할 수 있습니다.

마지막 참고 사항 : SD 카드의 크기를 두 배로 늘리면 수명 이 두 배 이상 늘어날 수 있습니다.

즉, 200MB의 여유 공간이있는 2GB SD 카드가있는 경우 4GB 카드로 전환하면 여유 공간이 11 배, 균등화 용량이 길고 수명이 길고 16GB 카드로 전환하면 71 배의 무료 공간이 제공됩니다. 우주.


처음부터 SD 카드가웨어 레벨링을 수행 할 수 있도록하려면 실제로 어떤 블록을 사용할 수 있는지 알려 주어야합니다. fstrim 이 도움이 될 수 있습니다.
JimmyB

트림은 필요하지 않지만 블록이 없으면 블록은 블록을 사용하지 않고 OS가 블록을 재사용 할 때만 재사용됩니다. 내가 아는 한 트림은 SSD 기능이며 훨씬 간단한 프로토콜로 액세스되는 SD 카드에서는 지원되지 않습니다.
Mark Booth

@Mark, 첫 번째 요점이 정확히 맞습니다. -두 번째 MMC_ERASE로, MMC / SD 표준 어딘가에이 목적을 위해 (선택적) 명령이 정의되어 있습니다. 모든 SD 카드 중에서도 하나만 시도했지만 실제로는 Pi와 함께 제공됩니다.
JimmyB

이 경우 파티션 크기가 중요합니까? 16GB 카드와 고유 한 ext4 파티션이 4GB 인 시스템을 사용하는 경우 남은 12GB도웨어 레벨링에 활용됩니까?
natenho

마모 레벨링이 좋은 SD 카드의 경우 @natenho에게 예를 말하기가 어렵고 구현이 불량한 (또는없는) 사람에게는 없습니다.
Mark Booth

25

내가 볼 수있는 유일한 것은 SD 카드를 바꾸지 않는 것입니다.

SD 카드를 교체하면 아마도 SD 카드를 죽일 수 있습니다.

당신이 더 많은 RAM이 필요하면, 당신은 zram을 사용하려고 할 수 있습니다에 게시물 프로그래머 http://raspberry.pi.gw.gd/t50-Using-ZRAM.html 라즈베리 파이에 ZRAM 사용에 대한 몇 가지 세부 사항을주는

http://en.wikipedia.org/wiki/ZRam의 zram에 대한 추가 정보

또한 가장 최근의 SD 카드는 오래된 것보다 훨씬 더 견고한 것으로 알려져 있습니다. 새로운 클래스 10 SD 카드를 구입하는 것이 좋은 옵션 일 것입니다.


14

완전히 램 상주 인 Puppy Linux를 실행할 수 있습니다. 부팅시 스토리지 이미지 (귀하의 SD 카드에있는)를 RAM에 복사 한 다음 주기적으로 변경 사항을 스토리지로 플러시하여 메모리에서 완전히 실행되므로 매우 작고 눈이 먼 속도입니다. 이 저장 빈도는 수동을 포함하여 사용자가 제어합니다.

강아지는 ext3 또는 ext4와 같은 표준 Linux 파일 시스템과 함께 계층화 된 aufs 또는 이전 unionfs 파일 시스템을 사용합니다. FAT 또는 NTFS 파티션에 상주 할 수도 있습니다.

RPi를 위해 특별히 설계된 두 가지 버전의 강아지가 있으며 그중 하나는 "Puppy Master"인 Barry Kauler가 만든 것입니다.

자세한 내용은 http://puppylinux.org/wikka/Puppi 로 이동 하십시오.


12

대부분의 사람들은 개인적인 경험이 아니라 가정에 대해 이야기합니다.

내 RaspberryPi를 RasPBX와 함께 8 개의 확장 기능과 팩스가있는 회사 스위치 보드로 사용하고 있습니다. LinkSYS SPA3000을 통해 3 개의 IP 기반 트렁크와 1 개의 유선 전화가 있습니다. 초기 Kingston 4GB SDCard가 먼지를 깨는 데 1 개월 밖에 걸리지 않았습니다.

나는 여전히 실험 중이며 백업이 없었습니다. BTW는 Pi가 APC UPS에 연결되어 있습니다. 그런 다음 전체 RasPBX를 처음부터 다시 설정했지만 이번에는 / var / log 및 / var / lib / mysql을 회사 NAS로 옮겼습니다. 이 SD는 3 개월 후에도 여전히 정상입니다.

그 다음 우리는 매우 더운 여름을 보냈습니다. 세 번째 달 동안 파이는 이더넷을 파란색으로 감지하지 못했습니다. 그런 다음 어느 날 모든 Led가 어둡고 부팅되지 않는다는 것을 알았습니다.

나는 Pi를 새로운 즉시 사용 가능한 것으로 교체했습니다. 고장난 것은 냉각 후 작동하기 시작했지만 다소 불규칙적이며 RasPBX로 부팅하면 비디오 모드가 그래픽으로 전환되지 않고 80 * 25 텍스트로 유지됩니다. 정말 엉망이되었습니다. 이후 히트 싱크 세트를 주문했습니다. 새로운 Pi는 현재 2 개월 이상 7/24 개월 동안 작동합니다.

따라서 7/24 환경에서 pi를 사용할 경우 저렴하지 마십시오. 방열판을 구입하고 SD 카드에서 / var / log 및 기타 사용중인 디렉토리를 사용하지 마십시오.


var / log가 적절한 장치에 있는지 확인하는 것은 훌륭한 조언처럼 들립니다. 문제가있는 첫 달에 USD 메일에도 음성 사서함을 저장 했습니까? 음성 메일 박스를 사용하기로 결정한 경우 Dash Cam 용으로 설계된 것과 같은 내구성이 높은 uSD 카드가 RasPBX 배포에 더 좋을지 궁금합니다.
마크 부스

11

나는 모든 솔루션을 utilitze TMPFS와 비교했으며 가장 좋은 대답은 스크립트 준비 디렉토리 ( http://grenzdebiel.dyndns.org/wordpress/?p=98 참조 )를 적절한 / etc / defaults / tmpfs ( ( http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ 참조 ).

라즈 비아에서 수행해야 할 단계는 다음과 같습니다.

1. 편집 /etc/default/tmpfs및 설정 :

RAMLOCK=yes
RAMSHM=yes
RAMTMP=yes

다음 크기를 권장합니다.

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

2. / 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. 스크립트 /etc/init.d/prepare-dirs를 사용하여 /var/log모든 디먼이 시작되도록 누락 된 디렉토리를 작성하십시오.

내 사건에 포함 된 것을 마지막에서보십시오.

4. 스크립트를 실행 가능하게 만드십시오 chmod 755 /etc/initd/prepare-dirs.

5. 데몬이 시작되기 전에 부팅시 스크립트가 먼저 시작되는지 확인하십시오. update-rc.d prepare-dirs defaults 01 99

내용 /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

그게 다야.


강아지 리눅스는 모든 것에 TMPFS를 사용합니다.
DocSalvager

7

스왑 파일 비활성화 :

sudo dphys-swapfile 스왑 오프

제거 할 필요는 없지만 사용하지 않고 공간을 원하는 경우 안전하게 제거 할 수 있습니다. 제거 할 대체 명령 :

sudo dphys-swapfile 제거

사용법 : / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}


5

플래시 셀 내구성 :

  • MLC (Multi-Level Cell) 플래시의 경우 물리적 섹터 당 최대 10,000 개의 쓰기주기.
  • SLC (Single-Level Cell) 플래시의 경우 물리적 섹터 당 최대 100,000 쓰기 사이클.
  • 최신 SSD는 물리적 섹터 당 100 만 쓰기주기를 제공합니다.

그것은 큰 카드와 정상적인 마모에 순수하게 수학입니다. 밤낮으로 8GB MLC 유형 플래시 카드에 쓰려고한다면 약 30 일이 걸립니다.

Techsnap의 에피소드 99에서 SSD를 착용하는 것에 대해 이야기하고 Allen 은 일상적인 사용에서 SSD를 착용하는 것이 불가능한 방법에 대해 설명 하며 스왑, 크론 등을 비활성화 할 염려가 없습니다. 지금 작동합니다! 스마트웨어 레벨링은 모든 것을 처리합니다.

Kingston에 인용 된 일반적인 마모 는 전문가 용 디지털 카메라의 수명 동안 27 년의 수명을 제공해야합니다.

일반적인 DSLR 카메라의 경우 몇 개월에 한 번씩 채워질 수 있습니다. Pi를 고려할 때 할당량을 실험하고 자주 플래시를하면 더 많은 비용이 소요될 수 있습니다. 일반적으로 배포판에 만족하면 몇 개월 또는 몇 년 동안 다시 표시하지 않습니다. 따라서 SD 마모를 연장하려면 SD의 IO 감소에 대한 몇 가지 조언을 따르는 것이 좋습니다.

플래시 가격이 떨어지고 기술이 훨씬 나아졌습니다.

대부분의 SD 카드는 2 세대 또는 3 세대 장치보다 수명이 길며 그 당시에는 훨씬 더 좋고 저렴한 업그레이드로 사용하기에는 작고 너무 느리게 간주됩니다!


보안을 위해 웹캠으로 설정된 라즈베리 파이는 24/7 데이터를 쓸 수 있습니다. 이 경우 SSD가 더 나은 것 같습니다.
매우 불규칙한

1
예, 그러나 전체 섹터를 순차적으로 쓰는 것은 아닙니다. 마모를 최소화하고 새로운 데이터는 항상 최소 액세스 섹터 / 영역으로 이동합니다. 비디오는 파일 시스템 파일 또는 페이징 파일을 덮어 쓰지 않습니다. 16GB 플래시 드라이브를 몇 시간 동안 사용할 수 있습니까? 일반적으로 CCTV는 15-30 일 후에 액세스 할 수 있어야합니다! 대신 1TB 드라이브 또는 NAS를 사용하여 기록 용도로 저장하십시오. 저장 및 전송을위한 단기간이라도 SD 카드에서 몇 년을 얻을 수 있습니다! 32GB SD를 사용하는 것이 좋지만 폴더를 16GB로 제한하십시오. 해당 기술을 사용하는 경우 수명이 두 배 이상 늘어납니다!
Piotr Kula

4
@ppumkin, RPi에서 실제로 SD 카드를 어떻게 사용하는지 알려주시겠습니까? 우리 중 많은 사람들 (Google "라즈베리 손상 sd")은 인상적인 공급 업체 수에도 불구하고 기본 Raspbian 설정으로 치명적인 오류 (현재 Kingston 포함, 둘 이상)에 직면했습니다. RPi가 아닐 수도 있습니다. SD, 그러나 RPi SD 문제, 실제 현장 관행 또는 더 나은 방법으로 SD 손상 "반복자"를 실험적으로 해제하는 사례 연구에 대한 언급이 없으면 논문 수치는 여전히 입증되지 않았습니다.
Sz.

1
봐봐, 내가 말하는 모든 것은 참조와 연결되어있다. 좋아, 내가 어떻게 사용하는지 알고 싶어? 나는하지 않습니다! 파이 때문에 엉덩이에 정말 큰 고통입니다! SD 카드는 SD 카드 결함이 아니라 계속 실패합니다. Pi 하드웨어 또는 소프트웨어가 이러한 것들을 차단하고 있습니다. 저렴한 USB 전원 공급 장치가 제공하는 불안정한 전압이라고 생각합니다. 새로운 B +에는 조절기가 있습니다. 신 감사합니다! 이 고정 Wi-Fi, 사운드 피드백 및 나는 SD 카드를 신의 벽돌로기도합니다. 나는 여전히 일부 주문이 필요하지만 Netduino로 놀고 있는데 아직 SD가 충돌하지 않았습니다.
Piotr Kula

1
@ppumkin 나는 SanDisk를 사용했습니다. 이베이가 아닙니다. SD 카드를 다시 플래시하고 (예를 들어 카메라에서 다시 사용하기 위해) 운영 체제의 홈으로 사용하는 것에는 큰 차이가 있습니다. 당신은 당신이 정확히 어떻게 사용하고 얼마나 오래 지속되는지 에 대해 더 구체적이어야합니다 . 내가 Lunakids의 의견을 반복 할 필요는 없지만 나는 그 또는 그녀의 의견에 전적으로 동의합니다. .
RolfBly

4

앞에서 언급했듯이 주요 문제는 재부팅 사이에 저장할 가치가 없지만 캐시 파일, 다운로드 폴더 등과 같이 자주 작성되는 파일 및 디렉토리입니다.

Raspbian과 Debian 및 Ubuntu에는 unburden-home-dir 이라는 패키지가 있습니다.이 패키지 의 주요 목적은 이러한 파일을 tmpfs마운트 나 마모가 덜 발생하는 외장 하드 디스크 와 같이 덜 문제가있는 장소에 심볼릭 링크 하는 것입니다.

일반적으로 X에서 로그인시 실행되며 GUI 응용 프로그램의 캐시 파일을 대상으로하지만 스크립트 등에서 호출하여 사용자의 홈 디렉토리에있는 임의의 파일로 구성 할 수도 있습니다.


3

이것들은 데비안 8.0 (Jessie)에 대한 나의 추천입니다

iotop -bktoqqq그리고 에 기반합니다 iostat -dzp 5. 문제점 및 솔루션에 대한 아이디어를 얻으려면 먼저이 명령을 실행해야합니다.

1. 스왑 비활성화

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

2. 마운트 옵션 및 RAM 사용

noatime,commit=1800옵션 을 사용하여 SD 카드의 모든 파티션을 마운트하고 다음 항목을 RAM에 마운트하십시오 /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

커밋은 쓰기를 지연시키고 먼저 수집합니다.

3. 가장 빈번한 로그 파일을 /var/tmp/log/

내 설명을 참조하십시오 . 로그 파일 쓰기를 줄일 수있는 방법 .

4. Chromium이 SD 카드를 망치지 않도록 중지

그것은 크롬 쓰기가 심하게 멈출 수 없다는 것을 알 수 있습니다 ( 176727 , 52663 참조 ). 이는 캐시 및 사용자 데이터 디렉토리에 영향을줍니다. 크롬 / 팁과 트릭 이가 RAM에 이동할 수 있습니다 방법을 설명합니다. Raspberry에는 RAM이 많지 않으므로 제안 된 Tab Suspender 는 RAM을 저장하는 데 유용합니다.

a) 캐시

캐시 크기를 제한하고 편집 /etc/chromium-browser/customizations/00-rpi-vars하여 RAM으로 옮깁니다.

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

이제 XDG_CACHE_HOME항목을 다음 /etc/security/pam_env.conf으로 변경하여 캐시가 RAM 디스크로 이동할 수있을 정도로 작습니다.

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

이제 내 두 사용자는 RAM에 작은 브라우저 캐시가 있습니다. 충분하지 않으면 필요에 따라 캐시 또는 / tmp / 크기를 변경하십시오.

b) 사용자 데이터 디렉토리

또한 사용자 데이터 디렉토리 ( .config/chromium/)는 많은 쓰기를 경험합니다. 프로필 동기화 - 데몬 에 의해 추천 크롬 / 팁과 트릭 . tmpfs에서 브라우저의 프로필을 관리하고 주기적으로 물리 디스크에 다시 동기화하기 위해 개발되었습니다. 불행히도이 패키지는 아직 Raspbian 8.0 (Jessie) 배포판의 일부가 아닙니다. 그래서 나는 이것을 아직 테스트하지 않았습니다.

5. SD 카드의 여유 공간

필요없는 패키지 및 파일을 제거하여 여유 공간을 확보하십시오. 이렇게하면 마모가 파티션 전체에 더 고르게 퍼집니다.

끝난!

이제 실행 iotop -bktoqqq하고 iostat -dzp 5다시 시스템이 유휴 상태 일 때 쓰기 액세스에 상당한 감소를 참조하십시오. 몇 분 동안 디스크에 아무것도 기록되지 않습니다. 그리고 녹색 ACT LED가 깜박이는 것에 대해 걱정하지 마십시오 . 분명히 좋은 쓰기 액세스 표시기가 아닙니다.


2

syslog 출력을 다른 서버로 스트리밍하여 쓰기주기를 약간만 줄일 수 있습니다. 물론 이러한 서버를 syslogd실행하는 것은 전제 조건입니다. 그러나 Pi가 Linux 애호가를위한 장난감이되는 경우가 종종 있습니다. :-)

이 스트리밍을 활성화하려면 다음과 같은 문장을 삽입하십시오.

*.*    @myserver.mydomain

파일의 맨 위 부분 /etc/rsyslog.conf에서 다른 모든 행을 주석 처리하고을 실행하여 로깅을 다시 시작하십시오 service rsyslog restart. 그런 다음 선택한 서버에서 메시지가 들어와야합니다.

이것의 한 가지 분명한 부작용은 동일한 서버의 다른 컴퓨터와 함께 Pi를 쉽게 모니터링 할 수 있다는 것입니다. 한 가지 단점은 시스템 시작 및 종료 중에 네트워크 연결이 아직 설정되지 않았거나 이미 종료 된 경우 일부 메시지를 잃을 수 있다는 것입니다.


CentOS 7 및 Debian 8을 포함한 최신 Linux 시스템과 Raspbian 8과 같은 시스템을 기반으로하는 시스템은 시스템 journald저널에 저장하는 모든 로깅을 수행합니다 . 또한 수신 journald중인 syslog 소켓에 로그를 전달 하도록 구성 합니다 rsyslogd. 메시지의 추가 사본이 아래의 로그 파일에 저장됩니다 /var/log. 당신은 사용에 드시면 journalctl로그를 검색 할 (그리고보다 훨씬 더 잘 작동 /var/log당신이 그것을 잘 알고 일단) 완전히 비활성화 할 수 있습니다 rsyslog및 일부 쓰기를 저장합니다.
커트 J. 샘슨

1

참고 : 100,000 사이클 제한은 키보드의 키조차 모든 컴퓨팅 장치에 적용되는 가설입니다. 적절한 냉각 조건에서 적절한 Pi / 셧다운 사이클을 실행하면 유추하기보다는 더 나은 결과를 얻을 수 있다고 생각합니다.

또한 이것은 내 의견을 보강 할 수 있습니다.

사용자 Pi [default] 외에 새로운 사용자를 추가하십시오. 새 드라이브의 홈 디렉토리를 외장 드라이브 [thumb / hard drive]에 지정하십시오. 새 사용자에게 슈퍼 사용자 권한을 부여하고 기본 계정으로 사용을 시작하십시오.

이게 도움이 되길 바란다..


난 항상 키보드에 저장하기 위해 덜 입력하려고합니다;)
Piotr Kula

새 사용자를 추가해도 통화 중 /var/log및을 방지 할 수 없습니다 /var/tmp. 또한 경험 을 통해 적절한 냉각이 차이를 만든다는 증거가 "믿습니다"라고 말하는 것보다 훨씬 낫습니다.
RolfBly

0

기본 syslog 데몬 (일반적으로 rsyslog) 대신 busybox의 syslog 데몬 ( Raspbian / Debian / Ubuntu의 busybox-syslogd 패키지 에 있음)을 사용하십시오. Raspbian / Debian / Ubuntu에서 기본적으로 busybox의 syslogd는 디스크가 아닌 메모리의 링 버퍼에만 로그인합니다. 링 버퍼의 크기는 기본적으로 128kB입니다. 예를 들어 오래된 로그 항목이 곧 회전되어 사라집니다. 그러나 더 많은 RAM을 사용하도록 구성 할 수 있습니다.

그럼에도 불구하고 이것은 syslog 데몬을 전혀 사용하지 않는 것보다 훨씬 더 나은 해결책입니다. 즉, 여전히 로그인하여 약. 명령과 (링 버퍼의 크기에 따라 구성된) 지난 몇 시간 또는 며칠 logread. 필터 스크립트를 사용하여 흥미로운 로그 항목 만 저장하거나 네트워크를 통해 로그 항목을 전달 logread -f하는 등의 tail -f유사한 동작을 하는 데 사용할 수도 있습니다 stunnel.


-1

내가 한 몇 가지 :

dphys-swapfile의 chmod (/ etc의 어딘가-현재 PI 근처에 있지 않음)는 다음을 수행합니다.

sudo chmod a-x dphys-swapfile

부팅시 사소한 오류가 발생합니다 (서비스 dphys-swapfile을 시작할 수 없습니다)-더 좋은 방법이 있다고 가정하십시오 ... rc-update ??

또한 카메라 모듈에서 이미지를 캡처하여 결국 웹 서버 (Pi)에 넣습니다. / dev / ram0을 ext2로 포맷하고 / media / ramdrive로 마운트했습니다 (/etc/init.rc 사용). 한 번의 스냅에 충분한 4 메가입니다. SD에 쓰지 않습니다.

서버 (oululife.dnsdynamic.com)는 실험적이지만 웹에 있습니다. 실제로 스트레스를 풀기 위해 MP4 에피소드 'Heartbeat *'도 스트리밍했습니다. 그것은 lighttpd, Mysql, PHP, WordPress를 실행하며 웹을 통해 원격으로 스트리밍 할 때도 땀을 거의 흘리지 않으며 평균로드는 약 0.2입니다. 오버 클럭킹이 전혀 없습니다. Model-B rev. 연중 무휴 24 시간. 따라서 다른 15 / dev / ramX에 로그 파일을 가져올 수 있다면 지난 몇 년 동안 Micro-SD 16G 카드가 사용됩니다 ....

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.