Почему nginx 1.0.0, по-видимому, не использует открытый файловый кеш ядра в Gentoo? (высокий Айоваит)
free -m
total used free shared buffers cached
Mem: 7996 2043 5952 0 73 140
-/+ buffers/cache: 1830 6165
Swap: 7812 15 7797
nginx -v
nginx: версия nginx: nginx / 1.0.0
uname -a
Linux tr1 2.6.38-gentoo-r6 # 4 SMP вт 27 сентября 11:24:13 EEST 2011 x86_64 процессор Intel(R) Xeon(R) E5620 @ 2,40 ГГц GenuineIntel GNU / Linux
cat /proc/version
Linux версия 2.6.38-gentoo-r6 (root@tr1) (gcc версия 4.4.5 (Gentoo 4.4.5 p1.2, pie-0.4.5)) #4 SMP вт 27 сентября 11:24:13 EEST 2011
grep directio /etc/nginx/nginx.conf
[nothing]
grep open_file /etc/nginx/nginx.conf
open_file_cache max=2000 inactive=3600s;
[...]
Я ничего не знаю о отключении файлового кэша ядра. Я добавил и удалил open_file_cache в nginx.conf. Тем не менее, кажется, что nginx читает все прямо с диска. У нас есть несколько машин nginx с "идентичной" конфигурацией nginx (php upstream loadbalance, плюс статическая доставка файлов), которые ДОЛЖНЫ использовать открытый файловый кеш с гораздо меньшей нагрузкой ввода-вывода.
В этом случае на той же машине работает Apache.
iostat, iotop -o
Обычно показывают использование диска permant (отличается от нескольких идентичных балансировщиков нагрузки nginx на других машинах), nginx - это лучший ввод / вывод (статическая доставка файлов)
htop
Дает красивую картину ситуации со свободными / буферами / памятью. И подтверждает то, что бесплатно говорит. 1 Гб памяти используется процессами. Некоторые 6GB памяти не используются. Лишь небольшая часть этой оставшейся памяти используется для кэширования ядра (htop указывает, что это желтая часть использования памяти)
Мы хотели бы выяснить, почему nginx доводит дисковый ввод-вывод до 100%, в то время как остается несколько гигабайт оперативной памяти (для кэширования открытого файла ядра)
PS: Как я уже сказал, у нас работает несколько подобных балансировщиков php-upstream с дополнительной доставкой статических файлов с помощью nginx. Но только этот показатель приводит к высокой средней нагрузке из-за чрезмерного iowait, замедляя все остальное.