前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跟着jimmy学docker系列之第4讲:docker容器资源调度问题(MAC版本)

跟着jimmy学docker系列之第4讲:docker容器资源调度问题(MAC版本)

作者头像
生信技能树
发布2018-10-25 11:44:36
7280
发布2018-10-25 11:44:36
举报
文章被收录于专栏:生信技能树生信技能树

前面我们复习了docker的用法,而且我还带领大家亲自构建了一个自己的docker容器,也成功的在测试数据集里面运行了,但是前面我说的,我这次搞docker是因为真的有需求,那么就必然要处理我的真实数据。

这个时候的bam文件是10-20G大小了,不是我GitHub上面的几十个K的小测试文件,真正跑起来才发现,进程总是被kill掉,因为内存的问题,所以就有了本教程。

前面第三讲我创建了自己的docker容器,而且还成功的在小数据集上面测试成功啦,但是想真正分析大数据的时候发现进程总是被killed,仔细想了想应该是docker容器能调用的资源被限制,所以也搜索学习了一些。

在使用 docker 运行容器时,一台主机上可能会运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说会导致容器资源使用不公平;大的来说,可能会导致主机和集群资源耗尽,服务完全不可用。

docker 作为容器的管理者,自然提供了控制容器资源的功能。正如使用内核的 namespace 来做容器之间的隔离, docker 也是通过内核的 cgroups 来做容器的资源限制。 可以参考:

  • 使用 docker 对容器资源进行限制
  • Docker 运行时资源限制

本来我也是按部就班的理解前辈们的教程,调整参数希望可以调度资源,最后始终无法解决问题,就求助了在华为生信云容器的北大胡博士,他指出来了我的docker是安装在我的iMac上面,所以这些教程都不能使用。

如果我要修改内存和CPU,直接跳转界面版本的docker的preference 即可。

如果资源配置好了?

代码语言:javascript
复制
docker run -it -v  /Users/jmzeng/data/project/:/work_dir jmzeng/lancet:v1.0   /bin/bash
root@ca3a9e72b32f:/# cd /work_dir/lancet/
## 脚本如下:
## 也可以设置;--num-threads 
ref=/work_dir/ref/Homo_sapiens_assembly38.fasta
cat config  |while read id;
do
    arr=($id)
    normal_bam=${arr[1]}
    tumor_bam=${arr[2]}
    sample=${arr[0]}
    echo $id;

    for chrom in {1..22} X Y  M;do
        echo $chrom
        echo "lancet --tumor $tumor_bam --normal $normal_bam --ref $ref --num-threads 4 --reg chr$chrom > ${sample}_chr${chrom}.vcf"
        lancet  --tumor   $tumor_bam  --normal   $normal_bam --ref  $ref  --num-threads 4  --reg chr$chrom > ${sample}_chr${chrom}.vcf
    done

done
# lancet --tumor t1.bam  --normal  n.bam  --ref  ref/Homo_sapiens_assembly38.fasta --reg  chr3:179230000-179240000 > t1.vcf

现在就可以批量把所有的肿瘤配对WES数据走一波lancet软件,得到somatic的vcf格式的突变记录文件啦。非常方便。可以看到docke把mac的cpu全部调用了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档