我正在调查一个问题,即加密块设备会在写入时造成巨大的性能损失。数小时的互联网阅读和实验并没有让我得到正确的理解,更不用说解决方案了。
简而言之:为什么将 btrfs 放到块设备上时我的写入速度非常快(~170MB/s),而将 dm-crypt/LUKS 放在块设备之间时写入速度会下降(~20MB/s)文件系统和块设备,尽管系统能够维持足够高的加密吞吐量?
/home/schlimmchen/random是一个 4.0GB 的文件,里面装满了之前的数据/dev/urandom。
dd if=/dev/urandom of=/home/schlimmchen/Documents/random bs=1M count=4096
Run Code Online (Sandbox Code Playgroud)
阅读速度超快:
$ dd if=/home/schlimmchen/Documents/random of=/dev/null bs=1M
4265841146 bytes (4.3 GB) copied, 6.58036 s, 648 MB/s
$ dd if=/home/schlimmchen/Documents/random of=/dev/null bs=1M
4265841146 bytes (4.3 GB) copied, 0.786102 s, 5.4 GB/s
Run Code Online (Sandbox Code Playgroud)
(第二次,文件显然是从缓存中读取的)。
设备直接用btrfs格式化(块设备上没有分区表)。
$ sudo mkfs.btrfs /dev/sdf
$ sudo mount /dev/sdf /mnt
$ sudo chmod 777 /mnt
Run Code Online (Sandbox Code Playgroud)
写入速度高达 ~170MB/s:
$ dd if=/home/schlimmchen/Documents/random of=/mnt/dd-test1 bs=1M conv=fsync
4265841146 bytes …Run Code Online (Sandbox Code Playgroud) 我的笔记本电脑经常会崩溃。屏幕会冻结,包括光标,锁定灯(大写锁定等)如果打开的话会关闭,但我的电池、电源和 wifi 灯仍然工作。我不确定这是否是内核恐慌,因为有时它会冻结,然后当我通过电源按钮关闭它时发出相同的声音,然后重新启动。很少,我会看到一个文本屏幕(不像启动文本),然后它会以相同的方式重新启动。我想我在不同的线路上看到了“内核”和“恐慌”。但我不能确定。有一次,它做了同样的事情一分钟,但随后我可以移动鼠标,但所有键都不起作用。然后它崩溃并重新启动。
我正在尝试找出是什么原因造成的。
最初,我认为这是一个散热问题,因为当我将笔记本电脑放在硬表面上的冷却风扇上时,它就不再发生,并且只有当我访问资源密集型网站时才会发生。然后我认为这是内存问题,因为热量已经得到处理,但内存溢出到交换分区。但现在,即使内存使用量较低并且热量没有在 psensor 中触发警报时,它也会崩溃(我将任何组件的警报设置为在 60C 时发出,而且我很确定自从我停止以来它还没有达到 80C)将我的笔记本电脑放在我的腿上)。
我以为我表弟已经安装了 Debian 8.2(Jessie),但返回cat /etc/debian_version“stretch/sid”。我正在使用 XFCE,它位于 Dell Inspiron 1520 上,该计算机最初具有 WindowsXP 操作系统(我们在安装 Debian 之前擦除了硬盘驱动器),并具有 2Gb RAM。内核版本为3.16.0-4-amd64;但是,我相信我的问题是关于 Linux 的总体情况,而不是特定版本。在我们安装任何操作系统之前,在擦除硬盘驱动器之后,我的表弟确实从专用磁盘运行了 memtest86。
我不知道我需要检查什么,也不知道如何检查它,如何确定什么是内核问题,等等。这是我听说我需要查看的内容(scite 仅用于打开文本文件):
其中有几个是空白的或类似的内容,例如 var/log/dmesg,只有一行(尚未记录任何内容)。我在 /var/log 中找不到 dmesg.1
直到最近我才能够隔离日志中的任何内容,因为我总是让计算机重新启动。最近一次,我强迫它关闭,而不是经历恐慌。我已经把它放下几天了。系统日志不包含今天之前的任何内容。在 kern.log 中,自上次关闭之日起的最后一件事是:
Oct 17 22:51:27 darty kernel: [ 299.816045] mce: [Hardware Error]: Machine check events logged
Run Code Online (Sandbox Code Playgroud)
之前的一切都非常重复,并且与错误发生前 5 分钟的情况完全相同。(在某些情况下,它会在五分钟内关闭。)
sudo …