Làm cách nào tôi có thể kéo dài tuổi thọ của thẻ SD?


252

Tôi không muốn mua đĩa cứng USB, nhưng tôi biết rằng thẻ SD không phù hợp với nhiều lần đọc và ghi.

Có bất kỳ bước nào tôi có thể thực hiện để kéo dài tuổi thọ của thẻ SD trong khi nó được Raspberry Pi sử dụng không?


19
Nếu bạn viết thư cho nó ở tốc độ tối đa thì cả ngày lẫn đêm 24 / 7- 16gb sẽ kéo dài khoảng 30 ngày. Ở mức bình thường, bạn có thể mong đợi khoảng 27 năm dựa trên 10.000 chu kỳ ghi. Nếu nó sử dụng 100.000 chu kỳ viết trong hơn 50 năm. Thẻ càng lớn thì càng tồn tại lâu nhờ vào logic cân bằng hao mòn thông minh
Piotr Kula

Ồ, thật tuyệt khi biết, tôi không biết gì về điểm 16gb sd đầu tiên của bạn kéo dài 30 ngày với tốc độ viết đầy đủ. Tôi cho rằng liên tục ghi video vào sd và sau đó chuyển nó không phải là ý tưởng tốt nhất.
SSH này vào

3
Với tất cả các lượt truy cập hiệu suất bạn sẽ nhận được từ các giải pháp này, tại sao không chỉ trả 10 đô la mỗi vài năm?
Alexander

Câu trả lời:


244

Các phương pháp này sẽ tăng tuổi thọ của thẻ SD bằng cách giảm thiểu số lần đọc / ghi theo nhiều cách khác nhau:

Vô hiệu hóa hoán đổi

Trao đổi là quá trình sử dụng một phần của thẻ SD làm bộ nhớ dễ bay hơi. Điều này sẽ tăng dung lượng RAM có sẵn, nhưng nó sẽ dẫn đến số lượng đọc / ghi cao. Nó không có khả năng tăng hiệu suất đáng kể.

Vô hiệu hóa trao đổi với swapofflệnh:

sudo swapoff --all

Bạn cũng phải ngăn nó quay lại sau khi khởi động lại:

  • Đối với Raspbian sử dụng dphys-exchangefile để quản lý tệp hoán đổi (thay vì phân vùng trao đổi "thông thường"), bạn có thể chỉ cần sudo apt-get remove dphys-swapfilexóa vĩnh viễn. Tốt nhất nên xóa vì đặt CONF_SWAPSIZEthành 0, như được giải thích trong câu trả lời này , dường như không hoạt động và vẫn tạo tệp hoán đổi 100 MB sau khi khởi động lại.
  • Đối với các bản phân phối khác sử dụng phân vùng trao đổi thay vì tệp hoán đổi, hãy xóa dòng thích hợp khỏi /etc/fstab

Vô hiệu hóa Nhật ký trên Hệ thống tập tin

Sử dụng một hệ thống tập tin nhật ký như ext3hoặc ext4KHÔNG CÓ một tạp chí là một tùy chọn để giảm đọc / ghi. Hạn chế rõ ràng của việc sử dụng một hệ thống tập tin với việc ghi nhật ký bị vô hiệu hóa là mất dữ liệu do mất dữ liệu không đáng tin cậy (ví dụ như mất điện, khóa kernel, v.v.).

Bạn có thể vô hiệu hóa nhật ký ext3bằng cách gắn nó như ext2.

Bạn có thể vô hiệu hóa ghi nhật ký ext4trên một ổ đĩa chưa từng có như thế này:

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

Cờ núi buổi trưa

Gán cờ gắn kết noatime cho các phân vùng nằm trên thẻ SD bằng cách thêm nó vào phần tùy chọn của phân vùng /etc/fstab.

