LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: allisfree

求助:文件拷贝严重影响系统性能

[复制链接]
发表于 2009-4-5 22:41:38 | 显示全部楼层
我从来不用GUI拷贝大量文件的,不安全、不放心。
回复 支持 反对

使用道具 举报

发表于 2009-4-5 22:50:39 | 显示全部楼层
ReiserFS就是删除大文件太慢换回EXT3,爽!

ReiserFS删除一个4G文件好像要15~30分钟,可能没死机误以为死机了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-6 10:25:12 | 显示全部楼层
自己找了点东西

anyone noticed how copying GBs of data makes any linux distro crawl
I have this problem and it sounds like I need to look at my scheduler, but another related tip is that you can use ionice and nice to put some processes (like your backup) at a lower priority.

nice -n 19 ionice -c3 <backup program or cp or whatever>

<edit>
To play with the schedulers check:
/sys/block/<DriveBlockDevice>/queue/scheduler (such as /sys/block/sda/queue/scheduler)

cat it to see what schedulers you have, the current on is in []:
noop anticipatory deadline [cfq]

and:
echo deadline > scheduler
cat scheduler
noop anticipatory [deadline] cfq
</edit>

个人倾向于使用deadline,因为懒得再去aur编译ionice

原帖中还提到另外一个方法,就是设置swappiness,许多人报告说很有效。

晚上回家测试哈
回复 支持 反对

使用道具 举报

发表于 2009-4-6 11:05:22 | 显示全部楼层
在2.6的内核**计有4种IO调度机制(第一次发现在 Linuxsir 上被那什么了,第一个 * 是中间的中字,第二个是总共的共字,但如果连写就会变成 ** ),Arch 默认的是 cfq 机制:

1.NOOP: 对于 IO 不那么操心,对所有的 IO请求都用 FIFO 队列形式处理,默认认为 IO 不会存在性能问题。这也使得 CPU 也不用那么操心。当然,对于复杂一点的应用类型,使用这个调度器,用户自己就会非常操心。

2.Anticipatory scheduler:  曾经一度是 Linux 2.6 Kernel 的 IO scheduler 。Anticipatory 的中文含义是”预料的, 预想的”, 这个词的确揭示了这个算法的特点,简单的说,有个 IO 发生的时候,如果又有进程请求 IO 操作,则将产生一个默认的 6 毫秒猜测时间,猜测下一个 进程请求 IO 是要干什么的。这对于随即读取会造成比较大的延时,对数据库应用很糟糕,而对于 Web Server 等则会表现的不错。这个算法也可以简单理解为面向低速磁盘的,因为那个”猜测”实际上的目的是为了减少磁头移动时间。

3.Deadline scheduler: 用 deadline 算法保证对于既定的 IO 请求以最小的延迟时间,从这一点理解,对于决策支持系统 (DSS应用) 应该会是很适合的。

3.Completely Fair Queuing (cfq):  虽然这世界上没有完全公平的事情,但是并不妨碍开源爱好者们设计一个完全公平的 IO 调度算法。Completely Fair Queuing (cfq, 完全公平队列) 在 2.6.18 取代了 Anticipatory scheduler 成为 Linux Kernel 默认的 IO scheduler 。cfq 对每个进程维护一个 IO 队列,各个进程发来的 IO 请求会被 cfq 以轮循方式处理。也就是对每一个 IO 请求都是公平的。这使得 cfq 很适合离散读的应用(eg: OLTP DB)。我所知道的企业级 Linux 发行版中,SuSE Linux 好像是最先默认用 cfq 的.

这四种IO调度机制都有最适宜应用的情况,因此不能说哪一个就一定最好。

修改方法:
# echo <IO调度机制> >/sys/block/sda/queue/scheduler
回复 支持 反对

使用道具 举报

发表于 2009-4-6 12:42:04 | 显示全部楼层
Post by coderoar;1970289
我从来不用GUI拷贝大量文件的,不安全、不放心。


我遇到过更诡异的问题,居然拷贝的时候出错,rar文件很多都损坏了,修也修不好,郁闷啊。我原以为可能是硬盘坏了,但现在想想或许和GUI拷贝机制也有关系。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-6 13:23:08 | 显示全部楼层
我都不敢mv,虽然mv的机制好像是先cp,再rm
回复 支持 反对

使用道具 举报

发表于 2009-4-6 14:01:46 | 显示全部楼层
mv 只有在跨文件系统时才会先复制再删源吧,同文件系统是真正的移动目录项。
**也……
回复 支持 反对

使用道具 举报

发表于 2009-4-6 14:05:59 | 显示全部楼层
mv 只有在跨文件系统时才会先复制再删源吧,同文件系统是真正的移动目录项。
**二字也会被和谐?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-6 18:02:25 | 显示全部楼层
Post by ch_fb;1970482
mv 只有在跨文件系统时才会先复制再删源吧,同文件系统是真正的移动目录项。
**也……


确切的说应该是跨分区吧,同分区内那是改个分区表,飞快
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-6 23:14:48 | 显示全部楼层
个人测试,使用deadline无效果,使用vm.swappiness=1和vm.vfs_cache_pressure=50有明显改善(不是说不卡了),但拷贝速度似乎也慢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表