|
|
|
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 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonline, сценария нет, когда количество подключений переваливает за 200 примерно (ну и кол-во открытых файлов соответственно растет) начинается проблема. при этом баз несколько, но основная одна, программ тоже несколько, но основная опять же одна. Конечно наверное существуют какие то не оптимальные запросы которые приводят к открытию лишних файлов, но зависимости по запросам не выявлено. P.S. а что такое bid=2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 16:05 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
c bid=2 разобрался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 16:06 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Хм. Может действительно мейнтейнеры debian что-то перемудрили со зборкой. Evgeny M, я бы еще при наличии возможности попробовал aptitude purge firebird2.5-superclassic и установку ФБ из штатного инсталлятора. Тем более, что как раз 2.5.2 вышел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2012, 16:09 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
miwaonlineEvgeny M, я бы еще при наличии возможности попробовал aptitude purge firebird2.5-superclassic и установку ФБ из штатного инсталлятора. Тем более, что как раз 2.5.2 вышел. сделал, проблема не исчезла, стало только хуже: при достижении лимита сервер просто перестает отвечать, приходится рестартить его. У кого нибудь работает связка Debian + Firebird при большом количестве подключений? Если менять Linux то какой посоветуете? И возможно ли теперь откатиться на прошлую версию Firebird? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 08:35 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny Mсделал, проблема не исчезла, стало только хуже: при достижении лимита сервер просто перестает отвечать, приходится рестартить его. Если менять Linux то какой посоветуете? И возможно ли теперь откатиться на прошлую версию Firebird? Firebird, вы уже переустановили по "умному" совету... Теперь и до OS добрались. Если у вас изначально не работал ulimit у пользователя firebird, то и нужно было разбираться с этим, а не переустанавливать Firebird. Это проблема данного пользователя OS, а не Firebird. Firebird здесь не причем, он работает из environment что ему определён пользователем OS. Не нужно бросаться из крайности в крайность, а нужно прежде всего искать причину ошибки. И на будущее, перед тем как что-то делать на production environment тестируйте это на staging environment. Ok. Напишите вывод: Код: bash Также посмотрите перед пиком количества подключение список открытых файлов OS + их кол-во с помощью ""lsof". "lsof" надо запускать от "root". Код: bash 1. Что у вас ещё работает на сервере помимо firebird? P.S. Не торопитесь переустанавливать OS. В качестве ответа на вопрос: из коммерческих (RHEL, SLES), те, которые распространяются бесплатно (CentOS, Oracle Linux - оба собраны на основе RHEL, причем второй может качать patchs офциально с Oracle errata, так же бесплатно). Еще один openSUSE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 10:42 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, с зависанием решил, причина была в другом. то что обновление FB вряд ли поможет я догадывался, но нужно было что то делать. finger firebird выдает: Login: firebird Name: Firebird Database Administrator Directory: /var/lib/firebird Shell: /bin/bash Never looged in. No mail. No Plan. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 13:31 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, lsof | ws -l выдает 2980 список фалов большой, много строк fb_monitir и fb_sort и строк подключений к БД кроме firebird ничего больше не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 14:01 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Судя по "lsof" не так уж и много открытых фалов у вас сейчас. С пользователем "firebird" тоже всё в порядке, есть shell (/bin/bash) и домашняя директория: /var/lib/firebird Дайте вывод: Код: bash 1. 2. Ещё один вопрос, у вас не работает ли случайно "SELinux" или "AppArmor"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 14:12 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aСудя по "lsof" не так уж и много открытых фалов у вас сейчас. ну не самый пик уже, и кроме системы и firebird никто больше и не открывает Jek_aЕщё один вопрос, у вас не работает ли случайно "SELinux" или "AppArmor"? думаю нет, не помню что бы ставил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 14:28 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Ещё один вопрос, у вас не работает ли случайно "SELinux" Дайте ещё содержимое файла загрузчика grub.conf или lilo.conf, в зависимости от того что вы используете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 14:29 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aЕщё один вопрос, у вас не работает ли случайно "SELinux" Дайте ещё содержимое файла загрузчика grub.conf или lilo.conf, в зависимости от того что вы используете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 14:36 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Судя по вашему "/etc/pam.d/login", "SELinux" у вас всё же установлен: раз# SELinux needs to be the first session rule. This ensures that any # lingering context has been cleared. Without out this it is possible # that a module could execute code in the wrong domain. # When the module is present, "required" would be sufficient (When SELinux # is disabled, this returns success.) session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close и два# SELinux needs to intervene at login time to ensure that the process # starts in the proper default security context. Only sessions which are # intended to run in the user's context should be run after this. session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open # When the module is present, "required" would be sufficient (When SELinux # is disabled, this returns success.) Я бы закоментировал эти строчки. И добавил бы "selinux=0" в grub.conf. Это полностю выключит "SELinux". Код: bash 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 15:00 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
С файлами конфигурации у вас всё нормально, поэтому предполагаю что у вас проблема с "SELinux". Сделайте ещё следующие: Код: bash 1. Опция "-Z" ls -Z-Z, --context print any SELinux security context of each file ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 15:27 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_acd /var/lib/firebird такого каталога нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 15:36 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, А где у вас установлен "Firebird"? Перейдите в эту директорию и сделайте "ls -Z" Просто исходя из этого: fingerfinger firebird выдает: Login: firebird Name: Firebird Database Administrator Directory: /var/lib/firebird Shell: /bin/bash Never looged in. No mail. No Plan. Домашняя директория у пользователя "firebird" имеено "/var/lib/firebird". Тоже самое вам скажет: Код: bash Поменяйте домашнею директорию пользователю "firebird", на ту где у вас установлен "Firebird". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 15:52 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Поменяйте домашнею директорию пользователю "firebird", на ту где у вас установлен "Firebird". Изменить её можно в файле /etc/passwd. Соответственно пользователь "firebird", должен иметь права на эту директорию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:00 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aДомашняя директория у пользователя "firebird" имеено "/var/lib/firebird" странно, видимо осталось от предыдущей установки firebird - пользователь не пересоздавался Jek_aА где у вас установлен "Firebird"? Перейдите в эту директорию и сделайте "ls -Z" выдает список файлов и директорий в этой директории ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:01 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aПоменяйте домашнею директорию пользователю "firebird", на ту где у вас установлен "Firebird". Изменить её можно в файле /etc/passwd. Соответственно пользователь "firebird", должен иметь права на эту директорию. изменил на /opt/firebird. владелец root, у других права на чтение и запуск/поиск. этого достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:05 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, ?? - это хорошо, значит на эти файлы не влияет "SELinux". изменил на /opt/firebird. владелец root, у других права на чтение и запуск/поиск. этого достаточно? Надо сделать: Код: bash ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:14 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aНадо сделать: Код: bash а сервис стартовать не перестанет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:17 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Не должен. Ну на всякий случай, без опции "-R". Т.е. поменять права только на "/opt/firebird", а не "recursively" Код: bash Пользователь "firebird" является владельцем "Firebird DB + data files" + сервис стартует от этого пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:31 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aЯ бы закоментировал эти строчки. И добавил бы "selinux=0" в grub.conf. Это полностю выключит "SELinux". Код: bash 1. у меня нет grub.conf. есть grub.cfg но он не правится, нужно править /etc/default/grub. можно подробнее куда прописывать эти команды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:34 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Пока "grub" можно не трогать, так как у вас нет "SELinux security context" на "/opt/firebird" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:38 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, остальные рекомендации я выполнил, перезагружаться нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:42 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Если поменяли права на "/opt/firebird" директорию, то что вы теперь видете: Код: bash 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:46 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aЕсли поменяли права на "/opt/firebird" директорию, то что вы теперь видете: Код: bash 1. 2. 3. после Код: bash 1. после Код: bash 1. Получилось значит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:52 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Да. Можете ещё перезагрузиться, для чистоты эксперимента и стартовать "Firebrd" заново. + можете ещё раз проверить после перезагрузки: Код: bash 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 16:56 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, неа, не помогло, снова too many open на 1070 открытых файлах. попробую перезагрузиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:05 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
ulimit -a | grep open опять выдает 1024, т.е. на запомнилось после отключения. сейчас все же перезагружусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:07 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, А вы после сделанных изменений рестартовали сервис "Firebird"? P.S. Поздно уже у нас... Ушёл спать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:09 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
автор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" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:15 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
перезагрузка не помогла. ошибка осталась, хотя Код: bash 1. показывает 10000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:30 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
авторМожете изменить на limits.conffirebird soft nofile 10000 firebird hard nofile 65536 тогда не нужно делать "ulimit -n 10000", перед "ulimit -a | grep open" изменил, но тестировать уже будут пользователи в понедельник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 17:37 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, подскажешь куда дальше копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2012, 12:56 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Возможно "Firebird" действительно открывает много файлов, при большом кол-ве подключений. Увеличьте значение лимитов: 1. Отредактировать файл "/etc/sysctl.conf" Код: bash 2. Отредактировать файл "/etc/security/limits.conf" Код: bash 1. 3. Перезагрузить сервер. Далее, постепенно увеличивать кол-во подключений к "Firebird", в это же самое время запускаем сбор статистики в background. Для того, чтобы определить растёт ли кол-во открытых файлов за 30 минут, у каждого "Firebird" процесса (PID): Код: bash 1. 2. -r 1800 - это 30 минут (Думаю этого времени будет достаточно, для достижение лимита по подключениям) Т.е. в background у вас запуститься несколько "lsof" процессов, которые создадут несколько файлов в текущей директории, их можно увидеть через "ps": Код: bash Потом смотрим на статистику: Код: bash Сбор статистики можно прервать так, либо она сама завершится через 30 мин: Код: bash Так же, бывает иногда, что приложение создаёт утечку файлов "descriptors". Это когда у вас заканчивается кол-во свободных "inode". Вы будете видеть, что у вас достаточно места через "df -k", но при этом невозможно будет создать новый файл (no space left on device) или вы будете видеть "touch: cannot touch `test': Too many open files in system". Параллельно со сбором статистики lsof, во второй консоли запускам: Код: bash При условии, что data files у вас находятся в "/opt/firebird" И наблюдаем интерактивно за "Inode count", "Free inodes". Так же хотелось бы видеть ваш kernel: Код: bash + проверить ещё раз, что у вас установлено и что запущенно на сервере. Всё лишнее удалить. У человека была похожая проблема (На сервере работало "Firebird"+"PHP"+"Apache"). Её удалось решить путём обновления "Apache", хотя на первый взгляд он не имеет никакого отношения к "Firebird". Есть ещё одна мысль, но проверьте сначала это всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 09:52 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aТак же хотелось бы видеть ваш kernel: Код: bash Код: bash ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 09:59 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Evgeny MLinux 2.6.32-5-amd64 unknown Довольно странно что unknown . А так: Код: bash FQDN можете убрать из вывода, оно отношения к топику не имеет. Оставить только что-то вроде: Код: bash ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:07 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, Linux 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 CNU/Linux ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:13 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Ok, нужно было вот это x86_64. Просто лучше использовать 64-bit OS, вместо 32-bit. У вас всё нормально с этим. Увеличите лимиты и соберите статистику для начала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:20 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, data files - это файл БД или каталог где временные файлы создаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:23 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Можно и то и другое, но вам тогда нужно открыть ещё одну консоль и модифицировать путь "/opt/firebird" на директорию с временнвми файлами. Т.е. 2 директории 2 консоли итд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:34 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Суть в том, что нужно мониторить все директории, с которыми работает "Firebird" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:37 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a Код: bash 1. 2. в файл выводит: lsof: illegal process ID: -r lsof 4.81 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:40 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a Код: bash 1. 2. я правильно сделал что засунул это в файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:42 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Я написал пример для запуска из консоли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:45 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a Код: bash выдает: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:52 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Вы это запускаете от "root"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 10:58 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Ok, а так работает?: [SRC BASH# tune2fs -l /dev/sda1][/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:02 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Т.е. Код: bash ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:03 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a, работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:03 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Значит, обращаем внимание на " и ' Лучше просто скопировать всю строку что я написал, в консоль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:07 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Нужен вывод: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:10 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aEvgeny M, Значит, обращаем внимание на " и ' Лучше просто скопировать всю строку что я написал, в консоль. скопировал - то же самое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:12 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Evgeny M, Пробуйте так: Код: sql 1. Где /dev/sda1 - это раздел, который смонтирован в "/opt/firebird", тоже самое для "/tmp/firebird". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:17 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aEvgeny M, Нужен вывод: Код: sql 1. 2. вывод одинаков: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:25 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_aEvgeny M, Пробуйте так: Код: sql 1. Где /dev/sda1 - это раздел, который смонтирован в "/opt/firebird", тоже самое для "/tmp/firebird". работает. показывает: Inode count: 29917184 Free inodes: 29894988 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 11:29 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Jek_a -r 1800 - это 30 минут (Думаю этого времени будет достаточно, для достижение лимита по подключениям) получилось что РАЗ в 30 минут собиралась статитстика. там ничего не обычного: количество файлов не больше 1000 Значение inodes тоже не изменилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 13:46 |
|
||
|
Too many open files
|
|||
|---|---|---|---|
|
#18+
Установил на другой сервер Debian с нуля, установил Firebird, больше ничего не ставил - все то же самое. Тогда сделал Jek_aВам нужно сделать: 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, так что ориентируйтесь на неё. - заработало. Но как мне сделать что бы firebird автоматом так стартовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 10:26 |
|
||
|
|

start [/forum/topic.php?all=1&fid=25&tid=1483234]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
92ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 529ms |

| 0 / 0 |

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