|  |      1bengtuo      2015-05-19 19:15:07 +08:00 上  mapreduce 哈哈 | 
|      2yuanfangyao      2015-05-20 00:20:25 +08:00 也许是卡在磁盘io上,文件拷到内存里再awk呢? | 
|  |      3ysjdx      2015-05-20 08:47:03 +08:00 parallel | 
|      4paw OP | 
|      5yuankui      2015-05-20 11:00:25 +08:00 用python 重写试试? | 
|  |      6WKPlus      2015-05-20 11:15:35 +08:00 cpu都跑满了,也不会是磁盘io的问题了吧 | 
|  |      7spacewander      2015-05-20 11:21:27 +08:00 换个mawk试试看?这个比gawk要快,只是不支持UTF8。 不过也许你用的awk就已经是mawk了。 | 
|      8yuanfangyao      2015-05-20 13:24:12 +08:00 @WKPlus  个人经验,如果没有带缓存的raid卡的话,磁盘io对cpu拖累还是比较大的. | 
|      9paw OP | 
|      10yuankui      2015-05-20 14:50:12 +08:00 map + reduce 先把文件 split 成多个 然后放到多台服务器上面跑 然后再把跑的结果 合并起来... 不过如果你们这种需求比较多,还是建议上 hadoop 或者 spark... 毕竟人肉分布式 太 LOW 了. | 
|  |      11WKPlus      2015-05-20 15:43:40 +08:00 @yuanfangyao 不知道你说的拖累是什么意思,我的理解,如果程序执行的时候,cpu打满了且不是iowait状态,就不是io的问题 另外,第二次执行的时候,文件都很可能缓存在内存中了 | 
|  |      12pityonline      2015-05-21 08:23:33 +08:00 `time perl -MNet::IP -lane '$ip = new Net::IP(@F[5]); @F[5] = $ip->intip(); print "@F"' input.txt > output.txt` 装个 `Net::IP` 用上面的命令单程跑一个文件看看要多长时间? | 
|  |      13hrong      2015-05-22 15:00:35 +08:00 via Android 执行前把环境变量设一下试试? export LANG=C | 
|  |      14omph      2015-05-26 20:20:39 +08:00 同十楼,手工 map reduce 写个 C 程序,可以把文件分成 n 块(分割边界须在换行后),并建 n 个有名管道喂文件块给 awk ========== 既然用 C 了,不如直接 多线程 + mmap + msync |