星期日, 三月 17, 2013

强制Windows XP硬盘IDE控制器运行DMA模式


前几天电脑速度突然变慢,找了许久不见原因,又不太想重装。无意发现硬盘运行时CPU占用50%(双核,一个核占满),去设备管理器检查确认硬盘运行于PIO模式,但是直接在设备管理器中修改不管用,Google知需要修改注册表,主要项目和其对应关系为:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
000 - IDE控制器本身
001 - 主通道
002 - 从通道
需要修改的项目在001或者002下,根据主板上硬盘挂载口不同选择,主要项目是MasterDeviceTimingMode/MasterDeviceTimingModeAllowed/SecondaryDeviceTimingMode/SecondaryDeviceTimingModeAllowed这四项,其中Master和Slave各对应两项,内容含义为(十六进制):
UDMA 6 (Ultra ATA 133) = 10010
UDMA 5 (Ultra ATA 100) = 10010
UDMA 4 (Ultra ATA 66) = 8010
UDMA 3 = 6010
UDMA 2 = 2010
PIO Only = 10
Multi-word DMA Mode 2 = 410 (For most burners)
Multi-word DMA Mode 1 = 210
因为这台电脑的硬盘是支持DMA100的,而且连接在主通道Master接口上,所以将001下的MasterDeviceTimingMode/MasterDeviceTimingModeAllowed改为10010,重新启动电脑,检查设备管理器,硬盘传输模式重新变为DMA100,电脑速度也恢复正常。
根据MS官方的说法,Windows在硬盘传输过程中如果发生多次数据校验错误会自动把硬盘降一个档次使用,从DMA变为PIO方式。所以,如果发生这种情况,应该检查硬盘数据线是否正常,如果更换不能解决,应该考虑备份数据,可能需要换硬盘。

星期二, 三月 05, 2013

网络尖兵造成的网络不稳定情况解决


用铁通的网络一直感觉不怎么稳定,表现是有些网站有时能打开有时打不开,很多图片打不开,或者就是有些网站慢得很不正常。昨天突然变得更差,几乎一半网站都不能打开,traceroute时到222.41.131.230就会失败,在网上查了一下有人有同样的问题,但是都不知道原因。本来想打电话给客服,但是估计客服会先让把路由断开直接拨号试,于是先自己测试,断开路由直接拨号果然上网正常了,这样基本上确认铁通用了网络尖兵等技术手段劣化用路由上网用户的网络体验,强制每户用户买他多个账号(强烈谴责并鄙视这种流氓行径!)。
在网上搜了一下看到网络尖兵的原理就是通过判断ip包中ttl是否为标准值(64, 128, 255)确定用户是否用了路由,试了下从自己pc上和路由上分别ping某网站,果然ttl差一。这样解决思路就很清晰了,用iptables把出口ttl值强制设置成统一值(进来的包不用管),命令如下:
iptables -t mangle -A POSTROUTING -o ppp0 -j TTL --ttl-set 128
设置完成后再测试网络基本恢复正常。再次鄙视一下垄断运营商让人不齿的所作所为!