核心参数与内存公式

参数含义建议
-m每线程排序内存1-4G(默认 768M 偏保守)
-@额外线程数物理核数 - 1
-T临时文件前缀/目录指向 NVMe 大分区
--output-fmt输出格式bam + level=1(排序时低压缩更快)

内存估算:总占用 ≈ -m × (-@ + 1)。32 核机器配 128GB 内存,安全组合是 -m 3G -@ 30(约 93GB)。超出物理内存会触发临时文件分片,速度骤降。

典型性能参考

高频报错

重测序团队处理大队列时,把排序/标记重复这类 IO 密集步骤集中到 NVMe 充足的机器上,整体流程时间可以砍半。

常见问题

samtools sort 总内存占用怎么算?

总内存 ≈ -m(每线程排序内存)× -@(线程数)+ 少量开销。例如 -m 2G -@ 8 约占 17GB。

排序时提示 No space left on device?

是 -T 指定的临时目录满了。把 -T 指向大盘(NVMe),并预留约 1.5 倍 BAM 大小的空间。