AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 738586
Accepted
jcrossbeam
jcrossbeam
Asked: 2015-11-25 02:16:26 +0800 CST2015-11-25 02:16:26 +0800 CST 2015-11-25 02:16:26 +0800 CST

极慢的磁盘速度 Centos 6

  • 772

设置如下所示:

  • HP Proliant DL380 G7
  • 6 个 3TB SATA 驱动器(监控级别),配置有硬件 RAID 1+0,板载 SATA 控制器。型号为希捷 SV35
  • 192GB 内存

VMware ESXi 6.0

  • 一台运行 Centos 6.7(内核 2.6.32-573)的 VM 来宾

数据存储由 ESXi 安装后的所有剩余磁盘空间组成(略小于 8tb)

  • 1 个 VMDK 文件,用于 100GB 的系统分区
  • 1 个用于数据分区的 VMDK 文件,大小约为 7.7TB

在来宾 CentOS 上,系统分区是 LVM ext4
数据分区是具有单个 PV、LV 和 VG ext4 的 LVM

现在我遇到的问题是磁盘上的数据传输速度非常慢。尝试将半大文件(10-30 GB)从 LVM 上的一个地方复制到 LVM 上的另一个地方,传输速率大约为 240MB/s,这是我期望的速度,但只是几秒钟后(通常为 30 左右),它下降到 1-4 MB/s,查看 iotop 告诉我一个名为 flush-253:2 的进程开始运行,这似乎减慢了一切。

我一直在使用 rsync --progress 来更好地实时了解传输速度,但是我在 cp 操作中看到了相同的结果。

当它最终完成时,我尝试再次执行相同的过程,将相同的文件放在相同的位置。第二次 rsync 指示的传输速度在整个传输过程中保持稳定在 240MB/s 左右,但是当 rsync 指示文件传输完成时,它会在该状态下挂起大约与完成第一个复制过程所需的时间一样长。我可以看到 flush-253:2 进程对这两个程序都一样努力。

现在我知道设置不是最佳的,我更愿意为 ESXi 系统设置一个单独的磁盘,但我不认为这应该是导致传输速度极慢的原因。

我搜索了有关刷新过程的信息,据我所知,它基本上将数据从内存写入实际磁盘,但我没有发现有人说他们经历过这种缓慢的传输速率. 该系统尚未投入生产,CPU 几乎根本没有运行,并且当复制程序运行时,它有大约 100GB 的可用内存可供使用。

有谁知道要尝试什么?我在不同的系统上看到了类似的结果,该系统基本上以相同的方式设置,除了完全不同(稍微小一些)的硬件。我还有第三个系统在 LVM 上运行 CentOS 5 和 ext3,它没有任何类似的问题。

编辑1: 我意识到现在记错了,系统分区也是lvm,但仍然是与数据分区分开的卷

[root@server /]# mount
/dev/mapper/vg1-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg1-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vg_8tb-lv_8tb on /datavolume type ext4 (rw,nobarrier)


