wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:1359回复:12

一个非常严重的问题,100分求助

楼主#
更多 发布于:2005-04-10 07:06
虚拟磁盘读写一个大文件时 ,因为读写操作中我加入了额外的操作,(不加这些额外的操作没问题,额外的操作只是简单的把数据保存到数据库,要对你系统有影响也只是时间延迟了)经常会使系统挂起,我怀疑是超时导致RESETBUS,SCSIMINIPORT中的超时是怎么回事,我怎样
控制它呢?
21世纪是搜索的世界,看看BAIDU的股票就知道了。
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-04-10 09:55
虚拟磁盘读写一个大文件时 ,因为读写操作中我加入了额外的操作,(不加这些额外的操作没问题,额外的操作只是简单的把数据保存到数据库,要对你系统有影响也只是时间延迟了)经常会使系统挂起,我怀疑是超时导致RESETBUS,SCSIMINIPORT中的超时是怎么回事,我怎样
控制它呢?
 

是单机环境吗?
有可能是在单机条件下造成死锁的原因
---内核开发合作或提供基础技术服务QQ:22863668 ---
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-10 12:16
是单机环境 ,这与单机环境有关系吗。我测试了一下,感觉主要问题在于 超时了,但是格式化的时候 系统也写很大的数据,不知道怎么回事,格式化没啥问题。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-10 15:55
虚拟磁盘读写一个大文件时 ,因为读写操作中我加入了额外的操作,(不加这些额外的操作没问题,额外的操作只是简单的把数据保存到数据库,要对你系统有影响也只是时间延迟了)经常会使系统挂起,我怀疑是超时导致RESETBUS,SCSIMINIPORT中的超时是怎么回事,我怎样
控制它呢?
 

那就将操作队列起来,慢慢处理 :D :D :D
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-11 09:09
虚拟磁盘读写一个大文件时 ,因为读写操作中我加入了额外的操作,(不加这些额外的操作没问题,额外的操作只是简单的把数据保存到数据库,要对你系统有影响也只是时间延迟了)经常会使系统挂起,我怀疑是超时导致RESETBUS,SCSIMINIPORT中的超时是怎么回事,我怎样
控制它呢?
 

说得不太详细,请将保存数据库的代码附上
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-04-11 12:45
是单机环境 ,这与单机环境有关系吗。我测试了一下,感觉主要问题在于 超时了,但是格式化的时候 系统也写很大的数据,不知道怎么回事,格式化没啥问题。

怎么处理都一样,单机环境都会死锁,包括在数据库中
换成双机环境试试,如果还不行,那还存在其他问题。
---内核开发合作或提供基础技术服务QQ:22863668 ---
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-11 14:14
双机也不行,我感觉还是超时的问题,因为现在我用的TDICLIENT每次发送512byte,最多可以一次发送3072,大文件的一次请求写数据一般为56*512,不能够一次把磁盘请求的数据全部发送到数据库,这样数据比较大的时候可能延迟较大。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-11 16:12
送zhangshengyu100分,感谢zhangshengyu兄弟长期以来的帮助。
另外问一下, 磁盘发出的写请求的位置参数是一个LARGE_INTEGER pos变量,我把pos.QuadPart输出了怎么都很大啊 比如像168650240这样,
她是以字节为单位吗。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-04-11 18:22
双机也不行,我感觉还是超时的问题,因为现在我用的TDICLIENT每次发送512byte,最多可以一次发送3072,大文件的一次请求写数据一般为56*512,不能够一次把磁盘请求的数据全部发送到数据库,这样数据比较大的时候可能延迟较大。


发不了这么大没关系呀,可以分几次发嘛。
---内核开发合作或提供基础技术服务QQ:22863668 ---
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2005-04-11 18:24
送zhangshengyu100分,感谢zhangshengyu兄弟长期以来的帮助。
另外问一下, 磁盘发出的写请求的位置参数是一个LARGE_INTEGER pos变量,我把pos.QuadPart输出了怎么都很大啊 比如像168650240这样,
她是以字节为单位吗。

都是以字节的
你用了TDI 那关键是可能是数据问题造成TDI出现了问题,最好是进行单元测试,把TDI搞定了,再挪到驱动中,否则以后出现问题比较麻烦。
---内核开发合作或提供基础技术服务QQ:22863668 ---
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-12 16:48
读一个文件的时候,读取文件的开始位置这个参数当文件比较大时,是不是很大阿。除了按照位置组织,有没有更好的文件组织方式。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2005-04-13 09:44
[quote]虚拟磁盘读写一个大文件时 ,因为读写操作中我加入了额外的操作,(不加这些额外的操作没问题,额外的操作只是简单的把数据保存到数据库,要对你系统有影响也只是时间延迟了)经常会使系统挂起,我怀疑是超时导致RESETBUS,SCSIMINIPORT中的超时是怎么回事,我怎样
控制它呢?
 

那就将操作队列起来,慢慢处理 :D :D :D [/quote]
额外的操作只是简单的把数据保存到数据库

建一个队列,内核只把数据考到队列,界面负责放到database.
琢磨悟真知
wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-04-13 10:34
你是说建一个内核对列,然后把队列的数据保存到数据库。
21世纪是搜索的世界,看看BAIDU的股票就知道了。
游客

返回顶部