我想在 debian linux 服务器上进行一些常规的磁盘 io 监控。关于监视器磁盘 io,我应该了解哪些工具,以便我可以查看磁盘的性能是否在一天中的特定时间达到最大值或峰值?
是否有一个命令可以列出所有分区及其标签?sudo fdisk -l并且sudo parted -l默认不显示标签。
编辑:(根据下面的评论)我说的是 ext2 标签 - 您可以在gparted分区时设置的标签。
EDIT2:目的是列出未安装的分区(所以我知道要安装哪个)。
我有时需要将磁盘插入磁盘托架。在其他时候,我有一个非常奇怪的设置,即使用笔记本电脑上的 SATA-eSATA 电缆连接 SSD,同时从台式机上取电。
如何安全地从系统中移除 SATA 磁盘?这个Phoronix论坛帖子有一些建议:
justsumdood 写道:
An(noymous)droid 写道:
那么在拔掉插头之前你在软件方面做了什么?它是一个简单的“umount /dev/sd”[驱动器号]吗?卸载设备后,要“关闭”(或休眠)设备:Run Code Online (Sandbox Code Playgroud)hdparm -Y /dev/sdX(其中 X 代表您要关闭的设备。例如:/dev/sdb)
这将使驱动器断电,以便在没有电压浪涌风险的情况下将其移除。
这是否意味着磁盘缓存会在此后正确刷新并关闭电源?
来自同一线程的另一个建议:
chithanh 写道:
所有 SATA 和 eSATA 硬件都可以在物理上进行热插拔(即如果插入/拔出插头不会损坏)。芯片组和驱动程序如何处理这是另一个问题。某些驱动程序/芯片组组合不能正确处理热插拔,需要一个热插拔命令,例如以下命令:
Run Code Online (Sandbox Code Playgroud)echo 0 - 0 > /sys/class/scsi_host/hostX/scan将 X 替换为适合您的 SATA/eSATA 端口的编号。
我怀疑这样做是否正确,但我也找不到一些证据来反对它。
那么,从系统中删除附加磁盘的正确方法是什么?假设我已经卸载了磁盘上的每个分区并运行了sync. 如果可能,请指向一些官方文档,我在 Linux 文档树或Linux ATA wiki 中找不到任何内容。
我以前认为文件更改直接保存到磁盘中,即我关闭文件并决定单击/选择保存。然而,在最近的一次谈话中,我的一个朋友告诉我这通常不是真的。操作系统(特别是我们谈论的 Linux 系统)将更改保留在内存中,并且它有一个守护进程,实际上将内容从内存写入磁盘。
他甚至举了外部闪存驱动器的例子:它们被安装到系统中(复制到内存中),有时会发生数据丢失,因为守护进程尚未将内容保存到闪存中;这就是我们卸载闪存驱动器的原因。
我对操作系统的功能一无所知,因此我完全不知道这是否属实以及在何种情况下。我的主要问题是:这是否像在 Linux/Unix 系统(以及其他操作系统)中描述的那样发生?例如,这是否意味着如果我在编辑和保存文件后立即关闭计算机,我所做的更改很可能会丢失?也许这取决于磁盘类型——传统硬盘与固态磁盘?
该问题专门针对具有磁盘来存储信息的文件系统,即使任何澄清或比较都受到好评。
我使用的是 Ubuntu 12.04,当我右键单击我的闪存驱动器图标(在 Unity 左侧栏中)时,我得到两个让我感到困惑的选项:弹出和安全删除.
我越接近答案是这个论坛帖子,它得出的结论是(对于闪存驱动器)它们既相同又等效于使用umount命令。然而,这最后的断言似乎是错误的。
如果我使用umount从控制台卸载我的闪现潜水,然后我使用命令lsblk,我仍然可以看到我的设备(当然,MOUNTPOINT 下没有任何内容)。另一方面,如果我弹出或安全移除我的闪存驱动器,lsblk则不再列出它。
所以,我的问题是,真正重现弹出和安全删除行为的控制台命令/命令是什么?
可以通过lscpu命令获取CPU信息,Linux终端有没有类似的命令获取硬盘信息?
我需要不时安全地擦除硬盘,并使用了各种工具来做到这一点:
cat /dev/zero > /dev/diskcat /dev/urandom > /dev/diskshredbadblocks -w所有这些都有一个共同点,即它们需要很长时间才能运行。
在一种情况下 cat /dev/urandom > /dev/disk杀死了磁盘,显然是过热了。
是否有一种“足够好”的方法来实现及时使磁盘上的任何数据无法使用?覆盖超级块和几个具有战略意义的块或类似的东西?
磁盘(包括旋转和 ssd)来自捐赠的计算机,之后将用于在其上安装 Linux-Desktops,分发给买不起计算机但需要一台计算机的人。
捐赠计算机的磁盘通常不会被加密。有时捐助者甚至不会事先考虑删除文件。
更新:
从目前得到的答案来看,似乎没有偷工减料。我最好的选择可能是设置一台实验室计算机来一次擦除多个磁盘。要求大公司捐款的另一个理由:-)
谢谢大家!
有人可以向我解释一下,mdadm直接使用分区或整个磁盘创建阵列有什么区别?假设我打算使用整个驱动器。
想象一下以两种方式创建的 RAID6,其中一种是:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Run Code Online (Sandbox Code Playgroud)
或者:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Run Code Online (Sandbox Code Playgroud)
这两种变体中的任何一种有什么区别,以及可能出现的问题?
例如,我指的是此类阵列上的可靠性或可管理性或恢复操作等。
如何在 Linux 中使用命令行或以编程方式分别获得读写 IOPS?我已经安装了sysstat包。
请告诉我如何使用sysstat包命令分别计算这些。
或者,是否可以使用文件系统计算它们?
例如: /proc或/sys或/dev
disk ×10
linux ×4
command-line ×2
io ×2
partition ×2
eject ×1
filesystems ×1
hot-plug ×1
mdadm ×1
performance ×1
process ×1
read ×1
sata ×1
security ×1
ssd ×1
unmounting ×1
write ×1