[root@server /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_1-lv_root<br>
                       50G  9.7G   37G  21% /
tmpfs                  91G     0   91G   0% /dev/shm
/dev/sda1             477M   52M  400M  12% /boot
/dev/mapper/vg_1-lv_home
                       45G   52M   43G   1% /home
/dev/mapper/vg_8tb-lv_8tb
                      7.9T  439G  7.1T   6% /datavolume

更新 1:我尝试将dirty_ratio 一直增加到 90,但仍然没有看到任何改进。我还尝试使用 -o nobarriers 安装它,结果仍然相同

更新 2: 对于所有试图帮助我解决困惑的人,我很抱歉,现在我自己看过了,硬件实际上是 HP Proliant 380 G7,我不知道这是否有什么不同。

我也看过raid配置,似乎我们使用的是P410 raid控制器,当我启动raid管理时,它说

HP Smart array (I think) P410 "SOMETHING", with 0MB in parenthesis

我猜这可能意味着我们有 0MB 的写入缓存?

关于硬件,我在这里有点不了解,如果尚不存在此raid控制器,您能否向该raid控制器添加一个写缓存模块(?)?或者您是否需要新的控制器/迁移到 SAN?我怎么知道它是否有写缓存,但电池可能没电了?

更新 3: 感谢您的建议和一些进一步的研究,我现在将尝试在 ESXi 中安装 HP 智能阵列驱动程序 vib 文件,并希望能更清楚地了解我所拥有的。我还在系统 BIOS 中找到了启用驱动器缓存的选项,所以我可能有最后的手段,以防我们在控制器上没有写缓存。

更新 4(已解决): 感谢所有提出解决方案的人,是的,事实证明磁盘控制器上没有缓存模块。

对于遇到类似问题的任何人,我为 ESXi 安装了 hpssacli 实用程序 VIB,并且可以通过以下输出确认回复中的建议。

缓存板存在:错误

Smart Array P410i in Slot 0 (Embedded)
Bus Interface: PCI
Slot: 0
Serial Number: 
Controller Status: OK
Hardware Revision: C
Firmware Version: 6.62
Rebuild Priority: Medium
Surface Scan Delay: 15 secs
Surface Scan Mode: Idle
Parallel Surface Scan Supported: No
Wait for Cache Room: Disabled
Surface Analysis Inconsistency Notification: Disabled
Post Prompt Timeout: 0 secs
Cache Board Present: False
Drive Write Cache: Disabled
Total Cache Size: 0 MB
SATA NCQ Supported: True
Number of Ports: 2 Internal only
Driver Name: HP HPSA
Driver Version: 5.5.0
PCI Address (Domain:Bus:Device.Function): 0000:05:00.0
Host Serial Number: 
Sanitize Erase Supported: False
Primary Boot Volume: logicaldrive 1
Secondary Boot Volume: None
linux
  • 4 4 个回答
  • 5667 Views

4 个回答

  • Voted
  1. shodanshok
    2015-11-25T05:17:53+08:002015-11-25T05:17:53+08:00

    您的 RAID 控制器似乎没有缓存。主要问题是硬件 RAID 卡在默认情况下倾向于禁用磁盘的私有 DRAM 缓存。

    简而言之,这意味着当几秒钟后(准确地说是大约 30 秒)脏页缓存将被刷新到磁盘时,大量的随机 I/O 请求开始敲击您的(慢速)机械磁盘,从而扼杀吞吐量。

    重新启用磁盘的私有 DRAM 缓存(通常是 RAID 控制器选项),性能应该会提高。为了更快的写入,您可以关闭写入​​屏障(使用挂载选项),但不幸的是,如果没有 BBU 缓存,在系统崩溃/断电的情况下nobarrier关闭它们会影响您的数据可靠性。

    编辑:在这里查看更多信息。

    • 2
  2. Best Answer
    ewwhite
    2015-11-25T04:09:31+08:002015-11-25T04:09:31+08:00

    它看起来好像没有任何写缓存。

    请确认您的服务器的世代和型号。如果您的磁盘所连接的控制器上没有闪存支持的写入缓存模块 (FBWC),那么您的 VMware 性能将会受到影响。

    这里的另一个问题是 LVM 和几年前出现在 RHEL6 中的一些默认设置。你会想通过禁用写屏障来尝试这个。LVM 可能是一个问题,因为它会导致人们避免对他们的卷进行分区......这会影响工具tuned-adm的工作能力。

    我要求输出mount. 你能发一下吗?

    尝试使用no barrier标志安装卷。写屏障是 ext4 上 EL6 的默认设置,因此这是您遇到的最大问题。

    • 1
  3. Fredi
    2015-11-25T03:16:05+08:002015-11-25T03:16:05+08:00

    似乎与此重复:

    Flush-0:n 进程导致巨大的瓶颈

    实际上,您应该检查dirty_ratio,它的情况是第一次写入进入RAM,因此一开始您的IO 速率非常快。稍后,当 RAM 填充到dirty_ratio 时,内核开始填充到磁盘。

    • 0
  4. frupfrup
    2015-11-25T03:16:48+08:002015-11-25T03:16:48+08:00

    一些问题:

    • 您是否为 DL 360 正确安装了所有驱动程序?
    • 这台服务器是哪一代的?它是 G9 服务器吗?
    • 它是什么样的控制器?智能阵列 XXXX?您是否为控制器安装了缓存模块?
    • 您使用原装 HP HDD 吗?

    和两个个人注意事项: - 我认为你永远不会真正达到恒定的 240 MB/s,使用 6 个慢速 SATA 驱动器和 7,2K 和 RAID 10。

    • 我真的不明白:你为什么要买一个 192GB 内存的 DL360(如果是 ECC 内存就不便宜),然后在里面放一些便宜、愚蠢和慢的 SATA 硬盘?你为什么不买一个 380 并在那里放一些更快的 SAS 2,5" 硬盘......举个例子:我认为你可以使用 10 900GB SAS 10k 驱动器或 15 600k 驱动器获得更快的速度......我认为即使您使用 RAID 5,它们也会快得多...好吧,也许您对此别无选择,但我认为服务器的配置真的不好...我知道这种配置不能解释一下你很慢的cp,但无论如何......
    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve