我有3个硬盘的专用服务器。 系统盘,备份盘(与系统盘相同)和数据盘。 当我用cp复制大量数据时(比如说,在备份磁盘和数据磁盘之间),负载平均值会高出很多。
例如,目前的平均负载约为0.57,拷贝数据时可以超过50或更多。
使用rsync and with --bwlimit=10000进行复制将毫无问题。 较高的值会导致高负载。
文件系统是ext3。
% hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 13444 MB in 2.00 seconds = 6730.82 MB/sec Timing buffered disk reads: 232 MB in 3.02 seconds = 76.73 MB/sec
% hdparm -Tt /dev/sdb /dev/sdb: Timing cached reads: 13740 MB in 2.00 seconds = 6879.30 MB/sec Timing buffered disk reads: 430 MB in 3.00 seconds = 143.10 MB/sec
% hdparm -Tt /dev/sdc /dev/sdc: Timing cached reads: 13796 MB in 2.00 seconds = 6907.75 MB/sec Timing buffered disk reads: 336 MB in 3.01 seconds = 111.45 MB/sec
iostat -x 1(当不复制时): http : //pastebin.com/4WKU7YPa
iostat -x 1(复制时:sdc> sdb): http : //pastebin.com/fHafRCa8
% cat /sys/block/sda/queue/scheduler noop anticipatory deadline [cfq]
另外两个磁盘现在是“截止date”,但也是“cfq”。 试图看看是否会有任何区别。 没有。
任何更多磁盘密集的操作都将终止服务器。 如果某个进程使用更多的内存,并且需要交换,则负载会非常高。 有时我必须杀死一些服务,所以负载可能会下降。 有时候因为交换而导致500的负载。
服务器有4GB RAM和Xeon X3220 @ 2.40GHz。 没有足够的内存时,我可以接受性能不佳的问题,但只是复制不应该终止服务器。 这只是不接缝权利。
任何想法可能是什么问题? 我还应该检查什么? 这可能是错误的主板控制器?
%fdisk -l
磁盘/ dev / sda:500.1 GB,500107862016字节
255个磁头,63个扇区/磁道,60801个磁道
单位= 16065 * 512 = 8225280字节的柱面
设备引导启动结束块Id系统
/ dev / sda1 * 1 13 104391 83 Linux
/ dev / sda2 14 1318 10482412+ 83 Linux
/ dev / sda3 1319 2623 10482412+ 83 Linux
/ dev / sda4 2624 60801 467314785 5扩展
/ dev / sda5 2624 3928 10482381 83 Linux
/ dev / sda6 3929 4189 2096451 82 Linux swap / Solaris
/ dev / sda7 4190 60670 453683601 83 Linux
/ dev / sda8 60671 60801 1052226 83 Linux
磁盘/ dev / sdb:2000.3 GB,2000398934016字节
255个磁头,63个扇区/磁道,243201个磁道
单位= 16065 * 512 = 8225280字节的柱面
设备引导启动结束块Id系统
/ dev / sdb1 1 243201 1953512001 83 Linux
磁盘/ dev / sdc:500.1 GB,500107862016字节
255个磁头,63个扇区/磁道,60801个磁道
单位= 16065 * 512 = 8225280字节的柱面
设备引导启动结束块Id系统
/ dev / sdc1 * 1 60801 488384001 83 Linux
%cat / proc / scsi / scsi
附加设备: 主持人:scsi0频道:00 Id:00 Lun:00 供应商:ATA型号:WDC WD5002ABYS-0版本:02.0 types:直接访问ANSI SCSI修订版:05 主机:scsi0频道:00 Id:01 Lun:00 供应商:ATA型号:WDC WD2003FYYS-0版本:01.0 types:直接访问ANSI SCSI修订版:05 主持人:scsi1频道:00 Id:00 Lun:00 供应商:ATA型号:WDC WD5002ABYS-0版本:02.0 types:直接访问ANSI SCSI修订版:05
我认为你和我在相同的情况下生成很多脏页面阻塞同步写入
被列为最重要的进程之一。
你正在使用日志文件系统,如ext3显然是导致同步写入阻止。
你可以试试
减less进程能够创build的脏内存量:
echo 100000000 > /proc/sys/vm/dirty_background_bytes echo 200000000 > /proc/sys/vm/dirty_bytes
复制的过程不会一次写得太多。 它将写入一段数据,然后确保在写入下一个数据块之前将这些数据刷新到磁盘。 这将确保日志线程没有太多的工作,并且仍然能够在复制发生时处理来自其他进程的请求。
你可以尝试的另一件事是做与dd副本,并确保您正在同步写入:
dd if=foo of=bar bs=4096 oflag=sync
这也将确保块一点一点地写入。
而且,如果它与您的使用案例相匹配,则可以在目标文件夹中删除日记,只要您了解风险即可。 您可以使用该选项重新安装您的(我想是ext3?)文件系统
data=writeback
这些是我用我的系统试过的东西。 这个问题在2年前就已经开放了,您是否同时find了解决scheme?