O Linux IOnice afetam o /dev/ nós?
Pergunta
Eu escrevi virtual a entrada de drivers para Linux e um servidor que se comunica com eles através de /dev nós.Agora, um deles é um mouse virtual e é muito importante que o sinal servidor recebe fica para o driver mais breve possível para o rato para sentir suave.
Por essa razão, eu definir ionice para o processo do servidor para 1 (ainda não tem a prioridade mais importantes do linux daemons):
if (ioprio_set(IOPRIO_WHO_PROCESS,getpid(), 1 | IOPRIO_CLASS_RT << IOPRIO_CLASS_SHIFT) == -1) {
logger->error("ioprio_set() error",errno);
}
Mas eu não estou certo de que ele ainda vale a pena.Diferença, mesmo se qualquer uma, não é perceptível.É o personagem arquivos especiais em /dev/ considerada quando se trata de prioridade de e/S, apesar de que o acesso ao disco real é dado?
Solução
Até onde eu sei, a camada em que OS ionice
afeta é o I/O scheduler.Pelo menos até o kernel 2.6.17, cfq
era o único programador, na verdade, suporte ionice
e eu acredito que nada mudou, pelo menos no que diz respeito ao padrão de programadores do kernel oferece.
E/S agendadores só são usados com dispositivos de bloco, onde é possível a fila de operações ou alterar a sua ordem, atraso ou fundi-los, etc.(ver aqui por exemplo).Isso também está em linha com o fato de que você pode alterar o programador através de /sys
sistema de ficheiros virtual para dispositivos de bloco único (arquivos, tais como /sys/devices/pci0000:00/0000:00:08.0/host0/target0:0:0/0:0:0:0/block/sda/queue/scheduler
).O driver de mouse é um dispositivo de caractere e, como tal, ele não é influenciado pelo I/o scheduler ionice
.