powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Too many open files
25 сообщений из 87, страница 3 из 4
Too many open files
    #38041839
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Пока "grub" можно не трогать, так как у вас нет "SELinux security context" на "/opt/firebird"
...
Рейтинг: 0 / 0
Too many open files
    #38041850
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a,

остальные рекомендации я выполнил, перезагружаться нужно?
...
Рейтинг: 0 / 0
Too many open files
    #38041863
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если поменяли права на "/opt/firebird" директорию, то что вы теперь видете:
Код: bash
1.
2.
3.
# su - firebird
# pwd
# ulimit -n 10000
# ulimit -a | grep open
...
Рейтинг: 0 / 0
Too many open files
    #38041875
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_aЕсли поменяли права на "/opt/firebird" директорию, то что вы теперь видете:
Код: bash
1.
2.
3.
# su - firebird
# pwd
# ulimit -n 10000
# ulimit -a | grep open


после
Код: bash
1.
# pwd
/opt/firebird


после
Код: bash
1.
ulimit -a | grep open
open files (-n) 10000


Получилось значит?
...
Рейтинг: 0 / 0
Too many open files
    #38041887
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да. Можете ещё перезагрузиться, для чистоты эксперимента и стартовать "Firebrd" заново.

+ можете ещё раз проверить после перезагрузки:
Код: bash
1.
2.
3.
# su - firebird
# pwd
# ulimit -n 10000
# ulimit -a | grep open
...
Рейтинг: 0 / 0
Too many open files
    #38041904
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a,

неа, не помогло, снова too many open на 1070 открытых файлах. попробую перезагрузиться
...
Рейтинг: 0 / 0
Too many open files
    #38041913
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ulimit -a | grep open
опять выдает 1024, т.е. на запомнилось после отключения. сейчас все же перезагружусь
...
Рейтинг: 0 / 0
Too many open files
    #38041918
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

А вы после сделанных изменений рестартовали сервис "Firebird"?

P.S. Поздно уже у нас... Ушёл спать...
...
Рейтинг: 0 / 0
Too many open files
    #38041924
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторulimit -a | grep open
опять выдает 1024, т.е. на запомнилось после отключения. сейчас все же перезагружусь
Если вы перед этим не делали "ulimit -n 10000", тогда всё правильно, так как начальной значение у вас 1024, которое может расти до 65536.
limits.conffirebird soft nofile 1024
firebird hard nofile 65536

Можете изменить на
limits.conffirebird soft nofile 10000
firebird hard nofile 65536
тогда не нужно делать "ulimit -n 10000", перед "ulimit -a | grep open"
...
Рейтинг: 0 / 0
Too many open files
    #38041957
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перезагрузка не помогла. ошибка осталась, хотя
Код: bash
1.
# su - firebird
# ulimit -a | grep open

показывает 10000
...
Рейтинг: 0 / 0
Too many open files
    #38041970
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторМожете изменить на
limits.conffirebird soft nofile 10000
firebird hard nofile 65536
тогда не нужно делать "ulimit -n 10000", перед "ulimit -a | grep open"
изменил, но тестировать уже будут пользователи в понедельник
...
Рейтинг: 0 / 0
Too many open files
    #38043940
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a,

подскажешь куда дальше копать?
...
Рейтинг: 0 / 0
Too many open files
    #38046417
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Возможно "Firebird" действительно открывает много файлов, при большом кол-ве подключений.
Увеличьте значение лимитов:
1. Отредактировать файл "/etc/sysctl.conf"
Код: bash
fs.file-max = 2000000

2. Отредактировать файл "/etc/security/limits.conf"
Код: bash
1.
firebird     soft    nofile  150000 
firebird     hard    nofile  400000

3. Перезагрузить сервер.

Далее, постепенно увеличивать кол-во подключений к "Firebird", в это же самое время запускаем сбор статистики в background.
Для того, чтобы определить растёт ли кол-во открытых файлов за 30 минут, у каждого "Firebird" процесса (PID):
Код: bash
1.
2.
# for i in $(pgrep -U firebird); do
     nohup lsof -p $i -r 1800 > lsof$i.out &
done

-r 1800 - это 30 минут (Думаю этого времени будет достаточно, для достижение лимита по подключениям)
Т.е. в background у вас запуститься несколько "lsof" процессов, которые создадут несколько файлов в текущей директории, их можно увидеть через "ps":
Код: bash
# ps -ef | grep lsof

