Ядро inotify наблюдает достигнутый предел

ls -l filename даст Вам большую информацию о файле, включая его размер файла, полномочия и владельца.

Размер файла в пятой колонне, и отображен в байтах. В примере ниже, размер файла просто находится под 2 КБ:

-rw-r--r-- 1 user owner 1985 2011-07-12 16:48 index.php

Править: Это, по-видимому, не столь надежно как stat команда.

217
04.08.2011, 16:57
2 ответа

Действительно ли безопасно повысить то значение и каковы были бы последствия слишком высокого значения?

Да, безопасно повысить то значение, и ниже возможные затраты [источник]:

  • Каждый использовал часы inotify, поднимает 540 байтов (32-разрядная система), или 1 КБ (дважды - на 64-разрядном) [источники: 1, 2]
  • Это выходит из памяти ядра, которая невыгружаема.
  • Принятие Вас установило макс. в 524 288, и все использовались (невероятные), Вы будете использовать приблизительно 256MB/512MB 32-bit/64-bit памяти ядра.
    • Обратите внимание, что Ваше приложение будет также использовать дополнительную память для отслеживания дескрипторы inotify, файл/пути к каталогам, и т.д. - сколько зависит от его дизайна.

Проверять макс. количество часов inotify:

cat /proc/sys/fs/inotify/max_user_watches

Определять макс. номер часов inotify

Временно:

  • Выполненный sudo sysctl fs.inotify.max_user_watches= с Вашим предпочтительным значением в конце.

Постоянно (более подробная информация):

  • поместить fs.inotify.max_user_watches=524288 в Ваши sysctl настройки. В зависимости от Вашей системы они могли бы быть в одном из следующих мест:
    • Debian/RedHat: /etc/sysctl.conf
    • Дуга: поместите новый файл в /etc/sysctl.d/, например. /etc/sysctl.d/40-max-user-watches.conf
  • можно хотеть перезагрузить sysctl настройки для предотвращения перезагрузки: sysctl -p (Debian/RedHat) или sysctl --system (Дуга)

Проверьте, чтобы видеть, было ли макс. количество часов inotify достигнуто:

Использовать tail с -f (следуйте) за опцией на любом старом файле, например. tail -f /var/log/dmesg: - Если все хорошо, это покажет последние 10 строк и паузу; аварийное прекращение работы с Ctrl-C - Если Вы вне часов, это перестанет работать с этой несколько загадочной ошибкой:

tail: cannot watch '/var/log/dmsg': No space left on device

Видеть, что израсходовало часы inotify

find /proc/*/fd -lname anon_inode:inotify |
   cut -d/ -f3 |
   xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
   uniq -c |
   sort -nr

Первый столбец указывает на количество inotify fds (не количество часов хотя) и вторые шоу PID того процесса [источники: 1, 2].

286
27.01.2020, 19:28
  • 1
    I guess very few codes need the values higher than the default Dropbox может потребовать более высокого предела, в зависимости от того, сколько файлов Вы имеете. Iv'e повысил мой без проблем. на самом деле уведомление Dropbox (который происходит, когда оно достигает своего предела) явно говорит Вам повышать его. –  Falmarri 25.05.2011, 23:55
  • 2
    @ultrasawblade-inotify заменил dnotify. dnotify, было медленным и ошибочным. inotify может использоваться на каталогах, и каталог будет "изменен", когда один из файлов в том каталоге (один уровень глубоко) будет изменен. Каталоги являются просто файлами так или иначе. –  beatgammit 10.07.2011, 08:14
  • 3
    "Постоянно: Замените значение в/proc/sys/fs/inotify/max_user_watches" <-это неправильно. Для создания этого постоянным, необходимо измениться /etc/sysctl.conf –  Merc 07.05.2016, 07:38
  • 4
    sysctl! = systemd, в Вашем объяснении. И /etc/sysctl.d также работы над более новыми основанными на Redhat системами. –  aairey 06.01.2017, 08:56
  • 5
    @stackexchanger, если Вы очень уверенный, что они подобны (например, Вы протестировали), затем отправьте и отредактируйте к Вопросу. Я сам не проверил, и я знаю, что дистрибутивы склоняются к пакетам патчей, таким образом, поведение могло отличаться для тех же пакетов. Это не говоря уже о различиях в версиях пакета также. –  tshepang 09.01.2017, 00:55

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

2
25.01.2021, 22:49

Теги

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