it-swarm-ko.tech

SSD 용 OS를 어떻게 최적화합니까?

솔리드 스테이트 드라이브에 Ubuntu를 설치하기 전/중/후에 어떤 단계를 수행하여 성능을 최적화하고 드라이브의 최대 내구성을 확보해야합니까?

146
Lars Haugseth

나는 솔리드 스테이트이든 기존 드라이브이든 우분투가 저장 장치를 사용하는 방식을 개선하기 위해 여러 가지 기술을 성공적으로 사용했습니다.

SSD의 경우 읽기로 인해 드라이브가 마모되지 않아야 드라이브 쓰기 횟수를 최소화하려고합니다.

1) 스왑 파일 관리

컴퓨터를 최대 절전 모드로 전환하지 않고 모든 응용 프로그램을 실행할 수있는 충분한 RAM 메모리가있는 경우 이론적으로 스왑 파티션이 필요하지 않습니다.

SSD와 하드 드라이브가 혼합 된 경우 스왑 파티션을 하드 드라이브에만 배치하십시오.

2) 읽기 타임 스탬프에 대한 쓰기 없음 (SSD 및 하드 드라이브에 적합)

noatimenodiratime 옵션을 사용하여 파티션을 마운트하면 파일 및 폴더를 읽을 때 타임 스탬프 쓰기가 중지됩니다. 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

이러한 변경 사항을 적용하려면 컴퓨터를 재부팅해야합니다

) OS 및 응용 프로그램에서의 쓰기 최소화

미션 크리티컬 제품 서버를 실행하고 있지 않다고 가정하면, 대부분의 사람들은 문제가 발생할 경우 로그를 보지 않습니다 (특히 대부분의 우분투 사용자에게는 심각한 오류가 드물기 때문에). 따라서 모든 로그가 SSD가 아닌 RAM 메모리에 기록되도록 Ubuntu를 구성 할 수 있습니다.

참고 : 사용할 모든 소프트웨어 (특히 Apache 웹 서버 등)를 설치 한 경우에만 다음을 변경하십시오. 그렇지 않으면/var/log

이 방법에 대한 배경 지식은 buntu-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

이러한 변경 사항을 적용하려면 컴퓨터를 재부팅해야합니다

또한보십시오:

108
jr0cket

SSD 수명

일반적으로 귀찮게하지 않을 것입니다-SSD 수명에 대한 걱정은 과도합니다. 이 실제로 걱정하지 말아야 할 이유에 대한 자세한 기사 를 읽을 수 있습니다. 요컨대 최신 SSD 내부의 회로는웨어 레벨링을 관리하며 사용자보다 훨씬 더 나은 방법을 알고 있습니다.

이 기사에서는 80M/s의 연속 속도로 쓰기를 수신하는 SSD의 수명을 계산합니다. 인생은 51 년 입니다. 이는 2007 년 기술을 기반으로합니다. SSD 수명은 이제 더 길어질 것입니다. 그리고 당신은 거의 확실하게 하루 24 시간 80M/s로 SSD에 쓰지 않습니다.

SSD 성능

그러나 시간이 지남에 따른 성능 저하가 문제가 될 수 있으며 TRIM 이 해결책입니다. 두 가지 옵션이 있습니다

  • 자동/온라인 TRIM, 일명 폐기
  • 수동 트림

자동 TRIM을 직접 활성화 해야합니다. (ext4를 사용하는 경우 기본적으로 discard 옵션을 마운트 옵션에 추가합니다.) 파기 옵션이 파일을 삭제할 때 시스템 속도가 느려짐 라는 블로그 게시물을 발견했습니다.

때때로 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 미디어에 데이터를 쓰는 속도는 매우 빠르지 만 이전에 작성된 페이지를 덮어 써야하는 경우 상당히 느려집니다 . 다시 쓰기 전에 페이지의 셀 지우기가 필요하지만 전체 블록 만 지울 수 있으므로 덮어 쓰기는 읽기-지우기-수정-쓰기주기를 시작합니다. 전체 블록의 내용은 플래시 미디어에서 효과적으로 삭제되기 전에 캐시에 저장되어야합니다. 그런 다음 덮어 쓴 페이지가 캐시에서 수정되므로 캐시 된 블록이 최신 상태가되고 전체 블록 만 업데이트됩니다 (업데이트 된 페이지 포함) )를 플래시 미디어 에 씁니다. 이 현상을 쓰기 증폭이라고합니다.

92
Hamish Downer

몇 가지 사항이 있습니다.

정렬 :

종종 지적되는 것은 파티션의 오른쪽 alignment 입니다. SSD의 블록 크기와 같아야합니다. 안전하게 플레이하고 파티션을 MiB 경계에 맞 춥니 다. Ubuntu 설치 프로그램의 파티션 도구 (MB가 아닌 MiB를 사용)로는이 작업을 수행 할 수 없지만 라이브 CD를 부팅하고 Gparted (MiB를 사용하는)를 사용한 다음 설치를 클릭하여 설정 한 파티션을 사용할 수 있습니다.

올바른 스케줄러 :

중요한 점은 schedulernoop이어야합니다. 이 스케줄러는 kernelparameter elevator=noop 또는 rc.local의 echo noop > /sys/block/sda/queue/scheduler 항목을 통해 설정할 수 있습니다.

마운트 플래그 :

noatimediscard을 (를) 추천합니다

Tmpfs

램 디스크에 tmp를 넣으면 ssd의 수명이 늘어날 수 있습니다. 이것을 사용하려면 다음 줄을 fstab에 넣으십시오. none /tmp tmpfs defaults 0 0

일반적으로이 주제에 대해 더 자세히 알고 싶다면 this 우수한 위키 기사를 추천합니다.

20
Sebastian Rühl

Ubuntu의 SSD에 대한 빠른 조정 과정 :

파일 시스템

Arch wiki mentions 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

몇 가지 중요한 사항은 다음과 같습니다.

  • 메모리가 2GB를 초과하는 시스템의 경우 RAM에서/tmp를 찾는 것이 좋습니다.
  • swap 파티션이 없습니다. 요즘에는 최신 시스템에 RAM이 상당히 많기 때문에 최대 절전 모드에만 필요합니다.
  • noatimediscard 옵션. 정보는 여기 입니다.

스케줄러

대부분의 Linux 배포판에서 cfq (완전히 공정한 큐잉) 인 기본 스케줄러에서 SSD의 noop 또는 데드 라인 스케줄러로 전환하는 것을 고려하십시오. 예를 들어, noop 스케줄러를 사용하면 데이터가 디스크에서 실제로 상주하는 위치를 고려하지 않고 요청을 수신 된 순서대로 간단히 처리 할 수 ​​있습니다. 탐색 시간이 SSD의 모든 섹터에서 동일하므로이 옵션은 SSD에 유리한 것으로 생각됩니다.

/etc/rc.local 에 다음을 추가하십시오.

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

정보

onetwo

16
Andrejs Cainikovs

4) 자동 TRIM 활성화

SSD가 지원하는 경우 자동 TRIM도 활성화해야합니다 (설명 된 here ).

8
Uli

TRIM을 사용하면 운영 체제가 더 이상 사용하지 않는 데이터 블록을 내부적으로 지울 수있는 데이터 블록을 SSD에 알릴 수 있습니다. 트리밍을 통해 SSD는 가비지 수집 오버 헤드를 처리 할 수 ​​있으며, 그렇지 않으면 관련 블록에 대한 향후 쓰기 작업이 미리 느려지 게됩니다. 1

Ubuntu 14.04에서는 SSD를 정기적으로 자동으로 자르는 새로운 기능이 util-linux 패키지에 추가되었지만 Intel 및 Samsung SSD 만 기본적으로 TRIM을 활성화했습니다 일부 저렴한 SSD는 TRIM을 실행할 때 스스로를 차단할 수도 있기 때문입니다.2 우분투 14.04의 /etc/cron.weekly/fstrim 내용 :

#!/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

1https://en.wikipedia.org/wiki/Trim_%28computing%29
2트림은 어떻게 활성화됩니까?

3
karel

