什么不放在SSD上?


70

我购买了SSD,然后将使用全新的Linux安装程序来安装台式机系统。

SSD已知速度很快,但有一个缺点:写入次数(每块?)是有限的。

因此,我正在考虑哪些数据应位于SSD上,哪些数据应位于HDD驱动器上。通常,我认为应该将经常更改的数据放置在HDD上,将不经常更改的数据放置在SSD上。

  • 现在,我以类似的情况阅读了这个问题。答案中写道:“ SSD驱动器非常适合交换空间...”

    为什么SSD非常适合交换空间?好的,我认为提高系统性能的潜力很大,但是交换数据的次数并不频繁,因此SSD上的写入次数很多,从而导致SSD寿命较短?

  • 那么/ var目录呢?它的内容也不经常更改吗?将其放在HDD上不是一个好主意吗?

  • 是否还有其他不应位于SSD上的数据?


另外,我们在AIX生产数据库中使用了RAID 1和SSD。当然,它们可能是企业级SSD(实际上尚未检查),但对于您/proc/home目录位于SSD 上的大多数应用程序,仍然可以接受消费级。
乍得哈里森

7
@hydroparadise /proc由内核维护,并且不存在于磁盘上,无论是旋转磁盘还是SSD。
CVn

糟糕,放屁了。/var/etc将是/proc该示例的合适替代品。我想/proc如果它溢出到使用swap上仍然有意义。
乍得哈里森

Answers:


83

如果您担心写周期,那么您将一事无成。

您的SSD上的数据会经常更改;您的房屋,配置,浏览器缓存,甚至数据库(如果使用的话)。它们都应该放在SSD上:如果不提高您经常做的事情的速度,您为什么还要拥有一个呢?

写入次数可能会受到限制,但是现代SSD在损耗均衡方面非常出色,因此您不必担心太多。磁盘将被写入;如果您不使用它,则最好将其用作镇纸,甚至不要将其放入计算机中。

没有适合交换空间的存储设备。交换速度,即使在SSD上也是如此。如果您需要一直进行交换,那么最好以一种或另一种方式获得更多的RAM。

对于没有用于交换的交换空间,但对于挂起到磁盘方案,交换空间可能有所不同。自然,用于此目的的存储介质越快,它将挂起并再次唤醒的速度就越快。

就个人而言,我将所有内容(除了大的静态数据)都放在SSD上。例如,电影不必浪费SSD上的昂贵空间,因为HDD足够快来播放它。使用SSD存储,播放速度不会更快。

像所有存储介质一样,无论您是否使用,SSD都会在某个时候发生故障。您应该认为它们与HDD一样可靠,而HDD根本不可靠,因此应该进行备份。


11
这个答案完全忽略了这样一个事实,即大量数据很少写入而经常读取。
jwg 2013年

22
嗯,这如何改变答案?这里的主题是“加快您经常做的事情的速度”。这是读还是写有什么关系?关键是要使用SSD来处理涉及大量磁盘IO的事情,而不管读取或写入。
皮特2013年

1
@LorenPechtel所以您是说您实际上期望SSD能够在大约一百年后起作用?无论使用哪种模式,我都会以某种方式怀疑。:)“以固定的速率增加”并不一定意味着“准确”,尤其是当您(很可能是)测量一件事而将其报告为另一件事时。如果您正在测量写周期,但将其报告为生命周期,那么它将忽略可能出错的所有其他问题,尤其是在较长的时间内(物理材料和组件疲劳是一种可能)。
CVn

5
SSD更适合随机IO,而不仅仅是任意IO。普通驱动器对于顺序访问(例如介质)同样适用。
JamesRyan 2013年

2
我想指出,在大量写入的驱动器和镇纸之间,存在诸如光盘之类的只读介质。我也同意这个答案的建议,即大多数普通用户无需担心SSD写入周期。除非您执行异常操作或运行大量使用文件系统的服务,否则SSD的使用寿命可能会足够长。
jw013

29

好的,因此目标是尽可能多地降低成本-速度与替换硬件的价格(假设单个大硬盘和中型SSD,这似乎很正常)。为简化起见,您可以权衡将文件移至SSD的速度与将文件移至SSD的写入扇区数之间的权衡。

  • 需要大量读取而很少写入的文件(例如OS和程序)可能是最明显的移动到SSD上的文件。
  • 在HDD足够快的情况下,以固定数据速率写入一次并读取多次的文件(例如音乐,视频)应该留在那里。它们通常不会被修改,但是请考虑将它们写入许多扇区。
  • 大量修改的小文件(例如一些临时文件)更加复杂。例如,给定扇区大小为512字节,您可以在“消耗”与一次写入单个1 GiB文件相同数量的写入之前覆盖20,000,000次单扇区文件。如果SSD负责磨损平衡,则这些等效。

