(Linux - Ubuntu 13.04)令人难以置信的慢速SSD与小文件


4

自从我拿到我的SSD(Crucial M4 - 256gb)之后,我遇到了一个问题,就像它在486上运行Windows 7一样慢,只要它用小文件做某事。我通过安装英特尔快速存储技术驱动程序/服务设法在Windows 7中“修复”了这个问题。

但是,在Linux(运行Ubuntu 13.04)中似乎没有驱动程序。我一直在尝试很多不同的解决方案,到目前为止它们似乎都没有。

我的SSD分区在一个EXT4分区中,安装为/。 我有一个单独的2TB硬盘,我挂在/ home上

以下是我抓住的有关块大小的一些信息:

# sudo blockdev --getbsz /dev/sda
> 4096

# sudo hdparm -I /dev/sda | grep -i physical
> Physical Sector size: 512 bytes

我的SSD的fstab条目如下所示:

UUID=c954288b-e1bd-4d3b-93ab-6a688210d070 /               ext4    errors=remount-ro,relatime,barrier=0,noatime,nodiratime,discard,commit=120  0       1

正如你可以从选项中看到的那样,我已经尝试了很多东西,但它们似乎都没有正常工作。举个例子:使用“apt-get install vim”安装ViM需要2分钟。

一个完整的apt-get dist-upgrade花了4个半小时。我一直在普通硬盘(5200转/分钟)上运行Ubuntu,它比这快了很多。

根据parted,我的分区正确对齐。我已使用以下命令检查:

# sudo parted /dev/sda
<parted> align-check opt
partition: 1

> aligned 1

此外,当SSD“忙”时运行iotop时,我看到jbd2不间断消耗大约99%~100%的时间。

如果有人能够对这个问题有所启发,那将是非常棒的!

编辑:一些额外的信息:

运行hdparm -t / dev / sda给出以下输出(看起来对我来说完全没问题)

Timing buffered disk reads: 680 MB in  3.01 seconds = 226.16 MB/sec

空闲时iotop输出:

TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                               
 2346 be/4 harold      0.00 B/s   31.04 K/s  0.00 %  0.00 % chrome
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    7 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u:0H]

有时在运行应用程序或其他繁重的东西时,这个过程“jbd2”会耗尽所有资源,而运行的实际应用程序(例如mysqld更新一些与数据库相关的东西或apt-get安装或更新软件)保持在3左右〜4%)

奇怪的是,有时它的工作正常(我试图重现问题在这里发布结果,但显然它是随机发生的)。我将更新下面iotop的输出,以及它再次出错的结果。

我觉得我的电脑现在正在拖着我:(

edit2:忘了添加一些额外内容(谢谢Craig Watson)

我的/etc/rc.local文件的内容如下所示:

echo deadline > /sys/block/sda/queue/scheduler
fstrim -v /
exit 0

在/ etc / default / grub里面,我得到了:

GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline"

在第一次尝试调度程序之后,我也添加了fstrim部分,因为我仍然没有使用调度程序获得任何好的结果。

提前致谢。

哈罗德。


只是一个完整性检查,是什么让你认为花在磁盘IO上的时间而不是网络流量?例如,如果您的网络由于某种原因而被阻塞,那么您的apt-get呼叫可能会非常慢。
ChrisInEdmonton

实际上下载文件的速度非常快。这是“解包”部分 慢 :(
Harold

Answers:


1

尝试更改I / O调度程序:

sudo echo deadline > /sys/block/sda/queue/scheduler

然后将其添加到Grub默认值,以便加载on-boot:

sudo nano /etc/default/grub

更改 GRUB_CMDLINE_LINUX_DEFAULT 至:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=deadline"

并运行: sudo update-grub2

还要检查你的RAM使用情况 - 你可能会交换到你的SSD,从长远来看,这可能会产生不良影响。如果你有足够的RAM,你可以将swappiness设置为零,这样除非你完全没有RAM,否则不会使用RAM:

sudo echo 0 > /proc/sys/vm/swappiness

参考: http://apcmag.com/how-to-maximise-ssd-performance-with-linux.htm


谢谢回复。我实际上也试过了(完全忘了发布,我会更新帖子)。我在我的rc.local文件中有调度程序,并且还使用“fstrim -v /”(在调度程序证明自己有时不工作之后)。
Harold

内存输出看起来也很好。在8场演出中,有3.4个在使用中,4.6个免费。交换区域也是8 gig,使用0。
Harold
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.