Как стать автором
Обновить

repquota грузит сервер — как лечить

Время на прочтение 1 мин
Количество просмотров 708
Хочу поделиться решением проблемы с 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, а не имя.

В общем, как-то так.
Теги:
Хабы:
0
Комментарии 3
Комментарии Комментарии 3

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн