Вопрос или проблема
Каждые несколько минут я вижу сообщение ‘mini_init (119): drop_caches: 1’ в dmesg. (например, каждые 30 секунд + (x * 60 секунд) похоже)
[Чт Фев 20 22:56:07 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 22:57:37 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 23:01:07 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 23:02:37 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 23:06:07 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 23:07:37 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 23:11:07 CET 2025] mini_init (119): drop_caches: 1
[Чт Фев 20 23:12:37 CET 2025] mini_init (119): drop_caches: 1
Версия WSL: 2.2.4.0
Версия ядра: 5.15.153.1-2
Версия WSLg: 1.0.61
Версия MSRDC: 1.2.5326
Версия Direct3D: 1.611.1-81528511
Версия DXCore: 10.0.26091.1-240325-1447.ge-release
Версия Windows: 10.0.22631.4037
- Посмотрел с помощью ps -ef, является ли ‘119’ PID запущенного процесса, но это не так.
- Перезагрузка не решает проблему.
.
Ответ или решение
Введение:
В современных системах разработка приложений и их тестирование всё чаще происходит в виртуализированных средах. Такой подход позволяет экономить ресурсы и время, улучшая гибкость и адаптивность среды разработки. Одним из инструментов, пользующихся широкой популярностью среди разработчиков, является WSL2 — подсистема Windows для Linux версии 2. Однако иногда при работе в WSL2 пользователи могут сталкиваться с неожиданными сообщениями об ошибках или предупреждениях, такими как ‘mini_init (119): drop_caches: 1’.
Теоретическая часть:
Прежде чем углубиться в проблему, нужно разобраться с концепцией drop_caches. В операционных системах на базе Linux кэширование используется для ускорения доступа к данным, сохраняя часто используемые данные в оперативной памяти. Однако, когда система не управляет кэшем должным образом, могут возникать проблемы с доступностью памяти. В подобных случаях администратору может быть предложено вручную освободить кэш, используя механизм ‘drop_caches’. Это можно сделать путём записи определённых значений в специальный файл в файловой системе procfs.
Команда, вызывающая drop_caches, принимает значение ‘1’, ‘2’ или ‘3’, что указывает системе Linux на то, какие именно кэши следует освободить: памяти страницы (первый тип), иноды и dentry (второй и третий тип соответственно).
Практический пример:
В описании проблемы пользователь наблюдает периодические сообщения в dmesg: ‘mini_init (119): drop_caches: 1’. Эти сообщения появляются примерно каждые 30 секунд или одну-две минуты, что может сигнализировать о некоей автоматически выполняемой задаче или скрипте. Важно отметить, что процесс с PID 119, указанный в сообщении, не существует на момент проверки. Это может говорить о краткосрочности жизни процесса или об использовании временной нумерации PID в контексте WSL2.
Анализ и действия:
Для диагностики проблемы необходимо проверить несколько потенциальных источников:
-
Конфигурационные файлы: Откройте конфигурационные файлы, связанный с задачами cron или другими инструментами автоматического запуска на вашей WSL-дистрибуции, чтобы убедиться, что ни один из них не запускает ‘drop_caches’ по расписанию.
-
Виртуальная файловая система: Проверьте настройки WSL и свойства, связанные с управлением памятью. Возможно, в последних обновлениях добавлены улучшения или исправления, влияющие на управление памятью.
-
Скрипты и демоны: Проверьте автоматически выполняемые скрипты, которые могли бы вызывать освобождение кэша. Зачастую задачи администрирования или тестирования могут автоматически выполняться через cron или systemd.
-
Журналы и мониторинг: Используйте средства мониторинга ресурсов и журналов (например, atop, sysstat) для отслеживания активности системы в момент появления сообщений. Это может дать дополнительные подсказки о тригерах события.
Возможные решения:
Если выяснится, что сообщения порождаются действиями определённого скрипта или службы, можно скорректировать их поведение, уменьшив частоту операций очистки кэша или изменив условия их выполнения.
Кроме того, учитывая обновления системы, стоит проверить известную базу данных о багаx WSL2 на наличие связанных проблем. Возможно, что-то подобное случается у других пользователей и Microsoft уже работает над исправлением.
Заключение:
Сообщение ‘mini_init (119): drop_caches: 1’ в контексте WSL2 может быть связано с автоматическим управлением памятью, интегрированной в последние версии системы. Хотя на первый взгляд это может выглядеть как ошибка, в реальности это может быть частью нового функционала управления ресурсами. Углубленный анализ и понимание таких сообщений приведут к более рациональному использованию среды виртуализации и повышению стабильности работы системы. Велика вероятность, что Microsoft в будущем предложит дополнительные инструменты или патчи, чтобы более точно и безопасно управлять ресурсами на различных версиях Windows и WSL.