我正在执行一些 IO 密集型数据库导入,现在运行了几天,并且 IO 性能随着时间的推移而大幅下降。DB 数据文件(日志文件)位于 ext4 格式的逻辑卷上,该逻辑卷使用默认选项挂载(未在 fstab 中指定特殊内容)。由于我刚刚了解到ext4默认启用写屏障: 问:有没有办法在线禁用写屏障(即文件系统正在使用中),因为我无法中断导入并且不想再次重新启动它。我知道
我需要将一个目录“绑定”到许多 chroot 位置。我知道我可以执行“mount -o bind”,但这需要每次启动时进行特殊处理(运行安装)。
有没有办法直接在文件系统上执行此操作?我的文件系统是ext4,它似乎不支持目录的硬链接。硬链接里面的所有文件也不是一个选项。
有没有办法启用 ext4 中目录的硬链接?或者还有其他可用的选择吗?
Logwatch 给我以下错误:
WARNING: Kernel Errors Present
EXT4-fs (sda1): error count: 4 ...: 1 Time(s)
EXT4-fs (sda1): initial error at 1350482172: e ...: 1 Time(s)
EXT4-fs (sda1): last error at 1350941030: e ...: 1 Time(s)
Run Code Online (Sandbox Code Playgroud)
和 /var/log/kern.log 给了我这个:
Feb 3 17:01:37 localhost kernel: [172881.883105] EXT4-fs (sda1): error count: 4
Feb 3 17:01:37 localhost kernel: [172881.883110] EXT4-fs (sda1): initial error at 1350482172: ext4_reserve_inode_write:4475
Feb 3 17:01:37 localhost kernel: [172881.883114] EXT4-fs (sda1): last error at 1350941030: ext4_remount:4428
Run Code Online (Sandbox Code Playgroud)
当我运行 fsck 时,它说磁盘没问题。任何人都可以更详细地解释内核错误是什么,以及如何修复它?
我有几百个文件夹需要迁移到新服务器。我被要求为每个单独的文件夹创建一个 xfs FS 。Ran a du 所以我知道每个文件夹的确切大小和指定的 1G 块大小。
如何计算创建每个虚拟磁盘所需的大小?用 xfs 格式化后,我失去了一些空间。
TL;DR 如何
ext4从损坏的 RAID1 分区恢复文件系统?
我有一个属于 Synology DiskStation 上的 RAID1 阵列的故障磁盘,另一个丢失了。使用ddrescue我已将大部分相关数据复制到新磁盘。分区表幸免于难,但是一些对 RAID 设置必不可少的块已损坏。
# fdisk -l /dev/sdd
Disk /dev/sdd: 3000.6 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0003f44a
Device Boot Start End Blocks Id System
/dev/sdd1 256 4980735 2490240 fd Linux raid autodetect …Run Code Online (Sandbox Code Playgroud) 我有一台 128 GB RAM 和 100 GB 硬盘的服务器。在 rsyncing 磁盘时,它似乎使用了相当多的交换空间,而不是使用实际的 RAM。我在 Stack Overflow 上发现了其他类似问题的问题,但没有一个有真正的解决方案。这是“glances”的输出:
服务器通常不会使用 128 GB RAM,那么禁用交换是否安全?这会提高系统的速度还是会破坏某些东西?
或者我可以告诉 Ubuntu 使用物理 RAM,而不是使用交换区吗?
我正在尝试在 Fedora 11 机器上调整 ext4 文件系统的大小。使用 fsdisk 和 lvm,我能够增加包含文件系统的分区和逻辑卷。
当我尝试在包含文件系统(在本例中为 /dev/sda2)的设备上运行 resize2fs 时,我得到:
“尝试打开 /dev/sda2 时设备或资源繁忙,找不到有效的文件系统超级块”
我已经从没有安装文件系统的救援磁盘中尝试过这个,没有乐趣。
也许 resize2fs 不知道 ext4?
我在根分区上遇到磁盘空间问题,因此我查看了不重要的日志并删除了可以删除的内容。
其中一个文件“mysql-slow.log”有 32GB 大,但当我删除它时,它从未释放磁盘空间。我使用df -h命令来检查。
根分区格式化为 ext4。
谢谢,
我有一个服务守护进程,它创建了很多临时文件。最近我的服务器死了,因为一个恶意用户设法淹没 /tmp 并填满磁盘。我已经采取了一些措施来主动清理临时目录,但另外我想限制这个应用程序临时目录的最大大小。
有什么方法可以创建目录,例如,/apptmp永远不会大于 10G?我知道我可以按用户设置磁盘限制,但我只想限制这个 tmpdir;应用程序应该始终能够在其他地方写入。
我正在运行 Ubuntu Linux 12.04。
编辑:所有这些最终都应该包含在一个可安装的 Ubuntu 包中。所以我不认为我想依赖修改分区,除非我能以某种方式模拟它。
我有一个很大的目录,里面有很多缓存文件,我想重新组织这些文件以获得最大性能(访问时间)。
PHP/Perl 脚本(随机)访问文件。这些脚本生成绝对路径并读取文件。没有目录列表:几乎只有fopen文件的绝对路径。
当前目录层次结构是:cacheDir/d4/1d/d41d8cd98f00b204e9800998ecf8427e.dat
所以有 256 个一级子目录(d4在示例中)和 256 个二级子目录(1d在示例中)。平均每个二级目录大约有 200-300 个文件。
问题:当出现网络流量高峰和大量fopen's in 时cacheDir,流量iowait正在增长,减慢系统速度,出现非常高的负载和明显的延迟。只有在cacheDir访问文件时才会出现这种高负载。如果我以相同的频率访问其他目录/文件,则磁盘和系统运行良好。
我想知道更改缓存目录结构是否会提高性能?更改为(例如):(cacheDir/d/4/1/d/8/d41d8cd98f00b204e9800998ecf8427e.dat16 个子目录在:1st、2nd、3rd、4th 级别,并且(平均)每个 4th 级别子目录有 15 个文件)。
我知道在简单的台式机 SATA III 驱动器上的 Software RAID 1 不是速度怪物,但也许有一些优化文件系统的好方法?
请注意:
dir-indexnoatimee2fsck -Df