仓酷云

标题: 来谈谈:怎样使用多核CPU来减速你的Linux命令 [打印本页]

作者: 因胸联盟    时间: 2015-1-15 22:16
标题: 来谈谈:怎样使用多核CPU来减速你的Linux命令
要多动手,不要怕什么搞坏了怎么办,你不搞坏,不去动手,就永远不会有收获,既然你在linux中是自由的,那就发挥自己的权利;
  你是不是已经有过要盘算一个十分年夜的数据(几百GB)的需求?或在内里搜刮,或别的操纵——一些没法并行的操纵。数据专家们,我是在对你们说。你大概有一个4核或更多核的CPU,但我们符合的工具,比方grep,bzip2,wc,awk,sed等等,都是单线程的,只能利用一个CPU内核。
  借用卡通人物Cartman的话,“怎样我能利用这些内核”?
  要想让Linux命令利用一切的CPU内核,我们必要用到GNUParallel命令,它让我们一切的CPU内核在单机内做奇妙的map-reduce操纵,固然,这还要借助很罕用到的–pipes参数(也叫做–spreadstdin)。如许,你的负载就会均匀分派到各CPU上,真的。
  BZIP2

  bzip2是比gzip更好的紧缩工具,但它很慢!别折腾了,我们有举措办理这成绩。
  之前的做法:
  1. catbigfile.bin|bzip2--best>compressedfile.bz2
复制代码
  如今如许:
  1. catbigfile.bin|parallel--pipe--recend-kbzip2--best>compressedfile.bz2
复制代码
  特别是针对bzip2,GNUparallel在多核CPU上是超等的快。你一不留心,它就实行完成了。
  GREP

  假如你有一个十分年夜的文本文件,之前你大概会如许:
  1. greppatternbigfile.txt
复制代码
 如今你能够如许:
  1. catbigfile.txt|parallel--pipegreppattern
复制代码
  大概如许:
  1. catbigfile.txt|parallel--block10M--pipegreppattern
复制代码
  这第二种用法利用了–block10M参数,这是说每一个内核处置1万万行——你能够用这个参数来调剂每一个CUP内核处置几行数据。
  AWK

  上面是一个用awk命令盘算一个十分年夜的数据文件的例子。
  惯例用法:
  1. catrands20M.txt|awk{s+=$1}END{prints}
复制代码
  如今如许:
  1. catrands20M.txt|parallel--pipeawk{s+=$1}END{prints}|awk{s+=$1}END{prints}
复制代码
  这个有点庞大:parallel命令中的–pipe参数将cat输入分红多个块分拨给awk挪用,构成了良多子盘算操纵。这些子盘算经由第二个管道进进了统一个awk命令,从而输入终极了局。第一个awk有三个反斜杠,这是GNUparallel挪用awk的必要。
  WC

  想要最快的速率盘算一个文件的行数吗?
  传统做法:
  1. wc-lbigfile.txt
复制代码
  如今你应当如许:
  1. catbigfile.txt|parallel--pipewc-l|awk{s+=$1}END{prints}
复制代码
  十分的奇妙,先利用parallel命令‘mapping’出大批的wc-l挪用,构成子盘算,最初经由过程管道发送给awk举行汇总。
  SED

  想在一个伟大的文件里利用sed命令做大批的交换操纵吗?
  惯例做法:
  1. seds^old^new^gbigfile.txt
复制代码
  如今你能够:
  1. catbigfile.bin|parallel--pipe--recend-kbzip2--best>compressedfile.bz20
复制代码
  …然后你可使用管道把输入存储到指定的文件里。
  英文原文:UsemultipleCPUCoreswithyourLinuxcommands
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
作者: 因胸联盟    时间: 2015-1-17 17:23
我想即使Linux高手也很难快速准确精练的回答你。
作者: 透明    时间: 2015-1-22 15:50
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
作者: 精灵巫婆    时间: 2015-1-31 11:29
对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
作者: 愤怒的大鸟    时间: 2015-2-6 19:26
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
作者: 再现理想    时间: 2015-2-18 10:21
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
作者: 爱飞    时间: 2015-3-6 05:28
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
作者: 莫相离    时间: 2015-3-12 21:24
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
作者: 若天明    时间: 2015-3-20 04:44
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2