Ao utilizar o framework Target Core Module in Userspace (TCMU) para implementar alvos iSCSI (Internet Small Computer Systems Interface) em espaço de usuário, os parâmetros padrão do módulo tcm_loop podem não oferecer o desempenho de E/S ideal para sua carga de trabalho. Este documento explica como visualizar e configurar os parâmetros do dispositivo tcm_loop no Alibaba Cloud Linux 3 para ajustar o throughput de E/S em conjunto com o backend em espaço de usuário.
Pré-requisitos
Antes de começar, certifique-se de que você possui:
Alibaba Cloud Linux 3 como sistema operacional
Versão do kernel
5.10.134-17ou superior
Visualizar parâmetros do dispositivo tcm_loop
-
Carregue o módulo tcm_loop.
sudo modprobe tcm_loop -
Leia os valores atuais dos parâmetros no sysfs.
cat /sys/module/tcm_loop/parameters/nr_hw_queues cat /sys/module/tcm_loop/parameters/can_queue cat /sys/module/tcm_loop/parameters/cmd_per_lun cat /sys/module/tcm_loop/parameters/sg_tablesize
Configurar parâmetros do dispositivo tcm_loop
Existem duas maneiras de configurar os parâmetros do dispositivo tcm_loop:
Método 1: Passar parâmetros ao carregar o módulo
Método 2: Usar um arquivo de configuração
Método 1: Passar parâmetros ao carregar o módulo
-
Caso o módulo tcm_loop já esteja carregado, remova-o primeiro.
sudo modprobe -r tcm_loop -
Carregue o módulo com os valores de parâmetro desejados.
Substitua os placeholders pelos valores que você deseja definir.
sudo modprobe tcm_loop nr_hw_queues=<nr_hw_queues> can_queue=<can_queue> cmd_per_lun=<cmd_per_lun> sg_tablesize=<sg_tablesize>Exemplo — defina
nr_hw_queuescomo 4,can_queuecomo 2048,cmd_per_luncomo 2048 esg_tablesizecomo 512:sudo modprobe tcm_loop nr_hw_queues=4 can_queue=2048 cmd_per_lun=2048 sg_tablesize=512
Verificar
Confirme se os valores dos parâmetros entraram em vigor.
cat /sys/module/tcm_loop/parameters/nr_hw_queues
cat /sys/module/tcm_loop/parameters/can_queue
cat /sys/module/tcm_loop/parameters/cmd_per_lun
cat /sys/module/tcm_loop/parameters/sg_tablesize
Método 2: Usar um arquivo de configuração
-
Se o módulo tcm_loop já estiver carregado, remova-o antes de prosseguir.
sudo modprobe -r tcm_loop -
Crie um arquivo de configuração em
/etc/modprobe.d/.Substitua os placeholders pelos valores desejados. O arquivo deve ter a extensão
.conf.sudo bash -c "cat > /etc/modprobe.d/<tcm_loop.conf> << EOF options tcm_loop nr_hw_queues=<nr_hw_queues> can_queue=<can_queue> cmd_per_lun=<cmd_per_lun> sg_tablesize=<sg_tablesize> EOF"Exemplo — crie o arquivo
/etc/modprobe.d/tcm_loop.confcomnr_hw_queues=4,can_queue=2048,cmd_per_lun=2048esg_tablesize=512:sudo bash -c "cat > /etc/modprobe.d/tcm_loop.conf << EOF options tcm_loop nr_hw_queues=4 can_queue=2048 cmd_per_lun=2048 sg_tablesize=512 EOF" -
Carregue o módulo tcm_loop.
sudo modprobe tcm_loop
Verificar
Confirme se os valores dos parâmetros foram aplicados corretamente.
cat /sys/module/tcm_loop/parameters/nr_hw_queues
cat /sys/module/tcm_loop/parameters/can_queue
cat /sys/module/tcm_loop/parameters/cmd_per_lun
cat /sys/module/tcm_loop/parameters/sg_tablesize