跳转至

常见问题(FAQ)

1. 常用命令无法使用

用户编辑~/.bashrc 时,PATH 环境变量相关的部分编写错误,会导致出现下面这种常用命令无法使用的情况。

$ cat test.txt 
bash: cat: command not found...
解决方法:使用vim的绝对路径来编辑 ~/.bashrc,将写错的部分改正,重新开个登录窗口即可。
$ /bin/vim ~/.bashrc

2. module av显示的软件很少

使用系统module之前,需要先设置相关环境变量,否则会出现module av 显示的软件很少,或module load 无法载入某个软件的情况。module环境配置见 Module使用

3. 节点/tmp空间不够

部分节点可能会因为作业在/tmp目录下写入的文件过多,导致系统盘耗尽,进而导致作业无法往/tmp目录内写入临时文件,出现类似如下的报错。

cannot create temp file for here-document: No space left on device

使用lsload命令查看该节点的资源信息,可看到tmp剩余空间为0,请联系管理员,清理/tmp目录。

$ lsload c01n01
HOST_NAME       status  r15s   r1m  r15m   ut    pg  ls    it   tmp   swp   mem
c01n01              ok   8.0   7.8   7.9  22%   0.0   0  4226    0    3.7G  241G
可以有以下两种方式重新投递作业:

作业本身不往/tmp目录下写入很多数据,是其它作业把/tmp目录写满了。可以使用lsf相关选项,重新投递出错的作业到其它/tmp目录有空闲的节点。

-R "select[tmp>10G]"

作业本身需要往/tmp内写入大量的数据,建议使用TMP 环境变量重新设置临时目录到本地。有多个类似作业时,建议每个作业一个目录,避免文件重名程序出错。bs_seeker repex_tarean paragraph等都会往/tmp目录下写入大量的数据,使用时注意设置TMP环境变量。

#BSUB -J program
#BSUB -n 10
#BSUB -R span[hosts=1]
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q normal
tmpn=`mktemp -u programname_XXXXX`
tmpd="${HOME}/tmp/${tmpn}"
mkdir -p ${tmpd}
echo ${tmpd}
export TMP=${tmpd}
# 运行程序
program...
# 清理临时文件
rm -r ${tmpd}

4. 存储超过配额

写入数据或程序运行时出现 Disk quota exceeded的报错,说明存储空间或文件数超过配额。diskquota 查看存储使用情况,清理账号下的数据至配额之下方可正常写入数据。建议对所有数据扫描一遍,压缩删除不必要的数据,参考 文件扫描。如果需要增加存储配额,可按这个步骤处理申请增加配额

$ diskquota 
Filesystem type         blocks      quota      limit   in_doubt    grace |    files   quota    limit in_doubt    grace  Remarks
public     USR          43.74T        20T        20T          0   7 days |  9890452 17500000 17500000        0     none 
$ cp  data/NT/taxdb.btd.gz  .
cp: error writing ‘./taxdb.btd.gz’: Disk quota exceeded
cp: failed to extend ‘./taxdb.btd.gz’: Disk quota exceeded

5. github 下载缓慢

校园网下载github上的软件不稳定,经常会出现下载缓慢或无法链接的情况,可以使用github镜像,参考 github

6. 登录节点使用conda安装软件等待时间过长

conda安装软件过程中,会运行python程序,如果此时间过长,会被监控程序判定为在登录节点跑作业进而将相关python程序杀掉,导致conda安装过程一直处于等待状态,建议进入交互节点后再使用conda安装程序。R包安装过程也有类似问题,建议在交互节点安装R包。

此外conda安装软件时,刚开始的resolving时间可能会很长,建议使用mamba替代conda,见 mamba使用

7. 新版conda命令行提示符异常

conda升级到22.9.0之后,激活conda环境出现如下的命令行提示符显示异常

(base) 
(base)
解决办法
conda init bash
重新登录账号,即可恢复正常
(base) [username@login01 ~]$

8. 'GLIBC_x.xx' not found

软件运行时出现类似version 'GLIBC_2.29' not found 的报错,一般是系统上glibc版本比较低导致的,解决方法见集群文档 glibc