当然,即使是最好的计算也要消耗所有时间中最宝贵的资源。因此,从长远来看,你可能最好断保持它的简单和购买新的硬件往往比绝对理想的情况下。


2
速度vs更换价格vs数据丢失。是的,不是每个人都使用备份,即使他们应该这样做。+1
n611x007

1
我必须承认,我喜欢扇区写入的概念来衡量存储使用情况,特别是在SSD的情况下。:)
2013年

2

除了所有答案,这里还有一个我喜欢的小技巧。我已经开始在我的SSD上再次使用ramdisk来稍微降低磨损效果。我将其用于浏览器缓存(以及整个浏览器配置文件),各种临时文件,一些不必要的日志等(通过符号链接)

我的虚拟磁盘在fstab中设置如下:

tmpfs       /mnt/ramdisk tmpfs   nodev,nosuid,size=512M   0 0

更多的RAM可以使用更大的ramdisk。有了这个我有启动/关闭脚本。在加密的设备/文件夹上编写ramdisk备份的各种经验,即使启动时优先级最低,关机时优先级最高。

这样可以稍微加快系统速度,并节省一些写入周期。好事是每15分钟执行一次rsync的cron工作吗?

#!/bin/bash

### BEGIN INIT INFO
# Provides:          Ramdisk control
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 6
# Short-Description: Start/stop script at runlevel change.
# Description:       Ramdisk auto backup and restore
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin
USER="user1"
RDISK=/mnt/ramdisk
BACKUP=/opt/
#/home/$USER/BackUps/

#echo "$(date) $1" >> $BACKUP/rd.log

case "$1" in
    stop)
        rsync -aE --delete $RDISK $BACKUP
        ;;
    start|force-reload|restart|reload)
        #restore ramdisk
        cp -rp $BACKUP/ramdisk/* $RDISK 2> /dev/null
        ;;
    *)
        echo 'Usage: /etc/init.d/ramdisk {start|reload|restart|force-reload|stop|status}'
        echo '       stop                       - backup ramdisk data'
        echo '       start|*                    - restore ramdisk data from backup'
        echo '       - default backup location is /xxxxx'
        exit 1
        ;;
esac


exit $?

对Ubuntu用户的警告很少,不要使用/ media / user /文件夹进行ramdisk备份,因为它会因某些更新而重置,因此我会定期丢失配置文件数据。同样在Ubuntu上,我在加密主文件夹上制作ramdisk bakups时遇到了一些困难。


1

与他人达成共识后,您应该放置几乎所有内容,但可能是非常大的(视频)文件,以避免浪费昂贵的SSD空间。

但是,您还应确保启用了TRIM

  • 您的SSD支持TRIM
  • 您的分区在多个EBS上对齐
  • 您的文件系统在文件系统上支持TRIM(ext4通常支持)
  • fstrim经常跑步(可能每周执行一次Cron)
  • 您至少保留25%的可用磁盘空间[ 1 ]

请记住备份您的数据。

更新:


是否有25%可用磁盘空间的来源?
Thiago Perrotta,2015年

我添加了参考。这类似于内存和哈希映射,因为它是垃圾收集的。低于该水平,GC开销将迅速成为一个问题。
2015年

为了后代,我想补充一点,您引用的部分已在修订版的ArchWiki中删除,并带有以下注释:“在没有TRIM或过度配置的情况下,购买SSD会花费一些精力:kingston.com/us/ssd/预留空间过大 ”。
诡异的

实际上,您要么将交换放在SSD上,要么未配置任何交换。确实没有任何要交换HDD的情况,因为SSD是替代方案。
Mikko Rantalainen


-1

很抱歉,答案很差。您当然可以并且应该构建一个非常快速的系统,并且仍将大多数已写入的文件夹移至HDD。将/ tmp移至/ tmpfs或在HDD上创建/ tmp分区也移至HDD并在/ var / log / var / spool和/ var / tmp的原始文件夹上创建符号链接(请勿将/ var / tmp放在tmpfs上是应该在重新启动后访问的数据)。移至HDD并为〜/下载〜/ Videos〜/ Music〜/ .config〜/ .cache〜/ .thunderbird〜/ .mozilla〜/ .googleearth〜/ .ACEStream和其他您知道或发现的ACEStream创建符号链接缓存(我相信始终会找到您特定浏览器缓存的位置,然后将其移动到HDD Chrome和Firefox覆盖其中,但请您自己检查)。如果您需要编辑视频文件,则可以将其移动到ssd,否则99%的文档和媒体都不会在SSD中受益。同样,由于HDD很少被systen使用,因此这些技巧对性能和SSD的耐用性产生巨大影响。移至HDD并为您的云文件夹(例如保管箱)创建符号链接。如果您正在/ apache / apache / apache / apache / var / www,请考虑也将其移动。现在,您有了一个非常快的系统,几乎没有速度差,而且磨损少得多。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.