在 gcp 中运行的 Nextflow 进程在崩溃后永远保持空闲 - 如何增加 gcsfuse max opt?

问题描述 投票:0回答:1

我正在 GCP 中运行 nextflow 管道(“批量”)。该管道有多个进程,前半部分成功完成。

但是,当它到达特定进程时,它甚至不会启动命令,而是无限期地保持空闲状态。

在虚拟机内部,我尝试在

ls
中安装在其上并且是我的流程所需的两个存储桶内。请注意,其他进程也需要这两个存储桶,并且它们在这些进程中工作。
但是,在这个特定的过程中,两个桶之一无法访问,我无法进入其中,它会永远卡住。

我不确定这个

/mnt/disks

问题是否与进程一般被卡住有关,但我不知道从哪里开始调试它,因为它没有错误。

该管道在当地运行良好。

有人知道我可以从哪里开始寻找答案吗?

编辑#1:

我想出了为什么

ls卡住了


根据

this post

this post,使用gcsfuse挂载的bucket接受的并发操作数量可能有限制。 编辑#2:

命令可能有什么问题

我还没有发布该命令,因为它很大并且大部分功能齐全,但我最终将其范围缩小到可能的范围。

命令的结构如下:

ls

在那里你可以看到有 
5

${VEP} \ --offline --cache --force_overwrite --show_ref_allele \ --numbers \ --fork ${task.cpus} \ --refseq \ --cache_version ${params.database.vep_cache_version} \ --dir_cache database/${params.database.cache_VEP} \ --fasta database/${params.database.fasta_VEP_gz} \ --dir_plugins ${VEP_PLUGINS} \ --assembly \${ASSEMBLY} \ --custom database/${params.database.clinvar},ClinVar,vcf,exact,0,CLNSIG,CLNREVSTAT,CLNDN,CLNDISDB,CLNALLELEID \ --custom database/${params.database.ExAC},exac03,vcf,exact,0,AF,AC,AC_Het,AC_Hom,AC_AFR,AC_AMR,AC_EAS,AC_FIN,AC_NFE,AC_OTH,AC_SAS,AN_AFR,AN_AMR,AN_EAS,AN_FIN,AN_NFE,AN_OTH,AN_SAS,Het_AFR,Het_AMR,Het_EAS,Het_FIN,Het_NFE,Het_OTH,Het_SAS,Hom_AFR,Hom_AMR,Hom_EAS,Hom_FIN,Hom_NFE,Hom_OTH,Hom_SAS \ --custom database/${params.database.gnomad_exomes},gnomad_exomes,vcf,exact,0,AF,AF_afr,AF_amr,AF_asj,AF_eas,AF_fin,AF_nfe,AF_oth,AF_sas,AF_XY,AF_XX,popmax \ --custom database/${params.database.gnomad_genomes},gnomad_genomes,vcf,exact,0,AF,AF_afr,AF_amr,AF_asj,AF_eas,AF_fin,AF_nfe,AF_oth,AF_sas,AF_XY,AF_XX,popmax \ --custom database/${params.database.ESP6500SI},esp6500siv2,vcf,exact,0,MAF \ --af_1kg \ --hgvs --hgvsg --symbol --nearest symbol --distance 1000 \ --canonical --exclude_predicted \ --regulatory \ -i ${norm_vcf} \ -o ${sample_id}_VEP_output.raw.vcf \ -vcf --flag_pick_allele_gene \ --pick_order mane,canonical,appris,tsl,biotype,ccds,rank,length 数据库。这个带有 5 个 --custom 注释的命令有效。

但是,在我的原始命令中,我传递了 9 个自定义数据库和 9 个自定义插件,它们由程序(VEP)同时处理。

在本地,这个 9+9 配置有效,但在 gcp 中则不行。我开始认为这可能是由于

gcsfuse本身

造成的。但是我不知道如何调试它或从 nextflow 控制它。 有人有过这样的经历吗?

google-cloud-platform nextflow
1个回答
0
投票
我开始认为这可能是由于
gcsfuse本身

造成的。但是我不知道如何调试它或从 nextflow 控制它。

测试这一假设的一种方法是从图片中删除 gcsfuse,而是通过
gsutil

或调用 Cloud Storage API 的代码将文件复制到 Cloud Storage 或从 Cloud Storage 复制文件。 如果有效,您可以尝试对文件的子集使用 gcsfuse。

© www.soinside.com 2019 - 2024. All rights reserved.