9. 'GLIBCXX_x.x.x' not found

部分应用程序使用高版本GCC编译,直接在集群上运行时,由于集群默认GCC版本较低(gcc 4.8.5),会出现类似如下的'GLIBCXX_x.x.x' not found报错。

$ ./program
program: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found(required by program)
此时可以加载对应高版本的GCC,然后再运行程序,如module load GCC/5.4.0-2.26

常用GCC版本与GLIBCXX的对应版本如下所示,完整列表见:ABI Policy and Guidelines

GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7

GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7

GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8

GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9

GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10

GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11

GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11

GCC 8.1.0: GLIBCXX_3.4.25, CXXABI_1.3.11

GCC 9.1.0: GLIBCXX_3.4.26, CXXABI_1.3.12

GCC 9.2.0: GLIBCXX_3.4.27, CXXABI_1.3.12

GCC 9.3.0: GLIBCXX_3.4.28, CXXABI_1.3.12

GCC 10.1.0: GLIBCXX_3.4.28, CXXABI_1.3.12

GCC 11.1.0: GLIBCXX_3.4.29, CXXABI_1.3.13

GCC 12.1.0: GLIBCXX_3.4.30, CXXABI_1.3.13

GCC 13.1.0: GLIBCXX_3.4.31, CXXABI_1.3.14

10. 常用库缺失解决

在安装或运行软件过程中经常出现类似 xxxx.so.1.0: cannot open shared object file: No such file or directory的库缺失报错,一般加载或安装对应的库文件即可。

缺失库需要加载的库
libbz2.so.1.0module load bzip2/1.0.6
libgsl.so.23module load GSL/2.4
liblzma.so.0module load XZ/5.2.4
libgeos_c.so.1module load GEOS/3.7.1
libicuuc.so.42module load icu/42
libzstd.so.1module load zstd/1.5.0
libjemalloc.so.2module load jemalloc/5.2.1
libpng16.so.16module load libpng/1.6.24
ltld.somodule load libtool/2.4.6
libpcre2-8.so.0module load PCRE/10.00
libglpk.so.40module load glpk/5.0

11. core dumped

造成"core dumped"错误的原因可能有多种,包括:

  • 程序Bug:程序中存在错误、内存泄漏或未处理的异常,导致程序崩溃。在这种情况下,需要检查程序代码并修复错误,或向开发人员求助;

  • 输入数据有问题。检查输入数据是否符合要求,或更换其他数据尝试;(如bsmap,参考基因组序列需要多行的格式,单行就出现core dump报错)

  • 节点内存不够:程序使用的内存超过了系统可用的内存导致出错。可以更换内存更大的节点尝试;

12. too many open files

too many open files 报错的原因一般是某个进程打开了超过系统限制的文件数量,默认值为1024,非root用户可以使用命令设置到4096。

在本集群运行此作业如出现此报错,可在lsf脚本中添加 ulimit -n 4096 命令就可以临时将本账号的限制最大提升至4096,大于此值会出现权限不够的报错;如果还出现此报错,建议使用smp队列,smp队列中此值为32768;如果32768也不够,请联系管理员处理。

13. 软件离线运行

基于安全考虑,计算节点未联网,导致部分在运行过程中需要联网的软件无法正常运行,暂无统一解决办法,各软件离线运行方案如下。遇到类似问题可联系管理员协助处理。

  • busco离线运行

  • interproscan离线运行

  • FunGAP离线运行

  • IGV离线运行

  • 部分WDL流程会在运行过程中下载singularity镜像,计算节点未联网会导致流程运行失败。解决办法为,在登录节点下载好镜像,然后替换WDL脚本中的镜像URL。如 atac-seq-pipeline 的WDL脚本中有2个地方用到了 https://encode-pipeline-singularity-image.s3.us-west-2.amazonaws.com/atac-seq-pipeline_v2.2.2.sif,首先下载这个镜像,然后将这个URL替换成 DIR/atac-seq-pipeline_v2.2.2.sif 即可

  • nf-core 流程离线运行,见 nf-core
  • nextflow 脚本离线运行需配置 export NXF_OFFLINE='true'
本文阅读量  次
本站总访问量  次