Đọc truy cập vào hệ thống tệp sẽ không còn dẫn đến cập nhật thông tin atime liên quan đến tệp. Tầm quan trọng của cài đặt noatime là nó giúp loại bỏ sự cần thiết của hệ thống để ghi vào hệ thống tệp cho các tệp chỉ đơn giản là được đọc. Vì viết có thể hơi đắt như đã đề cập trong phần trước, điều này có thể dẫn đến tăng hiệu suất có thể đo được. Lưu ý rằng thông tin thời gian ghi vào tệp sẽ tiếp tục được cập nhật bất cứ khi nào tệp được ghi với tùy chọn này được bật.

Thư mục trong RAM

Các thư mục được sử dụng nhiều như /var/tmp/và có /var/logthể có thể được chuyển sang RAM /etc/fstabnhư thế này:

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

Điều này sẽ cho phép /var/tmpsử dụng 50 MB RAM làm dung lượng ổ đĩa. Vấn đề duy nhất khi làm điều này là bất kỳ ổ đĩa nào được gắn trong RAM sẽ không tiếp tục khởi động lại. Do đó, nếu bạn gắn kết /var/logvà hệ thống của bạn gặp lỗi khiến nó khởi động lại, bạn sẽ không thể tìm hiểu lý do tại sao.

Thư mục trong Đĩa cứng ngoài

Bạn cũng có thể gắn một số thư mục trên đĩa cứng USB liên tục. Thông tin chi tiết về điều này có thể được tìm thấy trong câu hỏi này .

Raspberry Pi cũng có thể khởi động phân vùng gốc từ ổ đĩa ngoài. Điều này có thể thông qua USB hoặc Ethernet và có nghĩa là thẻ SD sẽ chỉ được sử dụng để ủy quyền cho các thiết bị khác nhau trong khi khởi động. Điều này đòi hỏi một chút hack kernel để thực hiện, vì tôi không nghĩ kernel mặc định hỗ trợ lưu trữ USB. Bạn có thể tìm thêm thông tin tại câu hỏi này , hoặc bài đăng blog bên ngoài này .


17
noatimenên là một mặc định
Alex Chamberlain

3
@AlexChamberlain: noatimekhông phải mặc định, ít nhất là trên Arch.
Jivings

20
Đó là trong các bản dựng Raspian mới nhất.
Oli

4
Theo điều này: superuser.com/a/168126/105936 không phải là một ý tưởng tuyệt vời để đưa /var/tmpvào bộ nhớ. Có thể bạn nhầm lẫn nó với /tmp.
inf3rno

1
Lưu ý rằng nếu noatimegây ra sự cố cho bạn, bạn cũng có thể sử dụng relatimeđể giảm đáng kể việc ghi đĩa khi đọc thay vì xóa chúng hoàn toàn.
Đánh dấu gian hàng

79

Nếu các tùy chọn do Jivings cung cấp không thể áp dụng cho ứng dụng của bạn thì một tùy chọn khác để kéo dài tuổi thọ của nó là sử dụng thẻ SD lớn hơn nhiều so với bạn cần.

Để lại nhiều không gian trống

Hầu hết các thẻ SD phong nha sử dụng thuật toán cân bằng hao mòn để giảm thiểu số lần mỗi khối được viết, do đó, nếu thẻ SD lớn hơn bạn cần, có thể trải rộng trên một không gian trống lớn hơn nhiều.

Một phần lý do khiến mức độ hao mòn rất quan trọng là một số hệ thống tệp, chẳng hạn như FAT (định dạng mặc định cho nhiều thẻ SD), lặp đi lặp lại cùng một lĩnh vực.

Để biết thêm thông tin về điều này, hãy xem câu trả lời cho câu hỏi Có đúng là Thẻ SD / MMC không bị mất cân bằng với bộ điều khiển riêng không? trên Sàn giao dịch điện tử , đặc biệt là câu trả lời này .

Một thống kê thú vị từ câu trả lời này là

lấy thẻ 2GB và viết nó bắt đầu hết lần này đến lần khác trung bình khoảng 10TB trước khi thẻ chết và không còn có thể ghi được.

Nhưng điều đáng lo ngại là

Thẻ SD sẽ không cho bạn biết khi nào dữ liệu xấu, tức là sẽ không trả về lỗi I / O như ổ cứng PC.

Điều này có thể làm cho sự lựa chọn của bạn về hệ thống tệp quan trọng nếu bạn cần đảm bảo lưu trữ đáng tin cậy.

Một lưu ý cuối cùng: Nhân đôi kích thước của thẻ SD có thể tăng gấp đôi tuổi thọ của thẻ.

Tức là nếu bạn có thẻ SD 2 GB miễn phí 200 MB thì chuyển sang thẻ 4 GB sẽ cho bạn dung lượng trống gấp 11 lần, dung lượng cân bằng và do đó có tuổi thọ cao, trong khi chuyển sang thẻ 16 GB sẽ cung cấp cho bạn 71 lần miễn phí không gian.


Để cho phép thẻ SD thực hiện cân bằng hao mòn ở vị trí đầu tiên, cần phải cho biết khối nào thực sự miễn phí để sử dụng cho việc đó. fstrim có thể giúp làm như vậy.
JimmyB

Không yêu cầu Trim, nhưng không có nó, một khối chỉ được sử dụng lại khi HĐH sử dụng lại một khối thay vì khi nó ngừng sử dụng. Theo tôi biết trim là một chức năng SSD và không được hỗ trợ bởi thẻ SD được truy cập bởi một giao thức đơn giản hơn nhiều.
Đánh dấu gian hàng

@Mark, điểm đầu tiên của bạn là chính xác. - Theo điểm thứ hai của bạn, có lệnh (tùy chọn) MMC_ERASEđược xác định ở đâu đó trong tiêu chuẩn MMC / SD cho mục đích này. Mặc dù trong tất cả các thẻ SD tôi đã thử chỉ có một (- thẻ đi kèm với Pi của tôi-) thực sự hỗ trợ nó.
JimmyB

Liệu kích thước phân vùng có vấn đề trong trường hợp này? Ý tôi là, nếu tôi có thẻ 16 GB và hệ thống có phân vùng ext4 duy nhất là 4GB, thì nó cũng sẽ tận dụng 12 GB còn lại để cân bằng hao mòn?
natenho

Thật khó để nói @natenho có cho thẻ SD với mức độ hao mòn tốt, không dành cho người có triển khai kém (hoặc không).
Đánh dấu gian hàng

25

Điều duy nhất tôi thấy là KHÔNG trao đổi trên thẻ SD.

Trao đổi trên thẻ Sd có lẽ là thứ có thể giết chết thẻ SD của bạn.

Nếu bạn cần thêm RAM, bạn có thể thử sử dụng zram, có một bài đăng trên http://raspberry.pi.gw.gd/t50-Using-ZRAM.html cung cấp một số chi tiết về cách sử dụng ZRAM trên raspberry pi

Thêm thông tin cho zram trên http://en.wikipedia.org/wiki/ZRam

Ngoài ra, thẻ SD gần đây nhất được biết là chắc chắn hơn nhiều so với thẻ cũ, mua thẻ SD loại 10 hoàn toàn mới có lẽ là một lựa chọn tốt là bạn muốn thấy nó tồn tại lâu dài.


14

Bạn có thể thử chạy Puppy Linux hoàn toàn cư trú. Nó rất nhỏ và nhanh chóng vì nó chạy hoàn toàn trong bộ nhớ bằng cách sao chép hình ảnh lưu trữ (trên thẻ SD trong trường hợp của bạn) vào RAM khi khởi động và sau đó xóa các thay đổi định kỳ trở lại lưu trữ. Tần suất lưu này được người dùng kiểm soát bao gồm cả thủ công.

Puppy sử dụng các hệ thống tệp aufs hoặc unionfs cũ hơn với bất kỳ hệ thống tệp Linux tiêu chuẩn nào như ext3 hoặc ext4. Nó cũng có thể nằm trên các phân vùng FAT hoặc NTFS.

Có ít nhất một vài phiên bản Puppy được thiết kế riêng cho RPi, một trong số chúng được tạo ra bởi "Puppy Master", Barry Kauler.

Để biết thêm, hãy truy cập http://puppylinux.org/wikka/Puppi


12

Hầu hết mọi người ở đây nói về những giả định của họ và không phải là kinh nghiệm cá nhân.

Tôi đã sử dụng RaspberryPi của mình với RasPBX như một tổng đài công ty với 8 tiện ích mở rộng và fax. Chúng tôi có 3 thân dựa trên ip và một điện thoại cố định thông qua LinkSYS SPA3000. Chỉ mất 1 tháng để thẻ Kingston 4 GB SDCard ban đầu của tôi cắn bụi.

Tôi vẫn đang thử nghiệm và không có bản sao lưu. BTW Pi được kết nối với UPS APC. Sau đó tôi thiết lập lại toàn bộ RasPBX từ đầu, nhưng lần này tôi đã chuyển / var / log và / var / lib / mysql sang NAS công ty của chúng tôi. SD này vẫn ổn sau 3 tháng.

Sau đó, chúng tôi đã có một mùa hè rất nóng. Trong tháng thứ ba, pi bắt đầu không phát hiện ra ethernet ra khỏi màu xanh. Sau đó một ngày, tôi thấy tất cả các đèn led đều mờ và nó không khởi động được.

Tôi đã thay thế Pi bằng một hộp mới. Một thứ tự không hoạt động bắt đầu hoạt động sau khi hạ nhiệt nhưng nó hoạt động khá thất thường và khi nó khởi động lên RasPBX, chế độ video sẽ không chuyển sang đồ họa, nó vẫn ở dạng 80 * 25 Text. Nó đã thực sự rối tung lên. Tôi đã đặt hàng một bộ tản nhiệt kể từ đó. Pi mới hoạt động với nó trong hơn 2 tháng 7/24.

Vì vậy, nếu bạn sẽ sử dụng số pi trong môi trường 7/24, đừng rẻ tiền - hãy mua tản nhiệt và tránh sử dụng / var / log và các thư mục bận rộn khác qua SD CARD.


Đảm bảo var / log nằm trên một thiết bị phù hợp nghe có vẻ là lời khuyên tuyệt vời. Không có hứng thú, trong tháng có vấn đề ban đầu, bạn có đang lưu trữ hộp thư thoại trên thẻ USD không? Tôi chỉ tự hỏi liệu các thẻ uSD có độ bền cao như các thẻ được thiết kế để sử dụng Dash Cam có thể tốt hơn cho việc triển khai RasPBX của tôi hay không nếu tôi quyết định kích hoạt các hộp thư thoại.
Đánh dấu gian hàng

11