Потом смотрим на статистику:
Код: bash
# wc -l lsof*.out

Сбор статистики можно прервать так, либо она сама завершится через 30 мин:
Код: bash
# kill -9 $(ps -ef | awk '/lsof/ {print $2}')


Так же, бывает иногда, что приложение создаёт утечку файлов "descriptors". Это когда у вас заканчивается кол-во свободных "inode". Вы будете видеть, что у вас достаточно места через "df -k", но при этом невозможно будет создать новый файл (no space left on device) или вы будете видеть "touch: cannot touch `test': Too many open files in system".
Параллельно со сбором статистики lsof, во второй консоли запускам:
Код: bash
# watch -n 1 "tune2fs -l $(df -k /opt/firebird | cut -d" " -f1 | grep -v Filesystem) | grep -i 'inode'"

При условии, что data files у вас находятся в "/opt/firebird"
И наблюдаем интерактивно за "Inode count", "Free inodes".

Так же хотелось бы видеть ваш kernel:
Код: bash
# uname -sri


+ проверить ещё раз, что у вас установлено и что запущенно на сервере. Всё лишнее удалить. У человека была похожая проблема (На сервере работало "Firebird"+"PHP"+"Apache"). Её удалось решить путём обновления "Apache", хотя на первый взгляд он не имеет никакого отношения к "Firebird".

Есть ещё одна мысль, но проверьте сначала это всё.
...
Рейтинг: 0 / 0
Too many open files
    #38046425
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_aТак же хотелось бы видеть ваш kernel:
Код: bash
# uname -sri



Код: bash
Linux 2.6.32-5-amd64 unknown
...
Рейтинг: 0 / 0
Too many open files
    #38046441
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,
Evgeny MLinux 2.6.32-5-amd64 unknown
Довольно странно что unknown .
А так:
Код: bash
uname -a

FQDN можете убрать из вывода, оно отношения к топику не имеет.
Оставить только что-то вроде:
Код: bash
Linux 2.6.32-5-amd64 #1 SMP....
...
Рейтинг: 0 / 0
Too many open files
    #38046452
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a,

Linux 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 CNU/Linux
...
Рейтинг: 0 / 0
Too many open files
    #38046460
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Ok, нужно было вот это x86_64. Просто лучше использовать 64-bit OS, вместо 32-bit. У вас всё нормально с этим. Увеличите лимиты и соберите статистику для начала.
...
Рейтинг: 0 / 0
Too many open files
    #38046461
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a,

data files - это файл БД или каталог где временные файлы создаются?
...
Рейтинг: 0 / 0
Too many open files
    #38046481
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Можно и то и другое, но вам тогда нужно открыть ещё одну консоль и модифицировать путь "/opt/firebird" на директорию с временнвми файлами.
Т.е. 2 директории 2 консоли итд.
...
Рейтинг: 0 / 0
Too many open files
    #38046483
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Суть в том, что нужно мониторить все директории, с которыми работает "Firebird"
...
Рейтинг: 0 / 0
Too many open files
    #38046491
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a
Код: bash
1.
2.
# for i in $(pgrep -U firebird); do
     nohup lsof -p $i -r 1800 > lsof$i.out &
done


в файл выводит:

lsof: illegal process ID: -r
lsof 4.81
...
Рейтинг: 0 / 0
Too many open files
    #38046493
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a
Код: bash
1.
2.
# for i in $(pgrep -U firebird); do
     nohup lsof -p $i -r 1800 > lsof$i.out &
done

я правильно сделал что засунул это в файл?
...
Рейтинг: 0 / 0
Too many open files
    #38046500
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Я написал пример для запуска из консоли.
...
Рейтинг: 0 / 0
Too many open files
    #38046513
Evgeny M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jek_a
Код: bash
# watch -n 1 "tune2fs -l $(df -k /opt/firebird | cut -d" " -f1 | grep -v Filesystem) | grep -i 'inode'"

выдает:

Every 1,0s: tune2fs -l Файловая

tune2fs: Нет такого файла или каталога while trying to open Файловая
Couldn't find valid filesystem superblock.
tune2fs 1.41.12 (17-may-2010)
sh: /dev/sda1: Permission denied


Пробовал и /opt/firebird и /tmp/firebird
...
Рейтинг: 0 / 0
Too many open files
    #38046524
Jek_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny M,

Вы это запускаете от "root"?
...
Рейтинг: 0 / 0
25 сообщений из 87, страница 3 из 4
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Too many open files
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]