Как узнать размер кольцевого буфера ядра Linux?

В простейшем случае, когда вы хотите, чтобы к всем именам генов было добавлено _N , даже если они появляются только один раз, вы можете сделать:

$ awk '$4=$4"_"++a[$4];' file.gff 
chr1 66999638 66999638 SGIP1_1 1 +
chr1 66999251 66999251 SGIP1_2 1 +
chr1 33545778 33549778 AZIN2_1 1 +
chr1 8376144 8380144 SLC45A1_1 1 +
chr1 16765166 16769166 NECAP2_1 1 +
chr1 33544713 33548713 AZIN2_2 1 +
chr1 25069759 25073759 CLIC4_1 1 +
chr1 33544729 33548729 AZIN2_3 1 +
chr1 50487626 50491626 AGBL4_1 1 -
chr1 92349836 92353836 TGFBR3_1 1 -

Обратите внимание, что это будет измените разделитель полей на один пробел. Чтобы разделить их табуляцией (как и должны быть файлы GFF), используйте:

$ awk -vOFS="\t" '$4=$4"_"++a[$4];' file.gff 
chr1    66999638    66999638    SGIP1_1 1   +
chr1    66999251    66999251    SGIP1_2 1   +
chr1    33545778    33549778    AZIN2_1 1   +
chr1    8376144 8380144 SLC45A1_1   1   +
chr1    16765166    16769166    NECAP2_1    1   +
chr1    33544713    33548713    AZIN2_2 1   +
chr1    25069759    25073759    CLIC4_1 1   +
chr1    33544729    33548729    AZIN2_3 1   +
chr1    50487626    50491626    AGBL4_1 1   -
chr1    92349836    92353836    TGFBR3_1    1   -

Если вы хотите изменить имена только тех генов, которые появляются более одного раза, это становится немного сложнее:

$ awk -vOFS="\t" '(++a[$4]>1){$4=$4"_"a[$4]-1}1;' file.gff
chr1    66999638    66999638    SGIP1   1   +
chr1    66999251    66999251    SGIP1_1 1   +
chr1    33545778    33549778    AZIN2   1   +
chr1    8376144 8380144 SLC45A1 1   +
chr1    16765166    16769166    NECAP2  1   +
chr1    33544713    33548713    AZIN2_1 1   +
chr1    25069759    25073759    CLIC4   1   +
chr1    33544729    33548729    AZIN2_2 1   +
chr1    50487626    50491626    AGBL4   1   -
chr1    92349836    92353836    TGFBR3  1   -
6
23.12.2016, 20:20
1 ответ

Что касается размера, он записан в файле конфигурации вашего ядра. Например, здесь на Amazon EC2 это 256 KiB .

# grep CONFIG_LOG_BUF_SHIFT /boot/config-`uname -r`
CONFIG_LOG_BUF_SHIFT=18
# perl -e 'printf "%d KiB\n",(1<<18)/1024'
256 KiB
#

Ссылка в /kernel/printk/printk.c

#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)

Дополнительная информация в /kernel/trace/ring_buffer.c

Обратите внимание, что если вы передали параметр загрузки ядра "log_buf_len = N "(проверьте с помощью cat / proc / cmdline ), тогда переопределяет значение в файле конфигурации.

7
27.01.2020, 20:28

Теги

Похожие вопросы