답변:
나는 솔리드 스테이트이든 기존 드라이브이든 우분투가 저장 장치를 사용하는 방식을 개선하기 위해 여러 가지 기술을 성공적으로 사용했습니다.
SSD의 경우 읽기로 인해 드라이브가 마모되지 않아야 드라이브 쓰기 횟수를 최소화하려고합니다.
1) 스왑 파일 관리
컴퓨터를 최대 절전 모드로 전환하지 않고 모든 응용 프로그램을 실행할 수있는 충분한 RAM 메모리가 있으면 이론적으로 스왑 파티션이 필요하지 않습니다.
SSD와 하드 드라이브가 혼합 된 경우 스왑 파티션을 하드 드라이브에만 배치하십시오.
2) 읽기 타임 스탬프에 대한 쓰기 금지 (SSD 및 하드 드라이브에 적합)
noatime 및 nodiratime 옵션을 사용하여 파티션을 마운트 하면 파일 및 폴더를 읽을 때 타임 스탬프 쓰기가 중지됩니다. mutt와 같은 로컬 메일 서버 클라이언트를 사용하지 않는 한 이러한 타임 스탬프 쓰기는 일반적으로 필요하지 않습니다. 이것이 일반적으로 나쁜 생각 인 이유는 타임 스탬프를 업데이트 할 때 모든 읽기가 쓰기를 생성하기 때문입니다. 이는 SSD의 수명을 단축시킵니다.
/ etc / fstab 구성 파일을 편집하십시오 (주의해서-fstab 구성을 중단하면 시스템이 작동하지 않도록 백업을 수행하십시오).
cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
루트 (/) 및 기타 파티션 (있는 경우)을 정의하는 행 (/ home)에 noatime 및 nodiratime 텍스트를 추가하여 파티션의 마운트 옵션을 편집 하십시오. 무언가를 깨뜨리는 것이 걱정된다면 그 파티션
# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home ext4 noatime,nodiratime,defaults 0 2
이러한 변경 사항을 적용하려면 컴퓨터를 재부팅해야합니다
3) OS 및 응용 프로그램의 쓰기 최소화
미션 크리티컬 제품 서버를 실행하고 있지 않다고 가정하면, 대부분의 사람들은 문제가 발생할 경우 로그를 보지 않습니다 (특히 대부분의 우분투 사용자에게는 심각한 오류가 드물기 때문에). 따라서 모든 로그가 SSD가 아닌 RAM 메모리에 기록되도록 Ubuntu를 구성 할 수 있습니다.
참고 : 사용할 모든 소프트웨어 (특히 Apache 웹 서버 등)를 설치 한 경우에만 다음과 같이 변경하십시오. 그렇지 않으면 / var / log에 디렉토리가 누락되어 일부 문제가 발생할 수 있습니다
이 방법에 대한 배경 지식은 ubuntu-eee.com에서 플래시 드라이브 수명 연장을 참조하십시오.
편집기로 / etc / fstab 을 엽니 다 ( / etc / fstab 파일 을 백업했다고 가정)
gksudo gedit /etc/fstab
fstab 파일 끝에 다음 행을 추가하고 저장하십시오.
# Uncomment these after all server based applications installed - eg. apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0
이러한 변경 사항을 적용하려면 컴퓨터를 재부팅해야합니다
또한보십시오:
일반적으로 귀찮게하지 않을 것입니다-SSD 수명에 대한 걱정은 과도합니다. 왜 걱정하지 말아야하는지에 대한 자세한 기사를 읽을 수 있습니다 . 요컨대 최신 SSD 내부의 회로는웨어 레벨링을 관리하며 사용자보다 훨씬 더 나은 방법을 알고 있습니다.
이 기사에서는 연속적인 80M / s 속도로 쓰기를 수신하는 SSD의 수명을 계산합니다. 인생은 51 년 입니다. 이는 2007 년 기술을 기반으로합니다. SSD 수명은 이제 더 길어질 것입니다. 그리고 당신은 거의 확실하게 하루 24 시간 80M / s로 SSD에 쓰지 않습니다.
그러나 시간이 지남에 따른 성능 저하가 문제가 될 수 있으며 TRIM 이 해결책입니다. 두 가지 옵션이 있습니다
자동 TRIM을 직접 활성화 해야합니다 . ( discard
ext4를 사용 하는 경우 기본적으로 마운트 옵션에 옵션을 추가합니다 .) 파일을 삭제할 때 폐기 옵션이 시스템 속도를 늦춘다 는 블로그 게시물을 발견했습니다 .
fstrim을 사용하여 수동으로 (또는 cron 작업으로) 수행 할 수도 있습니다 . 파티션이 하나만 있으면 다음과 같이하면됩니다.
sudo fstrim /
fstrim은 11.10 이상에서만 사용할 수 있습니다. 구형 시스템의 경우 wiper.sh
스크립트 가 필요합니다 . /usr/share/doc/hdparm/contrib/wiper.sh.gz
시스템 에서 스크립트를 찾았습니다 .
궁금한 점이 있다면 Wikipedia 에서 설명한 TRIM이 해결하는 문제 는 다음과 같습니다.
SSD는 페이지로 그룹화 된 플래시 메모리 셀에 데이터를 저장하고 페이지 (일반적으로 4kB)는 블록 (일반적으로 블록 당 128 페이지, 총 512kB)으로 그룹화됩니다. NAND 플래시 메모리 셀은 비어있는 경우에만 직접 쓸 수 있습니다. 데이터가 포함되어 있다고 생각되면 쓰기 작업을 안정적으로 수행하기 전에 먼저 내용을 지워야합니다. SSD에서는 쓰기 작업을 페이지 수준에서 수행 할 수 있지만 하드웨어 제한으로 인해 지우기 명령이 항상 전체 블록에 영향을줍니다. 결과적 으로 빈 페이지를 사용할 수있는 한 SSD 미디어에 데이터를 쓰는 것이 매우 빠르지 만 이전에 작성된 페이지를 덮어 써야하는 경우 상당히 느려집니다.. 페이지에서 셀을 지우려면 다시 쓰기를 수행해야하지만 전체 블록 만 지울 수 있으므로 덮어 쓰기는 읽기-지우기-수정-쓰기주기 를 시작합니다. 전체 블록의 내용을 저장해야합니다 캐시에서 플래시가 효과적으로 삭제되기 전에 캐시에서 덮어 쓴 페이지가 캐시에서 수정되어 캐시 된 블록이 최신 상태가되고 플래시 블록에 업데이트 된 페이지가있는 전체 블록 만 기록됩니다 . 이 현상을 쓰기 증폭이라고합니다.
몇 가지 사항이 있습니다.
조정:
종종 지적되는 것은 파티션 의 올바른 정렬 입니다. SSD의 블록 크기와 같아야합니다. 안전하게 플레이하고 파티션을 MiB 경계에 맞 춥니 다. Ubuntu 설치 프로그램의 파티션 도구 (MB가 아닌 MiB를 사용)로는이 작업을 수행 할 수 없지만 라이브 CD를 부팅하고 Gparted (MiB를 사용하는)를 사용한 다음 설치를 클릭하여 설정 한 파티션을 사용할 수 있습니다.
올바른 스케줄러 :
중요한 점은 스케줄러 가되어야한다는 것 noop
입니다. 이 스케줄러는 kernelparameter elevator=noop
또는 echo noop > /sys/block/sda/queue/scheduler
rc.local 의 항목 을 통해 설정할 수 있습니다 .
마운트 플래그 :
나는 추천 noatime
하고discard
Tmpfs
램 디스크에 tmp를 넣으면 ssd의 수명이 늘어날 수 있습니다. 이것을 사용하려면 fstab에 다음 줄을 넣으십시오.none /tmp tmpfs defaults 0 0
Ubuntu의 SSD에 대한 빠른 조정 과정 :
파일 시스템
Arch Wiki 는 SSD 파일 시스템에 대해 선호되는 옵션을 거의 언급하지 않았습니다. 그중 하나는 불안정하고 다른 하나는 ext *입니다. 나는 ext4 가 최고의 선택 중 하나 라고 가정 합니다.
참고 : ext4의 경우 discard
마운트 옵션 을 사용할 수 있습니다.
fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
tmpfs /tmp tmpfs nodev,nosuid,noatime,mode=1777 0 0
/dev/sda1 / ext4 defaults,noatime,discard,errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults,noatime,discard,user_xattr 0 2
/dev/sda3 /windows ntfs defaults,noatime,discard,umask=007,gid=46 0 0
몇 가지 중요한 사항은 다음과 같습니다.
swap
파티션이 없습니다 . 요즘에는 최신 머신에 상당히 많은 양의 RAM이 있으므로 최대 절전 모드에만 필요합니다.noatime
및 discard
옵션을 제공합니다. 정보는 여기에 있습니다 .스케줄러
대부분의 Linux 배포판에서 cfq (완전히 공정한 큐잉) 인 기본 스케줄러에서 SSD의 noop 또는 데드 라인 스케줄러로 전환하는 것을 고려하십시오. 예를 들어, noop 스케줄러를 사용하면 데이터가 디스크에서 실제로 상주하는 위치를 고려하지 않고 요청을 수신 된 순서대로 간단히 처리 할 수 있습니다. 탐색 시간이 SSD의 모든 섹터에서 동일하므로이 옵션은 SSD에 유리한 것으로 생각됩니다.
/etc/rc.local에 다음을 추가하십시오 .
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
정보
/tmp
RAM에, 그것은에 도착하기가 매우 쉽다 메모리 중 프로그램의 많은 사용으로, 상황 /tmp
(예를 들어 저장 공간으로 Brasero을 DVD 이미지를 저장).
tmpfs
기본적으로 RAM의 10 %입니다. size
옵션을 사용하여 크기를 조정할 수 있습니다 .
이 줄을 fstab에 추가하지 않을 것입니다. var / tmp 폴더는 재부팅 후에도 사용되므로 문제가 발생할 수 있습니다.
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
새로운 시스템을 구성 할 때 모든 tmp 폴더를 이런 식으로 주석 처리 한 상태로 남겨두면 로그와 물건을 확인할 수 있습니다. 그런 다음 기본 시스템 설정을 마치면 주석을 해제하지만 위 줄을 추가하지 마십시오. 다음은 내가 사용하는 것입니다.
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/apt tmpfs defaults,noatime 0 0
그리고 시스템에 문제가있는 경우 재부팅 후 강제 재부팅 또는 재부팅 후에도 모든 것을 확인할 수 있다고 의견을 말하십시오.
또한 nodiratime이 필요하지 않으며 noatime 옵션은 두 가지를 모두 처리합니다.
TRIM에 관해서는, hw / sw가 그것을 지원한다면, 그것은 필수입니다, 나는 fstab에서 폐기를 사용하지 않습니다. 내 PC가 항상 켜져 있기 때문에 매일 cron을 만듭니다.
gksu gedit /etc/cron.daily/trim
그런 다음 이것을 파일에 추가하고 저장하십시오 (ssd에 별도의 / home 파티션이 없거나 ssd에 다른 부분이없는 경우이를 수정하는 방법에 대한 아이디어를 얻습니다).
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
그런 다음 다음을 수행하여 파일을 실행 가능하게 만드십시오.
sudo chmod +x /etc/cron.daily/trim
또한 다음과 같이 rc.local을 편집합니다.
gksu gedit /etc/rc.local
"exit 0"위와 마지막 # 아래에 이것을 추가하십시오 :
# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done
여기에서 복사하여 붙여 넣을 수 있으므로 오류가 없으며 평신도에게 보이지 않습니다.
또한 ssd 드라이브의 10 %를 포맷하지 않은 상태로두면 수명을 연장하는 데 도움이 될 수 있습니다. 나는 이것에 대해 많이 읽지 않았으므로 그것이 의미가 있다면 보증 할 수 없습니다.
이것은 가장 좋은 가이드입니다. 그는 하루 동안 Google을 훑어 보지 않았고 가이드를 생각해 냈습니다. 여기에서 확인해야합니다.
TRIM을 통해 운영 체제는 더 이상 사용되지 않는 데이터 블록을 내부적으로 지울 수있는 SSD를 SSD에 알릴 수 있습니다. 트리밍을 통해 SSD는 가비지 수집 오버 헤드를 처리 할 수 있으며, 그렇지 않으면 관련 블록에 대한 향후 쓰기 작업이 미리 느려지 게됩니다. 1
Ubuntu 14.04에는 정기적으로 SSD를 자동으로 정리하는 새로운 기능이 util-linux 패키지 에 추가 되었지만 TRIM을 실행할 때 일부 저렴한 SSD가 자체적으로 브릭 킹 할 수 있기 때문에 Intel 및 Samsung SSD 만 기본적으로 TRIM을 활성화합니다. 2/etc/cron.weekly/fstrim
우분투 14.04 의 내용 :
#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e
# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g. https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all
1 https://en.wikipedia.org/wiki/Trim_%28computing%29
2 트림은 어떻게 활성화됩니까?
분명하다 /var/tmp
정의가 재부팅을 넘어 보존하는 내용의 요구를 이후의 tmpfs에 있으면 안 :
"긴 이야기 짧음":
ext4
설치 하는 동안 포맷하고 ~ 1GB의 작은 스왑을 만듭니다. 편집 fstab을 설치 sudo gedit /etc/fstab
하고 다음 줄을 추가 한 후
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
그러면 임시 파일에 대한 램 드라이브가 생성되어 노화가 줄어 듭니다. 또한 noatime,nodiratime,discard
기본값 후에 ext4 줄에 추가 하십시오. 또한 마모를 줄이고 TRIM 기능을 활성화합니다. 저장하고 재부팅하십시오.
http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html 에서 우분투, 리눅스 민트에 대한 SSD를 조정하고 최적화하는 방법에 대한 좋은 정보 가 있습니다. 관심이
예압 사용
Ubuntu, Linux Mint 또는 데비안 기반 배포판에 사전로드를 설치하려면
# apt-get update && apt-get install preload
스왑을 끄십시오
swappiness 설정을 변경하려면
$ su -
# nano /etc/sysctl.conf
이 줄을 sysctl.conf 파일에 추가하십시오.
vm.swappiness = 10
UPS가 필요 /etc/sysctl.conf
합니다.
vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10
구성 파일 데몬 (일반적으로 /etc/syslog.conf
или )을 찾고 방법 앞에 빼기 부호 ( "-")를 작성 /etc/rsyslog.d/
하여 양식의 모든 경로가 /var/log/
변경됩니다.
/var/log/mail.err
후
mail.err -/var/log/mail.err
FS btrfs
를 사용하고 -o ssd
옵션을 사용하십시오.
Ubuntu, Linux Mint 용 SSD를 조정하고 최적화하는 방법
TRIM 사용
TRIM (Trim 명령은 사용하지 않는 SSD 블록을 지우고 OS에 알려줍니다)
문제가 발생할 경우 먼저 fstab을 백업하십시오.
# cp /etc/fstab ~/fstab.bk
fstab 파일 편집
# nano /etc/fstab
ext4 이후에 ssd 드라이브 또는 파티션에 폐기 추가
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime
noatime 및 nodiratime은 Linux에서 Linux 파일 시스템 용 마운트 옵션입니다. noatime은 파일 시스템에서 시간 업데이트를 비활성화하고 nodiratime은 디렉토리 시스템에서 시간 업데이트를 비활성화합니다. noatime과 nodiratime을 추가하면 ssd load가 크게 줄어 성능이 향상됩니다.
fstab 파일 편집
# nano /etc/fstab
ext4 이후에 ssd 드라이브 또는 파티션에 noatime, nodiratime 추가
UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
부팅시 읽을 수있는 것만로드하는 데 많은 시간이 필요한 응용 프로그램을 SSD에 배치하는 것이 좋습니다. 데이터 및 로그 및 기타 일반 HDD에서 찾을 수있는 중요하지 않은 것. 우분투 만로드하도록 설정할 수 있습니다 부팅시 SSD에서 큰 초기화를 수행하고 ssd에 변경 사항을 다시 기록하지 않습니다.이 파티션의 변경 사항이 영구적이지 않아 부팅 시스템을 보호하는 것과 같은 이점이 있습니다. 따라서 훨씬 더 많은 RAM이 필요합니다.
예를 들어 /, / etc, / usr, / boot, / lib 32/64 파티션을 SSD에 배치하고
/ opt, / bin, / sbin, / root, / home 및 HDD의 스왑 (RAM 증가) !!!
위키피디아의 말 :
Linux 커널은 버전 2.6.33부터 TRIM 기능을 지원합니다. ext4 파일 시스템은 "discard"매개 변수를 사용하여 마운트 될 때 지원됩니다. 최신 디스크 유틸리티 (및이를 사용하는 설치 소프트웨어)도 적절한 파티션 정렬을 적용합니다.
백업에는 여러 가지 방법이 있으며 가장 간단한 방법은 (r) sync plus cron 작업입니다.
/root
, /home
그것은 주로 읽기 전용 있기 때문에 스왑은 속도의 SSD에 넣어해야합니다. 속도 향상 /var
을 위해 SSD도 장착하십시오.
/
Kubuntu Oneiric 의 파티션은 SSD에서 4.5GB를 사용합니다. /
마이너스 에는 20GB로 충분합니다 /home
. 파일 시스템 레이아웃을 조정하여 여러 파티션에 분산시키는 노력은 가치가 없습니다.
tmpfs
줄이 주석 처리되므로 해당 줄을 추가하면 왜 차이가 있습니까? 주석 처리하지 않은 상태로 추가해야합니까?