免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 18789 | 回复: 14
打印 上一主题 下一主题

[Linux] linux环境下write怪现象(写入500M耗时20S) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-11 19:38 |只看该作者 |倒序浏览
本帖最后由 cp3alai 于 2016-05-11 19:40 编辑

今天遇到了一个怪现象,因为我最后没有排查到原因,只能尽力描述,希望遇到类似情况的大牛们提供一个思路.
我所作的是一个频繁文件写入的系统,之前都好好的,但是今天突然各种丢包,最后定位到,系统调用write的时候,仅仅写入500M,竟然会卡住10s ~ 20s.
我的环境是CentOS6.5, 文件系统是xfs, 3个2T盘做的raid0,通过dd测试,磁盘写入性能可以达到380M/s .
就像问下各位大神,有没有遇到过类似情况的,你们是怎么处理的?
谢谢!!!
也希望即使没有遇到过类似问题的同学,也能过来发表一下自己的见解,不胜感激.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2016-05-11 21:38 |只看该作者
回复 1# cp3alai


    你是怎么写的?

曾经碰到一个问题,程序一旦打开log,就变得剧慢无比,最后发现是写log的时候频繁 flush,导致系统调用不但量大增多了,而且耗时也增加了。

论坛徽章:
0
3 [报告]
发表于 2016-05-12 10:27 |只看该作者
我自己弄了两个500M的缓冲区,有数据的时候就往其中一个放,放满以后就调用write去同步文件,没有什么特别的地方,然后write就会卡顿20s左右,无论是xfs还是ext4都试过了,都会有这个问题.回复 2# MMMIX


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2016-05-12 22:43 |只看该作者
回复 3# cp3alai


    用 dd 测试一下存储写入速度呢?

论坛徽章:
0
5 [报告]
发表于 2016-05-13 16:05 |只看该作者
测过的,写入速度384M/s,单独写了一個测试程序:往文件里面写500M,仅用0.4s.回复 4# MMMIX


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2016-05-13 18:09 |只看该作者
回复 5# cp3alai


    那估计就只能跟下程序看看是为什么停住了。

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:09
7 [报告]
发表于 2016-05-13 18:12 |只看该作者
本帖最后由 lolizeppelin 于 2016-05-13 18:15 编辑

上代码  打log

500M是什么样子的500M

一次性写入500M 还是一次写一写很多个文件加起来500M

有没有并发写

论坛徽章:
0
8 [报告]
发表于 2016-05-23 12:13 |只看该作者
我试着单步调试过,一次写500M程序很配合的就停在了write这里20s左右,着实怪异.
MMMIX 发表于 2016-05-13 18:09
回复 5# cp3alai

论坛徽章:
0
9 [报告]
发表于 2016-05-23 12:25 |只看该作者
我单步调试过的,程序就是卡在write调用这里.的确存在并发写的情况.三个写文件线程,线程A,一次写入500M,线程B,C一次写入300M,磁盘IO 300M/S, 即使是这三个线程同时并发执行写操作,这个现象也太过怪异.没有理由write会卡顿20S左右的时间.
lolizeppelin 发表于 2016-05-13 18:12
上代码  打log

500M是什么样子的500M

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
10 [报告]
发表于 2016-05-23 14:30 |只看该作者
cp3alai 发表于 2016-05-23 12:25
我单步调试过的,程序就是卡在write调用这里.的确存在并发写的情况.三个写文件线程,线程A,一次写入500M,线程 ...


涉及并发就不好说了。如果可以的话,最好是先把并发停掉/去掉,然后再看看,估计就正常了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP