相关疑难解决方法(0)

Linux - 真实世界的硬件 RAID 控制器调整(scsi 和 cciss)

我管理的大多数 Linux 系统都具有硬件 RAID 控制器(主要是HP Smart Array)。他们都在运行 RHEL 或 CentOS。

我正在寻找真实世界的可调参数,以帮助优化将硬件 RAID 控制器与 SAS 磁盘(智能阵列、Perc、LSI 等)和电池后备或闪存后备缓存相结合的设置的性能。假设 RAID 1+0 和多个主轴(4 个以上的磁盘)。

我花了大量时间为低延迟和金融交易应用程序调整 Linux 网络设置。但其中许多选项都有详细记录(更改发送/接收缓冲区、修改 TCP 窗口设置等)。工程师在存储方面做什么?

从历史上看,我对I/O 调度电梯进行了更改,最近选择了deadlinenoop调度程序来提高我的应用程序的性能。随着 RHEL 版本的进步,我还注意到 SCSI 和 CCISS 块设备的编译默认值也发生了变化。随着时间的推移,这对推荐的存储子系统设置产生了影响。但是,我已经有一段时间没有看到任何明确的建议了。而且我知道操作系统默认设置不是最佳的。例如,对于服务器级硬件上的部署而言,128kb 的默认预读缓冲区似乎非常小。

以下文章探讨了更改预读缓存和nr_requests值对块队列的性能影响。

http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux-why-tuning-really-matters
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html

例如,以下是 HP Smart Array RAID 控制器的建议更改:

echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler 
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
Run Code Online (Sandbox Code Playgroud)

还有什么可以可靠地调整来提高存储性能?
我专门在生产场景中寻找 sysctl 和 sysfs 选项。

storage hp performance-tuning hp-smart-array hardware-raid

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

确定哪个进程导致大量磁盘 I/O?

我见过这个问题: 如何识别大量写入磁盘?

而且我之前使用过dstatatop ……但它们似乎没有指出是什么进程导致了磁盘 I/O。例如,来自 dstat:

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0 …
Run Code Online (Sandbox Code Playgroud)

linux performance io

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

Openfiler iSCSI 性能

希望有人能指出我遇到的一些 iSCSI 性能问题的正确方向。我在较旧的 ProLiant DL360 G5 上运行 Openfiler 2.99。双 Xeon 处理器、6GB ECC RAM、英特尔千兆服务器网卡、SAS 控制器和 RAID 5 中的 3 个 10K SAS 驱动器。当我直接从盒子运行一个简单的写测试时,性能非常好:

[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.64468 s, 226 MB/s
Run Code Online (Sandbox Code Playgroud)

因此,我创建了一个 LUN,将其连接到另一个运行 ESXi 5.1(Core i7 2600k、16GB RAM、英特尔千兆服务器网卡)的机器上,并创建了一个新的数据存储。一旦我创建了数据存储,我就能够创建并启动一个运行 CentOS 的虚拟机,它有 2GB 的 RAM 和 16GB 的磁盘空间。操作系统安装得很好,我可以使用它,但是当我在 VM 中运行相同的测试时,我得到了截然不同的结果:

[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 26.8786 …
Run Code Online (Sandbox Code Playgroud)

iscsi performance-tuning openfiler hp-proliant vmware-esxi

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