Quanta ram você tem? Que tipo de carga de trabalho no seu servidor? Ele serve apenas arquivos grandes ou serve arquivos menores e / ou solicitações de proxy também?
O DirectIO é útil quando o conjunto de arquivos ativos é maior que a RAM, para que eles não caibam no cache, e armazená-los em cache é inútil - é melhor lê-los diretamente do disco e deixar o cache para outra coisa.
Como para flucations - isso provavelmente é causado por trabalhadores nginx bloqueando em operações de disco (por padrão, eles são síncronos). Tente aumentar o número de trabalhadores ou tente usar i / o assíncrono (aio on). Mas tenha cuidado: o número de assincronos muito grande ou muito grande pode causar uma taxa de busca muito maior, então a velocidade geral pode diminuir drasticamente.