Linux教程之怎样使用多核CPU来减速你的Linux命令 ― awk, sed, bzip2, grep, wc等仓酷云 ...
在linux中学习命令的最好办法是学习Shell脚本编程,Shell脚本比起其他语言来学习简单,但是功能却十分强大.通过学习Shell编程,能让你掌握大量的linux命令。你是不是已经有过要盘算一个十分年夜的数据(几百GB)的需求?或在内里搜刮,或别的操纵——一些没法并行的操纵。数据专家们,我是在对你们说。你大概有一个4核或更多核的CPU,但我们符合的工具,比方grep,bzip2,wc,awk,sed等等,都是单线程的,只能利用一个CPU内核。
借用卡通人物Cartman的话,“怎样我能利用这些内核”?
要想让Linux命令利用一切的CPU内核,我们必要用到GNUParallel命令,它让我们一切的CPU内核在单机内做奇妙的map-reduce操纵,固然,这还要借助很罕用到的–pipes参数(也叫做–spreadstdin)。如许,你的负载就会均匀分派到各CPU上,真的。
BZIP2
bzip2是比gzip更好的紧缩工具,但它很慢!别折腾了,我们有举措办理这成绩。
之前的做法:
catbigfile.bin|bzip2--best>compressedfile.bz2如今如许:
catbigfile.bin|parallel--pipe--recend-kbzip2--best>compressedfile.bz2特别是针对bzip2,GNUparallel在多核CPU上是超等的快。你一不留心,它就实行完成了。
GREP
假如你有一个十分年夜的文本文件,之前你大概会如许:
greppatternbigfile.txt如今你能够如许:
catbigfile.txt|parallel--pipegreppattern大概如许:
catbigfile.txt|parallel--block10M--pipegreppattern这第二种用法利用了–block10M参数,这是说每一个内核处置1万万行——你能够用这个参数来调剂每一个CUP内核处置几行数据。
AWK
上面是一个用awk命令盘算一个十分年夜的数据文件的例子。
惯例用法:
catrands20M.txt|awk{s+=$1}END{prints}如今如许:
在linux中学习命令的最好办法是学习Shell脚本编程,Shell脚本比起其他语言来学习简单,但是功能却十分强大.通过学习Shell编程,能让你掌握大量的linux命令。 有疑问前,知识学习前,先用搜索。 上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题. 硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。 Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。 通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。 当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。 不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。 另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。 学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习] 通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
页:
[1]