Linux программа и её работа в FreeBSD

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-03 13:59:36

Просьба не пинать ногами, а если есть какие то вопросы для уточнения то жду.
Возникла такая ситуация
Есть софтинка для обработки поступающих данных от удалённых клиентов (через интернет) и передачи этих данных другим клиентам. Обработку данных она не производит, просто тупо складирует в БД, а потом оттуда выдаёт, то что просят. Сама софтинка делалась на Debian Linux и для запуска во FreeBSD пришлось попрыгать вокруг с бубном. Если бы была альтернатива, то поставил бы из портов, но к сожалению это прекомпилированная софтинка, исходников не достать.

Пока нагрузка на неё была не значительной, то ошибка которые она выдавала не принимались в расчёт. Когда стали увеличивать количество клиентов передающих ей данные, то начались тормоза и задержки у клиентов желающих получить эти данные
после просмотра /var/log/messages обнаружил там следующие строчки:

Код: Выделить всё

server[843]: ERROR: Couldn't accept incoming connection: 30Exception_Create_Listen_Thread
При общении с разрабами, получил ответ мол переходите на Linux и будет вам счастье, но мне чёт не хочется иметь дело с Линуксом - не созрел пока, видимо.
Может кто подскажет в чём может быть проблема?
Моя система

Код: Выделить всё

uname -a
FreeBSD gpsk 7.2-PRERELEASE FreeBSD 7.2-PRERELEASE #2: Sat Aug 22 21:13:46 EEST 2009     user@gpsk:/usr/obj/usr/src/sys/main_kernell.220809  i386
Программулинка скомпилирована под ядро LInux 2.6

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение ProFTP » 2009-09-03 14:14:23

по умолчанию в эмуляции стоить ядро 2.4, можешь поставить там софт от GENTOO или от других линуксов...

а что за программа? QEMO
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-03 14:40:13

ProFTP писал(а):по умолчанию в эмуляции стоить ядро 2.4, можешь поставить там софт от GENTOO или от других линуксов...

а что за программа? QEMO
1. Я выставил версию ядра

Код: Выделить всё

sysctl compat.linux.osrelease=2.6.23.1
вопрос как узнать какая версия ядра сейчас стоит?
устанавливал порт /usr/ports/accessibility/linux-f8-atk

2. Навигационный сервер

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-04 8:39:11

ProFTP писал(а):по умолчанию в эмуляции стоить ядро 2.4
Как поставить более позднее ядро в эмулятор? Кто сталкивался?

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение ProFTP » 2009-09-04 14:48:34

точно не знаю:
http://www.freebsd.org/cgi/cvsweb.cgi/p ... _base-f10/
http://www.freebsd.org/cgi/cvsweb.cgi/p ... oo-stage3/
ProFTP писал(а):можешь поставить там софт от GENTOO или от других линуксов...
Последний раз редактировалось ProFTP 2009-09-04 16:16:41, всего редактировалось 1 раз.
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение weec » 2009-09-04 15:43:31

то не эмулятор, а linuxolator (LinuxABI) - прослойка для FreeBSD-ядра
на сколько мне известно стабильная работа linuxolator-а объявлена пока лишь для ветки Linux-ядра 2.4

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Alex_hha » 2009-09-04 15:56:54

При общении с разрабами, получил ответ мол переходите на Linux и будет вам счастье, но мне чёт не хочется иметь дело с Линуксом - не созрел пока, видимо.
не бойся, он не кусается. Как вариант поставь vmware на freebsd и там запусти Linux и посомтри как будет себя вести эта программа

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1089
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение iZEN » 2009-09-05 18:47:02

emulators/linux_base-f10 ставится на ура и работает (у меня на [i386] работал с Sun WTK 2.2 — этот тоже прекомпилированный бинарный пакет без исходников).
Для поддержки X'ов нужно ещё установить x11/linux-f10-xorg-libs.

Полный алгоритм установки Linux-эмулятора "Fedora 10":

Код: Выделить всё

% kldunload linux
% echo 'compat.linux.osrelease=2.6.16' >> /etc/sysctl.conf && sysctl compat.linux.osrelease=2.6.16
% kldload linux
% echo 'OVERRIDE_LINUX_BASE_PORT=f10' >> /etc/make.conf
% echo 'OVERRIDE_LINUX_NONBASE_PORTS=f10' >> /etc/make.conf
% portinstall -p emulators/linux_base-f10
% echo 'linux_enable="YES"' >> /etc/rc.conf
% echo 'linprocfs /compat/linux/proc linprocfs rw 0 0' >> /etc/fstab && mount -a
% portinstall -p x11/linux-f10-xorg-libs
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-08 23:51:58

Подозрение что есть ограничение на количество одновременных подключений. Где такое можно глянуть?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение zingel » 2009-09-09 5:19:53

Exception_Create_Listen_Thread - проблемы с сокетами, покажи сюда

Код: Выделить всё

sockstat -4c
Z301171463546 - можно пожертвовать мне денег

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-11 12:08:55

угу, спасибо, я уже сам докопался что сокеты
короче по этой команде выдаёт аж > 11000 конектов
всего запущено 35 процессов этой програмки, в приложении полный вывод
да ещё посмотрел top - оперативки мало осталось. Всего Гиг стоит.
Как с этим (с количеством сокетов) бороться или где подкрутить что бы само боролось?

ЗЫ Сейчас копаю инет. Если я правильно понимаю, то надо использовать inetd для контроля за соединениями имеющейся программы. так ли?
или каким то образом заставить закрывать неиспользуемые сокеты которые зависают и сервер открывает новые.
Вложения
sockstat_-4c.zip
(43.67 КБ) 7 скачиваний

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-11 15:06:27

Ещё момент. Наблюдаю следующее:
программа работает и количество сокетов постепенно растёт. После достижения какого-то предела, программа завершается. И заново больше не запускается. Помогает перезагрузка.

Каким образом можно чистить сокеты?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение paradox » 2009-09-11 15:18:50

думаеться мне что в линуксе будут такие же проблемы
на досуге погляжу
где там как что ограничиваеться

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение paradox » 2009-09-11 17:02:46

server[843]: ERROR: Couldn't accept incoming connection: 30Exception_Create_Listen_Thread
не понял
так программа работает?
или падает?
если работает то ошибки нет
просто в бсд ограничено количество создаваемых thread

pthread_create
при ошибке
будет возращать
30Exception_Create_Listen_Thread

потому что в системе уже слишком много потоков
увы это прощет линукс разработчиков
плодить потоки это не лучший способ обработать много соединений
даже я бы сказал самый тупой способ

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-11 17:35:36

paradox писал(а):
server[843]: ERROR: Couldn't accept incoming connection: 30Exception_Create_Listen_Thread
не понял
так программа работает?
или падает?
если работает то ошибки нет
просто в бсд ограничено количество создаваемых thread

pthread_create
при ошибке
будет возращать
30Exception_Create_Listen_Thread

потому что в системе уже слишком много потоков
увы это прощет линукс разработчиков
плодить потоки это не лучший способ обработать много соединений
даже я бы сказал самый тупой способ
программа работает, но через какое то время падает и больше заводится не хочет пока не ребутнёшь машину.
если мониторить с помощью

Код: Выделить всё

sockstat -4c | grep -ic server
заметно постепенное увеличение сокетов.

Код: Выделить всё

# sysctl kern.ipc.maxsockets
kern.ipc.maxsockets: 25600
я думаю когда достигается это значение программа умирает

Вопрос в том как внешними средствами (средствами операционки а не самой программы) ограничить количество открываемых сокетов? Или какими способами можно убивать те которые уже открыты но не используются (где вообще глянуть используются они или нет)?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение paradox » 2009-09-11 17:40:53

Вопрос в том как внешними средствами (средствами операционки а не самой программы) ограничить количество открываемых сокетов? Или какими способами можно убивать те которые уже открыты но не используются (где вообще глянуть используются они или нет)?
думаю программа должна сама корректо закрывать их
но увы она это делает плохо
поэтому
я думаю что фаерволом можно как то поставить лимит на порт подключения этой проги

зы
вообще заметно что автор программы в целом новичек в юниксах
но как минимум
можешь попробовать его убедить поставить бсд
и хотя бы скомпилировать и дать бинарники уже под бсд
пусть она падает
но покарайней мере уже ты освободишься от линукс прослойки

Аватара пользователя
iZEN
ст. лейтенант
Сообщения: 1089
Зарегистрирован: 2007-09-15 16:45:26
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение iZEN » 2009-09-11 18:13:12

Mobilesfinks писал(а):Вопрос в том как внешними средствами (средствами операционки а не самой программы) ограничить количество открываемых сокетов? Или какими способами можно убивать те которые уже открыты но не используются (где вообще глянуть используются они или нет)?
man pf.conf
PF можно простыми правилами заставить ограничивать количество (TCP)IP-соединений и время жизни созданных соединений.
Часть конфига у меня:

Код: Выделить всё

#-------------------
#3/Options
# тем, кто лезет туда, куда не нужно, - бить по рукам
set block-policy drop
# на интерфейсах петли пакеты не фильтровать
set skip on { lo }
# укороченный таймаут для состояния установленного tcp соединения
set timeout { frag 10, tcp.established 2400 }
#-------------------
#4/Scrub
# Нормализовать все входящие пакеты
scrub in all
GNU/Linux — это не Unix и даже никогда им не был, и, что самое смешное, никогда им не станет — GNU's Not Unix

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-11 19:23:18

paradox писал(а): зы
вообще заметно что автор программы в целом новичек в юниксах
но как минимум можешь попробовать его убедить поставить бсд и хотя бы скомпилировать и дать бинарники уже под бсд пусть она падает но покарайней мере уже ты освободишься от линукс прослойки
я сегодня целый день выводил на мысль о том что нужно БСД версию делать. Всё чем отмазывался это " мне же нужно ставить БСД, разбираться в ней, короче у меня времени нет. под линуксом же работает. обращайся к моему шефу если ты так хочешь под БСД, ставь линукс я настрою" - это довольно вольно но всё же близко к тексту

Накатал письмо их директору, жду ответа, но думаю глухо. Автор программы действительно при общении (в аське) вызывает чувство слабо компетентного человека в области программирования. Я его конечно лично не знаю, но такое вот впечатление сложилось. Особенно от его мямлянья и ссылания на шефа.

Сейчас заметил такую картину. Вечером, когда нагрузки основной нет, количество открытых сокетов держится в пределах 5-6 тысяч.
iZEN писал(а): man pf.conf
PF можно простыми правилами заставить ограничивать количество (TCP)IP-соединений и время жизни созданных соединений.
Часть конфига у меня:

Код: Выделить всё

#-------------------
#3/Options
# тем, кто лезет туда, куда не нужно, - бить по рукам
set block-policy drop
# на интерфейсах петли пакеты не фильтровать
set skip on { lo }
# укороченный таймаут для состояния установленного tcp соединения
set timeout { frag 10, tcp.established 2400 }
#-------------------
#4/Scrub
# Нормализовать все входящие пакеты
scrub in all
Спасибо, попзже проверю, может поможет ))

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение paradox » 2009-09-11 19:38:52

я сегодня целый день выводил на мысль о том что нужно БСД версию делать. Всё чем отмазывался это " мне же нужно ставить БСД, разбираться в ней, короче у меня времени нет. под линуксом же работает. обращайся к моему шефу если ты так хочешь под БСД, ставь линукс я настрою" - это довольно вольно но всё же близко к тексту
накатай ему мануал
как в пять строчек установить бсд

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-14 15:45:47

Вопрос к знатокам. А что если завернуть программу через стандартный inetd? Что для этого нужно? может кто сталкивался.
Просто сейчас читаю статью и там сказано что демоны должны быть указаны в файле /etc/services т.е. как я понял я должен прописать свою софтину туда а потом уже запускать её через inetd?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение paradox » 2009-09-14 15:52:46

елки моталки
inetd сам все запускает и контролирует количество коннектов
man inetd

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: Linux программа и её работа в FreeBSD

Непрочитанное сообщение Mobilesfinks » 2009-09-14 16:03:18

ясно будем пробовать.