利用ionice命令设置程序的IO调度与优先级

我合并多个文件,用cat将流重定向到一个文件,或者把一个大文件rm掉腾出空间,要进行IO,但如果这个时候服务器有进程进行IO时,同个进程同时进行IO,效率就会很慢。有时候我想把别的进程IO缓一缓,先把合并或者rm的任务有限解决掉,再继续别的进程的IO。

就google了下如何提高效率,查ionice这个命令。

ionice - 获取或设置程序的IO调度与优先级,通过设置命令或进程的IO调度优先级,加快IO效率

命令格式

跟命令时,设置命令的IO调度优先级,跟PID时,设置相应进程的IPD调度优先级。

1
2
ionice [[-c class] [-n classdata] [-t]] -p PID [PID]...
ionice [-c class] [-n classdata] [-t] COMMAND [ARG]... 

我也进行了测试,比如在有其进程进行IO工作时,我要在删除Fastq文件(R1文件20G,R2文件21G)时,用法详见下文。

1
2
3
4
5
6
7
8
9
time rm R1.fastq
real    0m37.306s
user    0m0.001s
sys     0m0.300s

time ionice -c 2 -n 0 rm R2.fastq
real    0m2.579s
user    0m0.002s
sys     0m0.682s

可以看到当提高IO的优先级后,效率还是非常快的,当然这暂时牺牲了其他进程的IO。

ionice -h用法

NC编号与对应的染色体

NC编号 染色体 NC_000001.10 Chr1 NC_000002.11 Chr2 NC_000003.11 Chr3 NC_000004.11 Chr4 NC_000005.9 Chr5 NC_000006.11 Chr6 NC_000007.13 Chr7 NC_000008.10 Chr8 NC_000009.11 Chr9 NC_000010.10 Chr10 NC_000011.9 Chr11 NC_000012.11 Chr12 NC_000013.10 Chr13 NC_000014.8 Chr14 NC_000015.9 Chr15 NC_000016.9 Chr16 NC_000017.10 Chr17 NC_000018.9 Chr18 NC_000019.9 Chr19 NC_000020.10 Chr20 NC_000021.8 Chr21 NC_000022.10 Chr22 NC_000023.10 ChrX NC_000024.9 ChrY NC_012920.1 ChrM PS:NC编号中的点后面代

wget命令小结

下载文件夹 $ wget -c -r -nd -np -k -L -p -A c,h www.xxx.org/pub/path/

-c 断点续传 -r 递归下载,下载指定网页某一目录下(包括子目录)的所有文件 -nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录 -np 递归下载时不搜索上层目录,如wget -c -r www.xxx.org/pub/path/ 没有加参数-np,就会同时下载path的上一级目录pub下的其它文件 -k 将绝对链接转为相对链接,下载整个站点后脱机浏览网页,最好加上这个参数 -L 递归时不进入其它主机,如wget -c -r www.xxx.org/ 如果网站内有一个这样的链接: www.yyy.org,不加参数-L,就会像大火烧山一样,会递归下载www.yyy.org网站 -p 下载网页所需的所有文件,如图片等 -A 指定要下载的文件样式列表,多个样式用逗号分隔

利用wordcloud R包绘制词云

根据词的频率,以词云的形式展示,更加具有表现力。词在’词云’图中字号越大,重要性也就越高。主要涉及数据的挖掘,和数据的展示(可视化)。

下面的代码为利用wordcloud包绘制上面词云图

1
2
3
4
5
install.packages("wordcloud")
> library(wordcloud)
> mydata mycolors  png("wordcloud_packages.png", width=400,height=400, units='in', res=900)
> wordcloud(mydata$词汇,mydata$词频,random.order=FALSE,random.color=T,colors=mycolors,family="myFont3",min.freq=0)
> dev.off()

测试文件下载:TXT