Хочу поделиться решением проблемы с
Стоит FreeBSD 6.2. Регулярно с помощью
Симптомы проблемы: при запуске
Симптомы снимаются убиванием процесса
А оказалось, что файл /home/quota.user достиг невообразимых размеров: 64G. Заметил случайно — по логам бэкапов.
Проблема полностью вылечилась банально следующим:
UPD
Суть оказалась в формате файла quota.user. Информация о квоте хранится в файле по смещению uid * 32. Соответственно, при большом uid (или при отрицательном) файл оказывается слишком большим, и repquota тратит много времени на просмотр файла, чтобы добраться до последнего uid.
Подробнее на opennet и в рассылке freebsd.
Пользователя с огромным uid не нашлось, зато нашёлся файл с uid 2147483647. Его создавал exim, из-за того, что в системе был пользователь с логином, состоящим из 11 цифр. При назначении прав на почту пользователя exim начинал думать, что это uid, а не имя.
В общем, как-то так.
repquota
, с которой столкнулся сегодня. Надеюсь, поможет кому-нибудь не тратить время на разбирательства.Стоит FreeBSD 6.2. Регулярно с помощью
repquota
собирается статистика по использованию пространства пользователями.Симптомы проблемы: при запуске
repquota
или quotacheck
процесс начинает грузить CPU, а главное — валит диски по дисковым операциям. Сервер практически ложится. Симптомы снимаются убиванием процесса
repquota
или quotacheck
.А оказалось, что файл /home/quota.user достиг невообразимых размеров: 64G. Заметил случайно — по логам бэкапов.
Проблема полностью вылечилась банально следующим:
rm /home/quota.user
rm /home/quota.group
quotaoff /usr/home
quotacheck /usr/home
quotaon /usr/home
UPD
Корень зла
Суть оказалась в формате файла quota.user. Информация о квоте хранится в файле по смещению uid * 32. Соответственно, при большом uid (или при отрицательном) файл оказывается слишком большим, и repquota тратит много времени на просмотр файла, чтобы добраться до последнего uid.
Подробнее на opennet и в рассылке freebsd.
Пользователя с огромным uid не нашлось, зато нашёлся файл с uid 2147483647. Его создавал exim, из-за того, что в системе был пользователь с логином, состоящим из 11 цифр. При назначении прав на почту пользователя exim начинал думать, что это uid, а не имя.
В общем, как-то так.