周末搞了套机器,E8400+ASUS P5Q,超到4G,挺爽。搞定后直接上ubuntu 8.10,想把工作环境迁移上去。
android的编译等都挺正常。接下来就是配置nfs等。想先用nfs跑起来。但很奇怪的是,nfs能够正常mount,也能创建文件夹,但是就是DEX core.jar的时候就卡住了, 也出现了nfs waiting之类的等待消息。初步判断是大数据的写有问题。
经google一查,也有不少人遇到此问题,多数通过配置nfs的读写块大小解决。尝试了一下kernel参数,rsize=1024 wsize=1024,但并没解决问题。暂时放下了。
白天思考了一下,因为朋友也用8.10的nfs,应该nfs本身,不太可能存在问题(配置也很简单)。应该是新网卡(千兆)的配置或者与target的通信问题。最后无意中注意到了自动配置的host eth0的MTU,仅仅才576!如果有大块数据,又没分包传,那肯定就会卡住。于是修改MTU为1500,问题解决。android顺利跑了起来。
解决这类问题,得明白的找准问题可能出现的地方,通过排除法和分析等去准确的定位问题。这样一来,即使出现问题的地方是平时不太关注的(比如这MTU),也很容易顺理成章的,又如神来之笔般解决。
附转帖的完美解决方案:
8.10每次连接时mtu自动设置为576。查阅论坛多个相关主题,终于解决了这个问题。
先修改/etc/NetworkManager/nm-system-settings.conf,将managed=false改为true
再修改/etc/network/interfaces文件的内容如下,重启就对了(注:我是通过路由器上网,路由器已设置mtu为1480,故并没有设置mtu,具体IP和DNS根据实际情况设置的):