|
|
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
продолжение темы http://www.sql.ru/forum/actualthread.aspx?tid=974251 не могу заставить debian (2.6.32-5-amd64) увеличить лимит открываемых файлов для пользователя firebird. в /etc/security/limits.conf прописано: firebird soft nofile 16384 firebird hard nofile 16384 строчку "session required pam_limits.so" в /etc/pam.d/su расскоментировал в файле /etc/pam.d/common-session тоже все прописано все равно при превышении кол-ва открытых файлов 1024 выдает ошибку "Too many open files" Что нужно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 10:15 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Вроде по-новой пойдет, но хотелось бы резюмировать предыдущую ветку. Значит, если сделать su <ввести пароль рута> su firebird <тут уже никакого пароля не надо> ulimit -n что выводится? Если 1024 - значит из limits.conf конфигурация не считывается, либо позже чем-то перекрывается. Вариант - обидная ошибка в лишнем пробеле (точке, еще чем-то), случайно оставленном в limits.conf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 12:51 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonline, выдает 1024. прикрепил limits.conf, может у меня глаз уже замылен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2012, 21:09 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny Mприкрепил limits.confОбычно в рекомендуется завершать файл одной или более пустой строкой (переводом строки). В Вашем файле такой строки не вижу. Мож как раз тот случай? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2012, 21:13 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
vkle, тоже заметил, сделал перенос строки. пока ничего не изменилось, попробую перегрузить сервер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2012, 21:17 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
"/etc/security/limits.conf works only for services that use pam and the pam module pam_limits" - работает только с службами которые используют pam - а может firebird вообще pam не использует и этим все объясняется. как то можно это проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2012, 08:51 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
решения до сих пор не нашел. даже когда делаю: su firebird ulimit -n 10000 ошибка не исчезает, хотя ulimit -n показывает 10000, т.е. firebird не подхватывает увеличение лимита. Что делать? Неужели ни у кого нет работающей крупной БД Firebird на Debian и с такой проблемой никто не сталкивался? и Debian и Firebird - стандартные установки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 14:32 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Попробуйте сделать следующие: От пользователя "root" 1. Отредактировать файл "/etc/sysctl.conf" Код: powershell 1. 2. Загрузить параметры ядра с файла /etc/sysctl.conf Код: powershell 1. 3. Проверить, что настройки применились Код: powershell 1. 2. 4. Отредактировать файл "/etc/security/limits.conf" Код: powershell 1. 2. (Т.е. пользователь firebird может увеличивать или уменьшать значение soft лимит, но не превышать hard лимит) 5. Добавить строчку в файл "/etc/pam.d/login" Код: powershell 1. 6. Добавить следующие линии в файл ".bash_profile" (Этот файл должен быть в домашней директории пользователя "firebird", например /home/firebird/.bash_profile) Код: powershell 1. 2. 3. 7. Перезагрузить сервер. 8. Выполнить вход от пользователя "firebird" и стартовать DB заново. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 23:45 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a6. Добавить следующие линии в файл ".bash_profile" (Этот файл должен быть в домашней директории пользователя "firebird", например /home/firebird/.bash_profile) Код: powershell 1. 2. 3. 7. Перезагрузить сервер. 8. Выполнить вход от пользователя "firebird" и стартовать DB заново. дело в том что firebird стартует автоматом при загрузке сервера и в консоли не логинится и домашней папки у него нет надо видимо все таки другой скрипт выбрать? какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 14:23 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Да хоть в rc.local прописать sudo -u firebird ulimit -n 65536 Если заработает, тогда можно думать дальше. Кстати, еще вот подумалось. Возможно уже где-то говорилось, не помню. FB classic или super? Возможно, если используется CS, настройка «слетает» при остановке всех процессов ФБ? Или, например, новые процессы не видят изменения ulimit, только существующие в момент отработки комманды? Что, если в одной консоли сделать su firebird, а в другой изменить ulimit? В первой изменения видны? А если после этого с третьей консоли зайти? P.S. Идеи, возможно, бредовые; это я пытаюсь нащупать корень проблемы. Возможно какая-то из идей у кого-то правильную ассоциацию вызовет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 14:36 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonline Что, если в одной консоли сделать su firebird, а в другой изменить ulimit? В первой изменения видны? А если после этого с третьей консоли зайти? попробовал. ни первая ни третья изменения не видят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 15:02 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Заинтересовало. Для начала, у меня ldd /usr/sbin/fb_inet_server говорит, что FB не использует PAM, так что ulimit надо выставлять вручную - limits.conf тут в пролете. С другой стороны, поскольку FB стартует без шелла, получается облом с использованием стартовых скриптов. Ручные установки ulimit (через su) работают только в пределах текущей сессии и не касаются других сессий и собственно ФБ, что логично, поскольку ulimit - встроенная команда оболочки. Думаю, есть смысл с этим всем вовращаться в ветку по ФБ. Возможно, dimitr будет не слишком занят на конференции и ответит, как же конфигурируются эти лимиты в линуксовом ФБ. Да, кстати, а что если глобально поднять все лимиты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 16:14 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonlineВозможно, dimitr будет не слишком занят на конференции и ответит, как же конфигурируются эти лимиты в линуксовом ФБ. На это и я могу ответить: никак. Это системная настройка и Firebird туда не суётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 16:32 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonlineДа, кстати, а что если глобально поднять все лимиты? а как? в limits.conf прописывал "* * nofile 65365" - не помогло и нашел в инете такое: Птица берёт текущее значение лимита открытых файлов (getrlimit). Если макс. возможное больше, то устанавливает лимит в новое значение (setrlimit). Как же увеличить текущий лимит? ulimit получается здесь не причем?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 16:37 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny MmiwaonlineДа, кстати, а что если глобально поднять все лимиты? а как? в limits.conf прописывал "* * nofile 65365" - не помогло и нашел в инете такое: Птица берёт текущее значение лимита открытых файлов (getrlimit). Если макс. возможное больше, то устанавливает лимит в новое значение (setrlimit). Как же увеличить текущий лимит? ulimit получается здесь не причем?! Ну а я что два поста перед этим писал о логинах и РАМах? Я бы еще попробовал включить комманду ulimit -n в скрипт /etc/init.d/firebird2.5-FBARCH. А если не поможет (потому что нефиг обычному пользователю себе лимиты поднимать), то тогда sudo ulimit -n с соответствующей правкой /etc/sudoers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2012, 21:04 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Скачал firebird's source code, ради интереса посмотреть процедуру установки в них. автордело в том что firebird стартует автоматом при загрузке сервера и в консоли не логинится и домашней папки у него нет Все правильно он и должен выполнять автостарт. При выполнеии скрипта автостарта не нужно выполнять login shell. Домашняя директория у пользователья "firebird" существует, вот кусок кода установки: Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Домашняя директория у него "/opt/firebird", а вот login shell "/bin/fasle", т.е. у этого пользователья нет shell. Соответственно "/etc/pam.d/login" не выполняется и не вызывет библиотеку "pam_limits.so", от которой напрямую зависит файл "/etc/security/limits.conf" Можете проверить: Код: powershell 1. Читаем: Код: powershell 1. 2. 3. 4. Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. авторЧто, если в одной консоли сделать su firebird, а в другой изменить ulimit? В первой изменения видны? А если после этого с третьей консоли зайти? Ни одна из-них работать не будет, проблему я описал выше. Более того "ulimit -n", работает в пределах текущей сессии. авторldd /usr/sbin/fb_inet_server говорит, что FB не использует PAM С чего ему использовать PAM (Pluggable Authentication Modules), если PAM необходим для аутентификации и срабатывет на Login action. Например "su" использует PAM. Код: powershell 1. 2. 3. 4. 5. 6. 7. 8. автор(потому что нефиг обычному пользователю себе лимиты поднимать) Глупости говорите. Для этого и используется "limits.conf" файл, чтоб делегировать это непривилегированному пользователю. Ипользование limits.conf необходимо для таких RDBMS как: Sybase ASE, Oracle, DB2 итд. Вам нужно сделать: 1. Изначально выполнить login от пользователя "root". 2. Сменить shell для пользователя "firebird" Код: powershell 1. 3. Выполнить шаги которые я описал выше: 1, 2, 3, 4, 5, 6 (7 и 8 выполнять не надо) 4. Выполнить логин от пользоветеля "firebird" Код: powershell 1. "-" между su и firebird обязательно. Для того чтобы ипользовать firebird's user environment. 5. Проверить текущий shell: Код: powershell 1. 6. Пороверить текущие настройки: Код: powershell 1. Сейчас должны использоваться настройки с файла "limits.conf" 7. Стартовать "firebird" вручную с текущего shell. Открыть firebird's startup script и проверить секцию start. Там есть строка для старта "firebird". Что-то вроде: Код: powershell 1. 2. 3. 4. 5. 6. 7. Из приведенного выше кода вам нужно выполнить: Код: powershell 1. Это только пример у вас наверняка другая строчка для старта firebird, так что ориентируйтесь на неё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 02:06 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, Это ж надо столько умных слов написать чтобы выдать столько плохих советов. Восхищаюсь Первое и самое главное - у ТС ФБ ставился из репозитория debian, так что большинство рассуждений мимо кассы, так как в debian даже близко нет тех скриптов и параметров, котрые вы так любезно проанализировали. А меньшинство рассуждений сводится к тому, что в скрипт, который запускает ФБ, нужно вручную добавить комманду изменения ulimit, что я написал в предыдущем посте без обильного цитирования отсутствующих конфигов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2012, 12:18 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
авторЭто ж надо столько умных слов написать чтобы выдать столько плохих советов. Восхищаюсь Сколько, и что конкретно вы имели ввиду из моих двух постов непонятно? Из ваших слов следует что IBM , Oracle или Firebird дает "плохие советы" используя "/etc/security/limits.conf" файл, для настройки лимитов, который напрямую зависит от PAM. IBMTo set the maximum number of open file descriptors for processes running under the user, add the following to the file, /etc/security/limits.conf For more details on how to configure the PAM_limits security module type: man limits.conf Не умные они, надо использовать "rc.local" или startup scripts служб для этого, как вы написали. Для использования файла "/etc/security/limits.conf", пользователю необходим shell, а не /bin/false. Примером плохого совета, служит проверка динамических значений, которые работают на время жизни текущей сессии из двух других сессий. Или не использвание "/etc/security/limits.conf", только потому что "/usr/sbin/fb_inet_server" не использует PAM, так как он не имеет никаго отношения к аутентификации, соотвественно и к PAM. Я вам это объяснил, и вы видать это восприняли как личную обиду. Не вижу причин веселья по этому поводу. Хотя это ваше мнение и высказли свою точку зрения, спроить я с вами не буду. авторПервое и самое главное - у ТС ФБ ставился из репозитория debian Опять не понятно, почему это для вас "первое и самое главное". Давайте выясним что такое репозиторий. debian.orgA Debian repository is a set of Debian packages organized in a special directory tree which also contains a few additional files containing indexes and checksums of the packages. A repository can be both online and offline (for example on a CD-ROM) Т.е. репозиторий - это не что иное, как набор пакетов доступных для установки. В свою очередь эти пакеты собираются из исходных кодов и помещаются в репозиторий. Тот самый исходный код я и использовал для нахождений причины не работающего "/etc/security/limits.conf" файла. Не важно как вы установите пакет c репозитория или DVD (CD), суть от этого не изменится, если оба они собраны с одинаковами параметрами из одного и того же кода. авторв debian даже близко нет тех скриптов и параметров и отсутствующих конфигов Могли бы о них написать, вместро того, что бы просто об этом заявить, не уточняя какие именно скрипты, параметры и конфиги вы имесли ввиду исходя из моих постов. @ miwaonline - Предлогаю закончить дискусию, вместо того чтоб плодить оффтоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2012, 14:18 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonlineА меньшинство рассуждений сводится к тому, что в скрипт, который запускает ФБ, нужно вручную добавить комманду изменения ulimit, что я написал в предыдущем посте без обильного цитирования отсутствующих конфигов. Добавление ulimit в скрипт не помогает: скрипт запускается не от имени пользователя firebird, а внутри скрипта идет команда start-stop-daemon в которой указано что службу firebird запускать от пользователя firebird. Как бы ulimit запустить от имени firebird? от su уже всяко пробовал - не подхватывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 14:06 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny Mвнутри скрипта идет команда start-stop-daemon в которой указано что службу firebird запускать от пользователя firebird. SS? А почему не CS? Вроде как на линуксах «роднее». Или у тебя все совсем плохо с оперативкой и одно ядро на сервере? Ну и есть ненулевые шансы, что лимит на количество открытых файлов будет для каждого соединения 1024, а не один на всю службу. Кстати, а есть какой-то воспроизводимый пример, чтобы протестировать проблему у себя? Скрипт там, или бинарник. Evgeny M Как бы ulimit запустить от имени firebird? от su уже всяко пробовал - не подхватывает Несколько не совсем идейно правильных соображений по изменению стартап-скрипта - поменять юзера, от имени которого запускается ФБ, на рута (осторожно, ибо если надо будет вернуть обратно, то не забыть вернуть права на базы данных и рабочие каталоги) - или вместо start-stop-daemon делать sudo firebird ulimit -n && $FBSERVER $FBOPTS (осторожно, ибо start-stop-daemon тоже не от нефиг делать написали) Но я бы для начала все-таки попробовал FB CS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2012, 16:38 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonline, у меня СуперКлассик (англ. SuperClassic Server) — один процесс, но свой поток на каждое соединение. Данная архитектура введена в версии 2.5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 10:06 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, И все равно я бы для интереса протестировал на классике. Если нет возможности - дай воспроизводимый пример, погоняю у себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 11:13 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonline, переключу сегодня на классик. а какой пример? стандартная установка Firebird ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 12:31 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Нет, я имею в виду, есть ли какой-то стандартный сценарий для воспроизведения ошибки. Возможно, она возникает при достижении некоторого количества подключений, или при выполнении какого-то запроса, или при подключении какого-то компютера, или еще что-то в том же духе. Учитывая, что ни в bid=2 ни здесь никто не может сказать ничего конкретного, можно предположить, что с проблемой редко сталкиваются. Лично я, например, за 6 лет работы со связкой ФБ + дебиен на не одном десятке проектов такой ошибки не встречал. А если еще учесть наличие Таблоида в bid=2 с его привычкой по малейшему поводу делать тесты на сотни подключений и миллионы операций, то можно предположить, что проблема довольно редкая и завязана на какую-то твою специфику. Потому повторюсь - есть ли хоть какой-то сценарий для воспроизведения ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 15:52 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonlineА если еще учесть наличие Таблоида в bid=2 с его привычкой по малейшему поводу делать тесты на сотни подключений и миллионы операций, то можно предположить, что проблема довольно редкая и завязана на какую-то твою специфику. У Таблоида ulimit работает. В отличии от... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 16:02 |
|
||
|
|

start [/forum/search_topic.php?author=lewsha&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 438ms |
| total: | 711ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...