“屏障”安装选项的手册是:
屏障=0 / 屏障=1
这将禁用/启用在 jbd 代码中使用写屏障。barrier=0 禁用,barrier=1 启用(默认)。这还需要一个可以支持屏障的 IO 堆栈,如果 jbd 在屏障写入时出错,它将再次禁用屏障并发出警告。写屏障强制对日志提交进行适当的磁盘排序,使易失性磁盘写入缓存可以安全使用,但会降低一些性能。如果您的磁盘以一种或另一种方式由电池供电,则禁用屏障可以安全地提高性能。
但我不知道“日志提交的正确磁盘排序”这句话是什么意思。
假设正常顺序——journal 1,data 1;journal 2, data 2.
如果我设置了,会出现以下哪个排序结果barrier=0?
我最近得到了一个Intel 320 系列 SSD,我很难实现随机 4K 读取的 38K IOPS。
使用fio和我自己的黑客程序,我看到大约 6K IOPS。这几乎就像 IO 深度大小无关紧要,内核试图一次获取一个块。
例子:
$ cat job
[randread]
filename=/dev/sdb2
rw=randread
size=128m
blocksize=4k
ioengine=libaio
iodepth=64
direct=1
$ sudo fio job
randread: (g=0): rw=randread, bs=4K-4K/4K-4K, ioengine=libaio, iodepth=64
Starting 1 process
Jobs: 1 (f=1): [r] [100.0% done] [25423K/0K /s] [6207/0 iops] [eta 00m:00s]
randread: (groupid=0, jobs=1): err= 0: pid=4678
read : io=131072KB, bw=24852KB/s, iops=6213, runt= 5274msec
slat (usec): min=1, max=94, avg= 5.00, stdev= 2.88
clat (usec): min=312, max=13070, avg=10290.25, …Run Code Online (Sandbox Code Playgroud) 通常我不太关心桌面性能,因为我的服务器不运行任何 gui。但是在家里,我运行一些较旧的硬件(Pentium),它有时会变得非常缓慢(KDE 中的鼠标移动)。我观察到在这种情况下有一些磁盘 io 后台活动正在进行。
如何将磁盘优先级设置得更低,以便我的 gui 得到更多关注?
我已经尝试将我的 sata 驱动器的磁盘调度程序从 cfq 设置为 as - 但这没有帮助。
我记得我很久以前在 OpenSuSE 上遇到过类似的问题,我在那里设置了不同的通用调度程序滴答率(默认情况下较短,据我所知)。但我不记得那到底是什么,也不记得如何在我当前的 Linux(CentOS 5,32 位)上设置它。
欢迎任何提示。
我觉得这有点重复关于使缓存更具侵略性的另一个问题,但我在那里尝试了很多建议,但我无法弄清楚为什么我遇到了麻烦。
我的情况是我在我的钥匙串上的一个小 USB 闪存驱动器上安装了 Ubuntu 12.10。(当我需要拯救某人的 PC 或想要拥有自己的桌面以及我自己的设置和书签等时,我会使用它,无论我发现自己在什么 PC 面前)。
问题是系统非常慢。
现在,USB 闪存驱动器相当慢,所以我知道我必须做出一些让步。但是,我目前正在尝试在具有8GB RAM的 i7 机器上运行它。“free”和“top”都报告系统使用的空间少于2.7GB ...
total used free shared buffers cached
Mem: 7712 2742 4969 0 164 1838
-/+ buffers/cache: 740 6972
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
...和“df”告诉我文件系统正在使用4.4GB。因此,应该有足够的剩余 RAM 来缓存整个文件系统。
基于此,我认为我遇到的唯一 I/O 延迟应该仅限于第一次将文件读入缓存所需的时间。在那之后,我认为它不需要再次获取它们,并且所有写入都可以缓存在后台,所以我根本不必等待它们。(当然,最大的等待可能是当我想关闭时,需要将 4GB 的脏缓存写入闪存)。
但是,这根本不是我所经历的。相反,一切都非常缓慢。将焦点切换到其他窗口会导致所有窗口“变暗”约 10 秒(对于此任务,窗口管理器需要什么,从磁盘中,它肯定不会写入那里?如果它在窗口会话的早期编写它,为什么不在缓存中?),并且在 .deb 文件下载后执行诸如使用 apt-get 安装某些内容需要几分钟的时间(该 .deb 怎么不在缓存中) ?如何从没有被写入包中的新文件到缓存?而且这不是安装程序是不必去阅读的/ var / lib中/ dpkg的/可用或/ var / lib中/ dpkg的/状态,因为这发生在每个 包,即使我尝试一次安装一堆)。 …