小编Ole*_*nge的帖子

由于磨损均衡,更大容量的 SSD 是否具有更长的寿命?

有人告诉我,如果您购买更大容量的 SSD,您可以获得更长的 SSD 使用寿命。理由是,较新的 SSD 具有磨损均衡,因此无论您是否将此写入分散到(逻辑)磁盘上,都应维持相同的写入量。如果您获得的 SSD 是您所需尺寸的两倍,那么您进行磨损均衡的能力就会增加一倍。

这有什么道理吗?

ssd capacity-planning

60
推荐指数
4
解决办法
1万
查看次数

不明原因硬盘掉线

我有 7 个系统运行以下设置。有时一个不同的磁盘会脱机,但仔细检查磁盘是好的,没有故障,并且至少可以正常工作一年。由于这发生在所有 7 个系统上,我发现不太可能只有一个部件在起作用(例如电缆),而是一些稍微不兼容的部件的组合。

问题是找到不兼容的确切点。

(如果您有一个解决方法,您可以从命令行虚拟重新安装硬盘,那么您可以回答https://serverfault.com/questions/523315/re-activate-device -那被认为是死的)。

服务器硬件:Dell 1950、Dell R815、Dell R715。

操作系统:

$ uname -a
Linux franklin 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

控制器:

$ lspci |grep 22: 
22:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)
$ sas2flash -listall
LSI Corporation SAS2 Flash Utility
Version 15.00.00.00 (2012.11.06) 
Copyright (c) 2008-2012 LSI Corporation. All rights reserved

    Adapter Selected is a LSI SAS: SAS2008(B2)   

Num   Ctlr            FW Ver        NVDATA …
Run Code Online (Sandbox Code Playgroud)

troubleshooting scsi

11
推荐指数
1
解决办法
4007
查看次数

重新加载 /etc/security/limits.conf

我想要:

  • 为常驻内存设置一个 64GB 的软限制(因此,没有经验的用户会杀死他们的 run-amok 进程,但有经验的用户可以提高内存饥饿进程的限制)
  • 提高 nofile 的硬限制,但将软限制保持在 1024(所以如果某个程序需要更多的文件句柄,用户可以授予它们,但 run-amok 程序不会得到它们)。

据我所知,我应该能够在/etc/security/limits.conf(或/etc/security/limits.d/*)中做到这一点:

*        soft    rss             64000000
*        hard    nofile          50000
*        soft    nofile          1024
Run Code Online (Sandbox Code Playgroud)

但是,我找不到一种无需重新启动即可重新加载这些值的方法。我已经读到登录时会重新加载这些值;当我这样做时它有效,su - user但它不起作用ssh user@localhost

我在 /etc/pam.d 中有 pam_limits.so:

/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/su:session    required   pam_limits.so
Run Code Online (Sandbox Code Playgroud)

我在 sshd_config 中有 PAM:

/etc/ssh/sshd_config:UsePAM yes
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用ulimitand设置值sysctl,但我想测试它/etc/security/limits.conf是否在做正确的事情而无需重新启动。

当人们使用 ssh 登录而不重新启动时,如何确保设置了这些值?

pam limits

8
推荐指数
1
解决办法
2万
查看次数

避免 /usr/bin/xauth: 锁定权限文件 /home/user/.Xauthority 时出错

在批处理脚本中,我经常通过 ssh 多次登录同一系统。例如

seq 1000 | parallel -j0 -S server echo
Run Code Online (Sandbox Code Playgroud)

这会触发竞争条件,给出错误:

/usr/bin/xauth:  error in locking authority file /home/user/.Xauthority
Run Code Online (Sandbox Code Playgroud)

我怎样才能避免这种情况?

ssh login locking

8
推荐指数
1
解决办法
2万
查看次数

Linux 文件系统缓存:将数据从脏数据移至回写

我的软件 RAID 可以持续写入 800 MB/s。我看到当cat /proc/meminfo |grep Writeback:返回 > 2 GB时会发生这种情况。但是,大多数情况下,回写大约为 0.5 GB,这提供了大约 200 MB/s 的性能。

有大量数据要写入。cat /proc/meminfo |grep Dirty:说脏缓存是 90 GB。

据我了解,Dirty 是需要写入的内容,而 Writeback 是主动写入磁盘的内容。因此,Dirty 中的块可能位于磁盘上与 Writeback 中的块相邻的磁盘上,并且这些块不会在同一个 go 中写入。

这可以解释为什么如果 Writeback 很小,我的性能会差很多,因为寻找的时间比写几个额外 MB 的时间要长得多。

所以我的问题是:我能否以某种方式告诉内核更积极地将更多数据从 Dirty 移动到 Writeback,从而增加 Writeback?

- 编辑 -

这是在低性能期间:

$ cat /proc/meminfo
MemTotal:       264656352 kB
MemFree:          897080 kB
Buffers:              72 kB
Cached:         233751012 kB
SwapCached:            0 kB
Active:          3825364 kB
Inactive:       230327200 kB
Active(anon):     358120 kB
Inactive(anon):    47536 kB
Active(file): …
Run Code Online (Sandbox Code Playgroud)

linux performance software-raid

7
推荐指数
1
解决办法
1万
查看次数

来自 GNU/Linux 命令行的 Dell iDRAC6 虚拟控制台查看器

我很恼火,因为我想通过 iDRAC6 使用虚拟控制台,所以我不得不启动网络浏览器。

我设法下载viewer.jnlp,我可以通过以下方式启动查看器:

javaws viewer.jnlp
Run Code Online (Sandbox Code Playgroud)

但似乎viewer.jnlp每次运行都会发生变化。具体来说:

<argument>user=1234567890</argument>                                                   
<argument>passwd=123456789</argument>                                                  
Run Code Online (Sandbox Code Playgroud)

我的猜测是 iDRAC6 为每次运行生成一个随机用户/密码,并且只能使用一次。

如果我可以简单地做,我会更喜欢:

drac-virtual-console-viewer username password drac.ip.nr
Run Code Online (Sandbox Code Playgroud)

有工具吗?

或者有没有办法下载viewer.jnlp给定的用户名/密码?

其他版本的 iDRAC 似乎支持 VNC,但我无法让它在 iDRAC6 上运行。但如果我能让它工作,它也会解决我的问题。

系统:Dell R815 iDRAC6

drac console

7
推荐指数
1
解决办法
3631
查看次数

Linux 软件 RAID6:重建缓慢

我试图找到重建软件raid6 的瓶颈。

## Pause rebuilding when measuring raw I/O performance
# echo 1 > /proc/sys/dev/raid/speed_limit_min
# echo 1 > /proc/sys/dev/raid/speed_limit_max
## Drop caches so that does not interfere with measuring
# sync ; echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
# time parallel -j0 "dd if=/dev/{} bs=256k count=4000 | cat >/dev/null" ::: sdbd sdbc sdbf sdbm sdbl sdbk sdbe sdbj sdbh sdbg 
4000+0 records in
4000+0 records out
1048576000 bytes (1.0 GB) copied, 7.30336 s, 144 MB/s
[... similar for each …
Run Code Online (Sandbox Code Playgroud)

linux performance mdadm software-raid raid6

5
推荐指数
1
解决办法
1667
查看次数

xfs:在前 1 TB 上查找文件

我被 xfs' No space left on device击中。根据常见问题解答:

http://xfs.org/index.php/XFS_FAQ#Q:_Why_do_I_receive_No_space_left_on_device_after_xfs_growfs.3F

解决此问题的唯一方法是移动数据以释放 1TB 以下的空间。找到最旧的数据(即在第一次增长之前就已经存在)并将其移出文件系统(移动,而不是复制)。然后,如果您将其重新复制,数据块最终将超过 1TB,这应该为低于 1TB 的 inode 留出足够的空间。

但是我如何识别要移动的数据呢?我不能按年龄计算,因为前 10 TB 是在同一天使用rsync.

我试过了:

xfs_db -r -c "blockget -i 1 -n -v" /dev/md3
Run Code Online (Sandbox Code Playgroud)

但我似乎只得到文件的基本名称,而不是文件的完整路径。而且由于我的很多文件都被称为相同的(但在不同的目录中),所以这不是很有用。它似乎也给了我更多信息,只是 inode 1。

我有一种感觉,我可以使用xfs_db它来告诉我前 1 TB 中哪些文件正在使用块,但我一直无法看到如何使用。

(通过使用挂载选项inode64,文件系统不会在设备上留下 No space left,但是如果您稍后忘记使用 mount 选项,inode64那么您将再次在设备上获得No space left on device。我想避免使用挂载选项,inode64因为文件系统可能会被其他人安装在其他系统上,他们忘记这一点,从而得到令人惊讶的No space left on device)。

xfs inode

5
推荐指数
1
解决办法
1226
查看次数

Linux mdadm --grow RAID6:出了点问题 - 重塑中止

我有一个要扩展的 RAID60。

当前为:2 个轴,每个轴有 9 个磁盘 + 2 个备件。

未来是:4 个轴,每个轴有 10 个磁盘 + 1 个备用。

所以我需要做一些 --grow 来重塑驱动器。

我认为这就足够了:

mdadm -v --grow /dev/md1 --raid-devices=10 --backup-file=/root/back-md1
mdadm -v --grow /dev/md2 --raid-devices=10 --backup-file=/root/back-md2
mdadm -v --grow /dev/md0 --raid-devices=4 --add /dev/md3 /dev/md4
Run Code Online (Sandbox Code Playgroud)

最后一个命令有效,但前 2 个命令失败:

mdadm: Need to backup 7168K of critical section..
mdadm: /dev/md2: Something wrong - reshape aborted
Run Code Online (Sandbox Code Playgroud)

我如何 --grow RAID6 以使用更多设备?

系统信息:

$ mdadm --version
mdadm - v3.2.5 - 18th May 2012
$ uname -r
3.5.0-17-generic
Run Code Online (Sandbox Code Playgroud)

Makefile 重现问题:

all: …
Run Code Online (Sandbox Code Playgroud)

mdadm software-raid raid6 expansion

5
推荐指数
1
解决办法
827
查看次数

zfs:刷新缓存而不导出

为了进行测试,我需要 zfs 的缓存处于冷状态。

我可以通过删除缓存磁盘、导出和导入池来刷新池中的缓存。这给出了我想要的效果。但真的不想导出池。

有没有更简单的方法来达到同样的效果?

我正在寻找的是相当于:

echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)

这满足了我对 ext4 的需求。

背景

我可以用不同的方式运行我的算法。我不关心最好情况下的性能。我确实关心最坏情况下的性能。最坏的情况是冷数据(很久以前接触过的数据,不再存在于 ARC/L2ARC 中)。

为了选择运行算法的最佳方式,我需要能够在相同的测试集上运行。而且这个测试集必须是冷的。这完全违背了 ZFS 的缓存策略:如果我一次又一次地在同一个测试集上运行,它会将数据放入 ARC 中 - 这在正常情况下是完全有意义的,但在这里不是。

我可以在我的开发计算机上导出/导入,但无法在生产中执行此操作。然而,刷新缓存在生产中可以接受的。

我更喜欢 ARC 仍然有效,因此冷数据在读取后会被缓存(再次类似于 ext4),但我可以在测试期间完全禁用 ARC。

zfs-l2arc zfsonlinux

5
推荐指数
1
解决办法
3699
查看次数