Tôi đã so sánh tất cả các giải pháp sử dụng TMPFS và câu trả lời tốt nhất là tổng hợp các thư mục chuẩn bị tập lệnh (xem http://grenzdebiel.dyndns.org/wordpress/?p=98 ) với một / etc / defaults / tmpfs thích hợp (xem http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).

Các bước cần thiết để thực hiện trên raspbian là:

1. chỉnh sửa /etc/default/tmpfsvà thiết lập :

RAMLOCK=yes
RAMSHM=yes
RAMTMP=yes

Tôi muốn giới thiệu các kích thước sau:

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

2. kích hoạt các thư mục bổ sung bằng cách sử dụng / 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. sử dụng tập lệnh /etc/init.d/prepare-dirsđể tạo các thư mục bị thiếu /var/logđể tất cả các trình tiện ích bắt đầu

Xem ở cuối những gì nó chứa trong trường hợp của tôi.

4. Làm cho kịch bản thực thi chmod 755 /etc/initd/prepare-dirs.

5. Đảm bảo rằng tập lệnh sẽ được bắt đầu trước khi khởi động trước khi trình nền của bạn bắt đầu: update-rc.d prepare-dirs defaults 01 99

nội dung của /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

Đó là nó.


Puppy Linux cũng sử dụng TMPFS cho mọi thứ.
DocSalvager

7

Vô hiệu hóa Swapfile:

sudo dphys-hoán đổi

Không cần thiết phải gỡ cài đặt, tuy nhiên nếu bạn không sử dụng nó và muốn có dung lượng, bạn có thể gỡ bỏ nó một cách an toàn. Lệnh thay thế để loại bỏ:

sudo dphys-exchangefile gỡ cài đặt

Cách sử dụng: / sbin / dphys-exchangefile {setup | exchangeon | exchangeoff | Uninstall}


5

Độ bền tế bào Flash:

  • Đối với Flash Đa cấp (MLC), tối đa 10.000 chu kỳ ghi trên mỗi cung vật lý.
  • Đối với Flash Đơn cấp (SLC), tối đa 100.000 chu kỳ ghi trên mỗi cung vật lý.
  • SSD mới hơn cung cấp 1 triệu chu kỳ ghi cho mỗi lĩnh vực vật lý.

Nó hoàn toàn là toán học trên thẻ lớn và mặc bình thường. Nếu bạn đã ghi vào thẻ flash loại MLC 8GB ngày và đêm thì sẽ mất khoảng 30 ngày để tiêu diệt nó.

Tập 99 tại Techsnap nói về việc làm hao mòn SSD và Allen giải thích cách không thể sử dụng SSD trong sử dụng hàng ngày và chúng ta không cần phải lo lắng về việc vô hiệu hóa trao đổi, crons và tất cả những điều đó. Nó chỉ hoạt động bây giờ! Việc cân bằng mặc thông minh sẽ chăm sóc tất cả mọi thứ.

Mặc bình thường như được trích dẫn trên Kingston sẽ cung cấp cho bạn 27 năm cuộc sống trong một máy ảnh kỹ thuật số chuyên nghiệp.

Mà đối với máy ảnh DSLR bình thường, bạn có thể lấp đầy nó cứ sau vài tháng .. tùy thuộc vào mức độ bạn di chuyển. Cân nhắc một Pi, nếu bạn thử nghiệm phân bổ và flash lại thường xuyên thì có thể mất nhiều phí hơn. Thông thường một khi bạn hài lòng với một bản phân phối ... bạn sẽ không flash nó trong nhiều tháng hoặc nhiều năm. Vì vậy, để kéo dài sự hao mòn SD, sẽ tốt hơn nếu làm theo một số lời khuyên về việc giảm IO trên SD.

Giá của đèn flash đã giảm và công nghệ tốt hơn rất nhiều.

Hầu hết các thẻ SD sẽ tồn tại lâu hơn hai hoặc ba thế hệ thiết bị và vào thời điểm đó, nó sẽ được coi là nhỏ và quá chậm để sử dụng với bản nâng cấp tốt hơn và rẻ hơn nhiều!


Một Raspberry Pi được thiết lập với webcam cho mục đích bảo mật cũng có thể ghi dữ liệu 24/7. Tôi đoán trong trường hợp đó một ổ SSD có lẽ tốt hơn.
Rất không thường xuyên

1
Có nhưng nó không viết TẤT CẢ các lĩnh vực theo thời gian WHOLE. Nó được quản lý ít hao mòn nhất và dữ liệu mới luôn đi đến khu vực / khu vực truy cập ít nhất. Video sẽ không ghi đè lên tệp hệ thống tệp hoặc tệp hoán trang. Bạn có thể nhận được bao nhiêu giờ trên ổ đĩa flash 16 GB? Thông thường camera quan sát nên được truy cập 15-30 ngày sau! Sử dụng ổ 1 TB thay thế hoặc NAS để lưu trữ cho các mục đích lịch sử. Ngay cả ngắn hạn để lưu trữ và chuyển khoản, bạn sẽ nhận được nhiều năm từ thẻ SD! Tốt hơn hết là sử dụng SD 32gb nhưng giới hạn thư mục lên 16GB- Bạn sẽ tăng gấp đôi thời gian sử dụng kỹ thuật đó!
Piotr Kula

4
@ppumkin, bạn có thể vui lòng cho chúng tôi biết bạn thực sự sử dụng thẻ SD của bạn như thế nào trong RPi của bạn không? Rất nhiều người trong chúng tôi (Google "sd bị hỏng mâm xôi") đã gặp phải những thất bại nghiêm trọng (tôi nhiều hơn một, kể cả Kingston, bây giờ bạn đề cập) với các thiết lập Raspbian mặc định của họ, mặc dù số nhà cung cấp ấn tượng ... Có thể là RPi, không phải SD, nhưng số liệu trên giấy của bạn vẫn chưa được chứng minh mà không có bất kỳ tài liệu tham khảo nào về các vấn đề RPi SD (tôi có nên nói rõ không?), Thực tiễn thực tế của chính bạn, hay tốt hơn là: nghiên cứu trường hợp gỡ bỏ "tin đồn" về thiệt hại SD.
Sz.

1
Hãy nhìn xem, mọi thứ tôi nói đều liên quan đến tài liệu tham khảo. OK, bạn muốn biết làm thế nào tôi sử dụng nó? Tôi không! Bởi vì Pi, thực sự là một nỗi đau lớn trong ass! Thẻ SD liên tục bị lỗi và không phải lỗi thẻ SD. Phần cứng hoặc phần mềm Pi đang gạch những thứ này. Tôi nghĩ rằng đó là điện áp không ổn định được cung cấp bởi nguồn cung cấp năng lượng USB giá rẻ. B + mới có các cơ quan quản lý về chúng. Cảm ơn chúa! WiFi cố định này, thông tin phản hồi âm thanh và tôi cầu nguyện thần thánh thẻ SD. Tôi vẫn cần đặt hàng một số nhưng bây giờ tôi đang chơi với Netduino, chưa có SD nào bị hỏng.
Piotr Kula

1
@ppumkin Mình dùng SanDisk. Không phải những người ebay. Có một sự khác biệt lớn giữa việc phản xạ lại thẻ SD (để sử dụng lại trong máy ảnh) và sử dụng nó làm nhà của một hệ điều hành. Bạn nên cụ thể hơn về cách chính xác bạn sử dụng của bạn và thời gian chúng tồn tại. Không cần tôi lặp lại bình luận của Lunakids, nhưng tôi hoàn toàn đồng ý với anh ấy hoặc cô ấy. .
RolfBly

4

Như đã đề cập trước đây, vấn đề chính là các tệp và thư mục không đáng được lưu giữa các lần khởi động lại, nhưng được viết khá thường xuyên, tức là các tệp bộ đệm, thư mục tải xuống, v.v.

Raspbian cũng như Debian và Ubuntu có một gói được gọi là unburden-home-dir với mục đích chính là liên kết các tệp như vậy đến một nơi ít có vấn đề hơn, ví dụ như tmpfsgắn kết hoặc ổ cứng gắn ngoài ít bị hỏng hơn.

Nó thường chạy vào thời gian đăng nhập dưới X và được nhắm mục tiêu vào các tệp bộ đệm của ứng dụng GUI, nhưng cũng có thể được gọi từ các tập lệnh hoặc như vậy và được định cấu hình cho các tệp tùy ý trong thư mục chính của người dùng.


3

Đây là những đề xuất của tôi cho Debian 8.0 (Jessie)

Họ dựa trên iotop -bktoqqqiostat -dzp 5. Bạn nên chạy các lệnh này trước để có ý tưởng về vấn đề và giải pháp.

1. Vô hiệu hóa trao đổi

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

2. Sử dụng tùy chọn gắn kết và RAM

Gắn kết tất cả các phân vùng trên thẻ SD với các noatime,commit=1800tùy chọn và gắn các thư mục sau vào RAM với các mục này trong /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

Cam kết sẽ trì hoãn việc viết và thu thập chúng trước.

3. Đăng nhập các tệp nhật ký thường xuyên nhất vào /var/tmp/log/

Xem mô tả của tôi Làm thế nào tôi có thể giảm ghi vào tệp nhật ký .

4. Ngăn chặn Chromium làm hỏng thẻ SD

Hóa ra Chromium viết rất nhiều và không thể dừng lại (xem 176727 , 52663 ). Điều này ảnh hưởng đến bộ đệm và thư mục dữ liệu người dùng. Các Chromium / Mẹo và thủ thuật giải thích cách thức này có thể được chuyển đến RAM. Vì Raspberry không có nhiều RAM, nên Tab Suspender được đề xuất là hữu ích để tiết kiệm RAM.

a) Bộ nhớ cache

Giới hạn kích thước bộ nhớ cache và di chuyển nó đến RAM bằng cách chỉnh sửa /etc/chromium-browser/customizations/00-rpi-varsđể

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

Bây giờ bộ đệm đủ nhỏ để được chuyển sang đĩa RAM bằng cách thay đổi XDG_CACHE_HOMEmục nhập /etc/security/pam_env.confthành

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

Bây giờ hai người dùng của tôi có một bộ đệm trình duyệt nhỏ trong RAM. Nếu điều đó không đủ để bạn thay đổi bộ đệm hoặc / tmp / size nếu cần.

b) Dữ liệu người dùng

Ngoài ra các dữ liệu người dùng dir ( .config/chromium/) kinh nghiệm viết nặng. Cấu hình đồng bộ hóa hồ sơ được đề xuất bởi Chromium / Mẹo và thủ thuật . Nó được phát triển để quản lý hồ sơ trình duyệt của bạn trong tmpfs và định kỳ đồng bộ hóa nó trở lại đĩa vật lý của bạn. Thật không may, gói này chưa phải là một phần của bản phân phối Raspbian 8.0 (Jessie). Vì vậy, tôi chưa thử nghiệm điều này.

5. Dung lượng trống trên thẻ SD

Dung lượng trống bằng cách gỡ cài đặt các gói và tệp bạn không cần. Điều này sẽ trải đều mặc nhiều hơn trên các phân vùng của bạn.

