Unmap和discard的区别
时间: 2024-05-26 18:18:18 浏览: 279
Unmap和discard是两个不同的操作,它们的目的和行为也不同。
Unmap操作是将文件映射区域从进程的虚拟地址空间中解除映射,这样进程就无法访问该区域的内容了。对于非持久化的内存映射文件,解除映射后,进程对该文件所做的更改会被丢弃。对于持久化的内存映射文件,则不会对文件本身造成任何影响。
Discard操作是将文件的某个区域清零,这样该区域的内容就被删除了。通常情况下,discard操作只能用于SSD等支持TRIM命令的设备上,其目的是告诉设备哪些数据已经被删除了,这样设备可以进行垃圾回收,提高写入性能和寿命。在文件系统中,discard操作通常用于回收已经删除的文件或者文件片段所占用的磁盘空间。
因此,Unmap操作和Discard操作的目的和使用场景是不同的,需要根据具体情况选择使用。
相关问题
linux SCSI UNMAP
Linux SCSI UNMAP是一种用于释放存储设备上未使用空间的命令。它可以帮助操作系统在删除文件或缩小文件大小时,通知存储设备释放相应的空间,从而提高存储设备的利用率。下面是使用Linux SCSI UNMAP命令的步骤:
1. 确认存储设备支持UNMAP命令。可以使用以下命令检查:
```shell
sudo fdisk -l
```
如果输出中包含“Discard”或“Unmap”字样,则表示存储设备支持UNMAP命令。
2. 确认文件系统支持UNMAP命令。可以使用以下命令检查:
```shell
sudo tune2fs -l /dev/sda1 | grep "Discard"
```
如果输出中包含“Discard”字样,则表示文件系统支持UNMAP命令。
3. 使用fstrim命令释放未使用空间。可以使用以下命令:
```shell
sudo fstrim -v /
```
这个命令将释放根目录下所有文件系统的未使用空间。
Input options: -6, --illumina1.3+ quality is in the Illumina-1.3+ encoding -A, --count-orphans do not discard anomalous read pairs -b, --bam-list FILE list of input BAM filenames, one per line -B, --no-BAQ disable BAQ (per-Base Alignment Quality) -C, --adjust-MQ INT adjust mapping quality; recommended:50, disable:0 [0] -d, --max-depth INT max per-file depth; avoids excessive memory usage [8000] -E, --redo-BAQ recalculate BAQ on the fly, ignore existing BQs -f, --fasta-ref FILE faidx indexed reference sequence file -G, --exclude-RG FILE exclude read groups listed in FILE -l, --positions FILE skip unlisted positions (chr pos) or regions (BED) -q, --min-MQ INT skip alignments with mapQ smaller than INT [0] -Q, --min-BQ INT skip bases with baseQ/BAQ smaller than INT [13] -r, --region REG region in which pileup is generated -R, --ignore-RG ignore RG tags (one BAM = one sample) --rf, --incl-flags STR|INT required flags: skip reads with mask bits unset [] --ff, --excl-flags STR|INT filter flags: skip reads with mask bits set [UNMAP,SECONDARY,QCFAIL,DUP] -x, --ignore-overlaps disable read-pair overlap detection Output options: -o, --output FILE write output to FILE [standard output] -O, --output-BP output base positions on reads -s, --output-MQ output mapping quality --output-QNAME output read names -a output all positions (including zero depth) -a -a (or -aa) output absolutely all positions, including unused ref. sequences
这是`samtools mpileup`命令的一些输入和输出选项:
输入选项:
- `-6, --illumina1.3+`: 指定质量值采用Illumina-1.3+编码方式。
- `-A, --count-orphans`: 不丢弃异常的read pair。
- `-b, --bam-list FILE`: 指定一个包含多个BAM文件名的文件,每行一个文件名。
- `-B, --no-BAQ`: 禁用BAQ(基于位置的比对质量)。
- `-C, --adjust-MQ INT`: 调整mapping quality的值,建议使用50,禁用则使用0。
- `-d, --max-depth INT`: 每个文件的最大深度,避免过多的内存使用,默认为8000。
- `-E, --redo-BAQ`: 在运行时重新计算BAQ值,忽略现有的BQ值。
- `-f, --fasta-ref FILE`: 指定一个已建立索引的参考序列文件。
- `-G, --exclude-RG FILE`: 排除在文件中列出的read group。
- `-l, --positions FILE`: 跳过未列出的位置(chr pos)或区域(BED)。
- `-q, --min-MQ INT`: 跳过比对质量小于INT的比对结果,默认为0。
- `-Q, --min-BQ INT`: 跳过碱基质量/BAQ值小于INT的碱基,默认为13。
- `-r, --region REG`: 指定生成pileup的区域。
- `-R, --ignore-RG`: 忽略RG标签(一个BAM文件对应一个样本)。
- `--rf, --incl-flags STR|INT`: 必需的标志:跳过未设置掩码位的read,默认为空。
- `--ff, --excl-flags STR|INT`: 过滤标志:跳过设置了掩码位的read,默认为“UNMAP,SECONDARY,QCFAIL,DUP”。
- `-x, --ignore-overlaps`: 禁用read pair的重叠检测。
输出选项:
- `-o, --output FILE`: 将输出写入到指定的文件中,默认为标准输出。
- `-O, --output-BP`: 输出read上的碱基位置。
- `-s, --output-MQ`: 输出mapping quality。
- `--output-QNAME`: 输出read的名称。
- `-a`: 输出所有位置(包括深度为0的位置)。
- `-a -a`(或`-aa`): 输出全部位置,包括未使用的参考序列。
阅读全文