Привет всем!
Последнее время регулярно в логах вижу сообщения:
/var: file system full
При этом df -h показывает следующее:# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 126M 46M 70M 39% /
/dev/ad0s1f 252M 6.0K 232M 0% /tmp
/dev/ad0s1g 8.4G 6.2G 1.5G 80% /usr
/dev/ad0s1e 252M 250M -18.1M 108% /var
procfs 4.0K 4.0K 0B 100% /procА du -h -d 1 /var следующее:
# du -h -d 1 /var
2.0K /var/account
6.0K /var/at
18K /var/backups
4.0K /var/crash
6.0K /var/cron
14M /var/db
2.0K /var/heimdal
16M /var/log
4.0K /var/mail
4.0K /var/msgs
2.0K /var/preserve
106K /var/run
2.0K /var/rwho
58K /var/spool
11M /var/tmp
22K /var/yp
70K /var/games
2.0K /var/empty
714K /var/webmin
100K /var/lock
42M /varдвойной sync не помогает. Если сделать unmont/mount, то проблема на какое то время исчезает (du -h также определяет используемое место на /var в 42M) а потом все повторяется.
Посоветуйте, куда копать?FreeBSD 4.10
Спасибо
>Привет всем!
>Последнее время регулярно в логах вижу сообщения:
>/var: file system full
>При этом df -h показывает следующее:
>
># df -h
>Filesystem Size Used Avail Capacity
>Mounted on
>/dev/ad0s1a 126M 46M 70M
> 39% /
>/dev/ad0s1f 252M 6.0K 232M
> 0% /tmp
>/dev/ad0s1g 8.4G 6.2G 1.5G
> 80% /usr
>/dev/ad0s1e 252M 250M -18.1M 108%
> /var
>procfs 4.0K 4.0K
> 0B 100%
>/proc
>
>А du -h -d 1 /var следующее:
>
># du -h -d 1 /var
>2.0K /var/account
>6.0K /var/at
> 18K /var/backups
>4.0K /var/crash
>6.0K /var/cron
> 14M /var/db
>2.0K /var/heimdal
> 16M /var/log
>4.0K /var/mail
>4.0K /var/msgs
>2.0K /var/preserve
>106K /var/run
>2.0K /var/rwho
> 58K /var/spool
> 11M /var/tmp
> 22K /var/yp
> 70K /var/games
>2.0K /var/empty
>714K /var/webmin
>100K /var/lock
> 42M /var
>
>двойной sync не помогает. Если сделать unmont/mount, то проблема на какое то
>время исчезает (du -h также определяет используемое место на /var в
>42M) а потом все повторяется.
>Посоветуйте, куда копать?
>
>FreeBSD 4.10
>
>Спасибоищи приложения которые пишут в /var - он у тебя очень маленький
Извиняюсь, но fsck на него напустить пробовал? между моунтами?
>Извиняюсь, но fsck на него напустить пробовал? между моунтами?Да, конечно.
fsck /var
** /dev/ad0s1e (NO WRITE)
** Last Mounted on /var
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
UNREF FILE I=73 OWNER=squid MODE=100644
SIZE=11337650 MTIME=Aug 27 12:09 2004
CLEAR? noUNREF FILE I=163 OWNER=root MODE=100644
SIZE=199977813 MTIME=Aug 27 11:59 2004
CLEAR? noUNREF FILE I=403 OWNER=root MODE=100644
SIZE=4830586 MTIME=Aug 27 11:59 2004
CLEAR? no** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? noSUMMARY INFORMATION BAD
SALVAGE? noBLK(S) MISSING IN BIT MAPS
SALVAGE? no2258 files, 127460 used, 1538 free (1058 frags, 60 blocks, 0.8% fragmentation)
lsof для inode 163 выдает кучу строк примерно такого содержания
httpd 3353 www 2w VREG 116,131076 199977813 163 /var (/dev/ad0s1e)А для inode 73:
squidGuar 36092 squid 5w VREG 116,131076 11337650 73 /var (/dev/ad0s1e)После рестарта апача все на некоторое время приходит в норму, но не надолго
возможно какое-то приложение пытается записать объем данных более того которое есть на диске и при получении ошибки просто прибивает файл?
1.слинкуй /var на больший раздел,
2.отмонтируй существующий var
3.еще раз прогони fsck
4.понаблюдай что будет происходить с линком var....
если нет большого увеличения данных, то меняй винт....
ктож для логов отводит такое место отводи гиг или 512 мегов
и проверь настройки апача и особенно скриптов которые запускаешь
>ктож для логов отводит такое место отводи гиг или 512 мегов
>и проверь настройки апача и особенно скриптов которые запускаешьМашинка в такой конфигурации ~3 года живет. Cервер используется внутри очень маленькой компании (12 пользователей) в основном для squid+squidGuard. Нагрузка за все это эксплуатации практически не изменилась. А проблема появилась сравнительно недавно. Вот это и странно.
На новый винт в ближайшее время перееду. О результатах сообщу
>На новый винт в ближайшее время перееду. О результатах сообщуВ пятницу перенес систему на новый винт + увеличил /var до 1Gb.
Ситуация кардинально не поменялась, хотя сообщения вида /var: file system full пропали (что в общем то логично, учитывая то что /var раздел стал больше).
Теперь картина такая:
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 126M 46M 70M 39% /
/dev/ad0s1f 504M 10.0K 464M 0% /tmp
/dev/ad0s1g 17G 6.3G 9.2G 41% /usr
/dev/ad0s1e 1008M 210M 718M 23% /var
procfs 4.0K 4.0K 0B 100% /proc# du -h -d1 /var
2.0K /var/account
6.0K /var/at
18K /var/backups
4.0K /var/crash
6.0K /var/cron
14M /var/db
2.0K /var/heimdal
17M /var/log
4.0K /var/mail
4.0K /var/msgs
2.0K /var/preserve
106K /var/run
2.0K /var/rwho
58K /var/spool
11M /var/tmp
22K /var/yp
70K /var/games
2.0K /var/empty
714K /var/webmin
100K /var/lock
44M /varВсе так же присутствует UNREF файл, используемый апачем:
# fsck /var
** /dev/ad0s1e (NO WRITE)
** Last Mounted on /var
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
UNREF FILE I=201 OWNER=root MODE=100644
SIZE=154777653 MTIME=Aug 30 13:41 2
....Как я уже говорил, после перезапуска апача ситуация на некоторое время нормализуется, а потом опять.
Есть подозрение, что проблема возникакт после ротации логов newsyslog'омЕсть советы?
В догонку:
# lsof | grep 201
httpd 161 root 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 161 root 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 183 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 183 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 184 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 184 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 185 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 185 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 186 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 186 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 187 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 187 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 366 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 366 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 3330 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 3330 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 20391 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 20391 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 20443 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 20443 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 65392 www 2w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
httpd 65392 www 15w VREG 116,131076 154790514 201 /var (/dev/ad0s1e)
ps -auxw | grep htt
www 65392 0.0 0.7 2364 1404 ?? I 11:10AM 0:01.26 /usr/local/sbin/httpd
www 20443 0.0 0.8 2620 1452 ?? I Sat01PM 0:04.60 /usr/local/sbin/httpd
www 20391 0.0 0.7 2336 1320 ?? I Sat01PM 0:04.58 /usr/local/sbin/httpd
www 3330 0.0 0.8 2636 1436 ?? I Fri06PM 0:05.06 /usr/local/sbin/httpd
www 366 0.0 0.8 2636 1464 ?? I Fri04PM 0:05.54 /usr/local/sbin/httpd
www 187 0.0 0.8 2624 1444 ?? I Fri04PM 0:05.46 /usr/local/sbin/httpd
www 186 0.0 0.8 2624 1464 ?? I Fri04PM 0:05.44 /usr/local/sbin/httpd
www 185 0.0 0.8 2624 1444 ?? I Fri04PM 0:05.45 /usr/local/sbin/httpd
www 184 0.0 0.8 2628 1460 ?? I Fri04PM 0:05.40 /usr/local/sbin/httpd
www 183 0.0 0.8 2628 1468 ?? I Fri04PM 0:05.46 /usr/local/sbin/httpd
root 161 0.0 0.6 2232 1176 ?? Ss Fri04PM 0:07.96 /usr/local/sbin/httpd
>>На новый винт в ближайшее время перееду. О результатах сообщу
>
>В пятницу перенес систему на новый винт + увеличил /var до 1Gb.
>
>Ситуация кардинально не поменялась, хотя сообщения вида /var: file system full пропали
>(что в общем то логично, учитывая то что /var раздел стал
>больше).
>Теперь картина такая:
># df -h
>Filesystem Size Used Avail Capacity
>Mounted on
>/dev/ad0s1a 126M 46M 70M
> 39% /
>/dev/ad0s1f 504M 10.0K 464M
> 0% /tmp
>/dev/ad0s1g 17G 6.3G 9.2G
> 41% /usr
>/dev/ad0s1e 1008M 210M 718M
>23% /var
>procfs 4.0K 4.0K
> 0B 100%
>/proc
>
># du -h -d1 /var
>2.0K /var/account
>6.0K /var/at
> 18K /var/backups
>4.0K /var/crash
>6.0K /var/cron
> 14M /var/db
>2.0K /var/heimdal
> 17M /var/log
>4.0K /var/mail
>4.0K /var/msgs
>2.0K /var/preserve
>106K /var/run
>2.0K /var/rwho
> 58K /var/spool
> 11M /var/tmp
> 22K /var/yp
> 70K /var/games
>2.0K /var/empty
>714K /var/webmin
>100K /var/lock
> 44M /var
>
>Все так же присутствует UNREF файл, используемый апачем:
># fsck /var
>** /dev/ad0s1e (NO WRITE)
>** Last Mounted on /var
>** Phase 1 - Check Blocks and Sizes
>** Phase 2 - Check Pathnames
>** Phase 3 - Check Connectivity
>** Phase 4 - Check Reference Counts
>UNREF FILE I=201 OWNER=root MODE=100644
>SIZE=154777653 MTIME=Aug 30 13:41 2
>....
>
>Как я уже говорил, после перезапуска апача ситуация на некоторое время нормализуется,
>а потом опять.
>Есть подозрение, что проблема возникакт после ротации логов newsyslog'ом
>
>Есть советы?lsof твой друг и товариСЧ - смотреть кто какие файлы открывает в /var
>
>lsof твой друг и товариСЧ - смотреть кто какие файлы открывает в
>/varЯ в своем предыдущем постинге приводил результаты lsof.
Вот еще раз:# lsof -u root | grep 201
httpd 161 root 2w VREG 116,131076 740757941 201 /var (/dev/ad0s1e)
httpd 161 root 15w VREG 116,131076 740757941 201 /var (/dev/ad0s1e)Это UNREF файл уже до >700Mb вырос :(
>>
>>lsof твой друг и товариСЧ - смотреть кто какие файлы открывает в
>>/var
>
>Я в своем предыдущем постинге приводил результаты lsof.
>Вот еще раз:
>
># lsof -u root | grep 201
>httpd 161 root
>2w VREG 116,131076 740757941 201
>/var (/dev/ad0s1e)
>httpd 161 root 15w
> VREG 116,131076 740757941 201 /var
>(/dev/ad0s1e)
>
>Это UNREF файл уже до >700Mb вырос :(думай ЧТО это за файл и почему сие происходит?
попробуй посмотреть его, хоть в сыром виде, возможно наведет на мысли
>
>думай ЧТО это за файл и почему сие происходит?
>попробуй посмотреть его, хоть в сыром виде, возможно наведет на мыслиХм...а как посмотреть содержимое UNREF файла? В файловой системе его не видно. Да и lsof показывет только /var и /dev/ad0s1e - никакого конкретного файла
>>
>>думай ЧТО это за файл и почему сие происходит?
>>попробуй посмотреть его, хоть в сыром виде, возможно наведет на мысли
>
>Хм...а как посмотреть содержимое UNREF файла? В файловой системе его не видно.
>Да и lsof показывет только /var и /dev/ad0s1e - никакого конкретного
>файлаПоищи find-ом по номеру иноды.