Làm xong!

Bây giờ chạy iotop -bktoqqqiostat -dzp 5một lần nữa và thấy giảm đáng kể quyền truy cập ghi khi hệ thống không hoạt động. Không có gì được ghi vào đĩa của tôi trong nhiều phút. Và đừng lo lắng về đèn LED ACT màu xanh lục nhấp nháy . Rõ ràng nó không phải là một chỉ số truy cập viết tốt.


2

Chỉ cần giảm một chút chu kỳ ghi bằng cách truyền đầu ra syslog đến một máy chủ khác. Tất nhiên, có một máy chủ như vậy với một hoạt syslogdđộng là điều kiện tiên quyết. Tuy nhiên, với việc Pi là một món đồ chơi cho những người đam mê Linux, điều này có lẽ rất thường xảy ra. :-)

Để kích hoạt phát trực tuyến này, chỉ cần chèn một câu lệnh như

*.*    @myserver.mydomain

ở phần trên cùng của tệp /etc/rsyslog.conf, nhận xét tất cả các dòng khác và khởi động lại đăng nhập bằng cách phát hành service rsyslog restart. Sau đó, các tin nhắn sẽ được gửi đến trên máy chủ được chọn.

Một tác dụng phụ rõ ràng có lợi cho việc này là bạn có thể dễ dàng theo dõi Pi của mình kết hợp với các máy khác trên cùng một máy chủ. Một nhược điểm là trong quá trình khởi động và tắt hệ thống, bạn có thể mất một số tin nhắn khi kết nối mạng chưa được thiết lập hoặc đã bị tắt.


Lưu ý rằng các hệ thống Linux hiện đại (bao gồm CentOS 7 và Debian 8 và các hệ thống dựa trên các hệ thống như Raspbian 8) thực hiện tất cả việc đăng nhập vào journaldđó lưu trữ chúng trong tạp chí systemd. Họ cũng cấu hình journaldđể chuyển tiếp các bản ghi đến ổ cắm syslog rsyslogdđang lắng nghe; đặt các bản sao bổ sung của tin nhắn trong tệp nhật ký bên dưới /var/log. Nếu bạn cảm thấy thoải mái khi sử dụng journalctlđể duyệt nhật ký của mình (và nó hoạt động tốt hơn nhiều so với /var/logkhi bạn quen với nó), bạn hoàn toàn có thể vô hiệu hóa rsyslogvà lưu một số ghi.
Curt J. Sampson

1

Lưu ý: Giới hạn 100.000 chu kỳ là một giả thuyết áp dụng cho mọi thiết bị máy tính, ngay cả các phím trong bàn phím. Tôi tin rằng việc chạy Pi trong điều kiện làm mát phù hợp và chu kỳ tắt / khởi động thích hợp sẽ cho kết quả tốt hơn thay vì đi vào tương tự.

Ngoài ra điều này có thể làm tăng ý kiến ​​trên của tôi.

Thêm người dùng mới ngoài người dùng Pi [mặc định]. Trỏ thư mục chính của người dùng mới vào ổ đĩa ngoài [ngón tay cái / ổ cứng]. Cung cấp cho người dùng mới, quyền siêu người dùng và bắt đầu sử dụng nó làm tài khoản chính của bạn.

Tôi hi vọng cái này giúp được..


Tôi luôn cố gắng gõ ít hơn để lưu trên bàn phím;)
Piotr Kula

Thêm người dùng mới sẽ không ngăn chặn sự bận rộn /var/log/var/tmp. Ngoài ra, có bằng chứng từ kinh nghiệm rằng làm mát đúng cách tạo ra sự khác biệt tốt hơn nhiều so với việc nói "Tôi tin".
RolfBly

0

Sử dụng trình nền syslog của syslog (trong gói busybox-syslogd trên Raspbian / Debian / Ubuntu) thay vì trình nền syslog mặc định (thường là rsyslog). Theo mặc định trên Raspbian / Debian / Ubuntu, syslogd của busybox chỉ đăng nhập vào bộ đệm vòng trong bộ nhớ và không vào đĩa. Bộ đệm vòng có kích thước 128kB theo mặc định, tức là các mục nhật ký cũ sẽ sớm xuất hiện và sẽ biến mất. Nhưng bạn có thể cấu hình nó để sử dụng thêm RAM cho nó.

Tuy nhiên, đây là một giải pháp tốt hơn nhiều so với việc không có một trình nền syslog nào, tức là bạn vẫn có thể đăng nhập và đọc các mục nhật ký của khoảng. vài giờ hoặc vài ngày qua (tùy thuộc vào kích thước được cấu hình của bộ đệm vòng) bằng lệnh logread. Bạn cũng có thể sử dụng logread -fđể có một tail -fhành vi tương tự, ví dụ như chỉ lưu trữ các mục nhật ký thú vị bằng cách sử dụng tập lệnh bộ lọc hoặc để chuyển tiếp các mục nhật ký qua mạng ở nơi khác, ví dụ như sử dụng stunnelhoặc như vậy.


-1

Vài điều tôi đã làm:

chmod của dphys-exchangefile (ở đâu đó trong / etc - không ở gần PI vào lúc này) để:

sudo chmod a-x dphys-swapfile

Tôi gặp lỗi nhỏ khi khởi động (không thể khởi động dịch vụ dphys-exchangefile) - Giả sử có cách nào tốt hơn ... cập nhật RC ??

Ngoài ra, tôi chụp ảnh từ mô-đun máy ảnh, để cuối cùng đưa vào máy chủ web của mình (Pi). Tôi định dạng / dev / ram0 thành ext2, gắn nó dưới dạng / media / ramdrive (sử dụng /etc/init.rc, tôi nghĩ vậy). Đó là 4megs, đủ lớn cho một snap. Không ghi vào SD.

Máy chủ (oululife.dnsdynamic.com) là thử nghiệm, nhưng trên web. Để thực sự nhấn mạnh nó, tôi cho phép nó phát trực tuyến một tập phim MP4 của 'Heartbeat *'. Nó chạy lighttpd, Mysql, PHP, WordPress và ngay cả khi tôi phát trực tuyến từ xa qua web, nó hầu như không bị đổ mồ hôi, tải trung bình khoảng 0,2. Không có quá giờ ở tất cả. Mô hình-B rev. 2, lên 24/7. Vì vậy, nếu tôi có thể đưa các logfiles của mình vào 15 / dev / ramX khác, tôi nghĩ rằng thẻ Micro-SD 16G của tôi sẽ tồn tại trong nhiều năm ....

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.