이 줄을 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 %를 포맷하지 않은 상태로두면 수명을 연장하는 데 도움이 될 수 있습니다. 나는 이것에 대해 많이 읽지 않았으므로 그렇게하는 것이 합당하다면 보증 할 수 없습니다.

이것은 가장 좋은 가이드입니다. 그는 구글을 하루 동안 훑어 보지 않았고 가이드를 생각해 냈습니다. HERE

3
JohnRB

좋은 정보가 있습니다 http://namhuy.net/1563/how-to-Tweak-and-optimize-ssd-for-ubuntu-linux-mint에서 Ubuntu, Linux Mint 용 SSD를 조정하고 최적화하는 방법 .html 관심이있으세요

예비 사용

Ubuntu, Linux Mint 또는 데비안 기반 배포판에 사전로드를 설치하려면

# apt-get update && apt-get install preload

스왑을 끕니다

Swappiness 설정을 변경하려면

$ su -
# nano /etc/sysctl.conf

이 줄을 sysctl.conf 파일에 추가하십시오.

vm.swappiness = 10
2
Sue Russell

/var/tmp은 tmpfs에 있어서는 안된다는 것은 명백하다.

2
user95602

"긴 이야기 짧음":

  1. 예. 일반 HDD와 같습니다. 여기 는 좋은 개요입니다.
  2. 내가 다룰 몇 가지 특별한 추가 사항.
  3. 꽤 좋은. 서버와 함께 사용합니다.

설치하는 동안 ext4로 포맷하고 ~ 1GB의 작은 스왑을 만듭니다. 설치 후 Sudo gedit /etc/fstab로 fstab을 편집하고 다음 줄을 추가하십시오.

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

그러면 임시 파일에 대한 램 드라이브가 생성되어 노화가 줄어 듭니다. 또한 기본 설정 후에 noatime,nodiratime,discard를 ext4 줄에 추가하십시오. 또한 마모를 줄이고 TRIM 기능을 활성화합니다. 저장하고 재부팅하십시오.

2
gajdipajti

UPS가 필요합니다. /etc/sysctl.conf 파일

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

구성 파일 데몬 (일반적으로 /etc/syslog.conf или /etc/rsyslog.d/)과 /var/log/ 형식의 모든 경로에서 마이너스 부호 ( "-")를 앞에 입력하여 변경하십시오. mail.err

/var/log/mail.err


mail.err -/var/log/mail.err

FS btrfs을 사용하고 -o ssd 옵션을 사용하십시오.

http://vasilisc.com/speedup_ubuntu_eng#speedup_fs

buntu, 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 부하가 크게 줄어 성능이 향상됩니다.

Fstab 파일 편집

# nano /etc/fstab

Ext4 이후에 ssd 드라이브 또는 파티션에 noatime, nodiratime 추가

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
1
user223973

부팅시 읽을 수있는 것만로드하는 데 많은 시간이 필요한 응용 프로그램을 SSD에 배치하는 것이 좋습니다. 데이터 및 로그 및 기타 일반 HDD에서 찾을 수있는 중요하지 않은 것들. 우분투 만로드하도록 설정할 수 있습니다 부팅시 SSD에서 큰 초기화를 수행하고 ssd에 변경 사항을 다시 기록하지 않습니다.이 파티션의 변경 사항이 영구적이지 않아 부팅 시스템을 보호하는 것과 같은 이점이 있습니다. 따라서 훨씬 더 많은 RAM물론입니다.

예를 들어 SSD에 /,/etc,/usr,/boot,/lib 32/64 파티션을 배치하십시오.

/ opt,/bin,/sbin,/root,/home 및 HDD의 스왑 (RAM 증가) !!!

Wikipedia 말한다 :

Linux 커널은 버전 2.6.33부터 TRIM 기능을 지원합니다. ext4 파일 시스템은 "discard"매개 변수를 사용하여 마운트 될 때 지원됩니다. 최신 디스크 유틸리티 (및이를 사용하는 설치 소프트웨어)도 적절한 파티션 정렬을 적용합니다.

백업에는 여러 가지 방법이 있으며 가장 간단한 방법은 (r) sync plus cron 작업입니다.

0
Michael K