Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB59.2770
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 12.04.2012, 23:23   #1
Dumpty
Senior Member
 
Аватар для Dumpty
 
Регистрация: 08.05.2008
Сообщений: 808
Бабло: $250950
Отправить сообщение для Dumpty с помощью ICQ
По умолчанию FreeBSD shared memory

Всем привет,
сразу скажу в администрование серверов я особо не рулю, поэтому прошу не писать особо умными фразами

Итак предистория:
Работал себе на сервере один ПХП скрипт, написанный на сокетах. И всё было в порядке. Параллельно на сервере проводились разные разработки других скриптов и как то один раз чтото случилось и скрипт стал вылетать с ошибкой "not enough shared memory left in СКРИПТ.пхп". Но не проблема, ребутнул серв, и скрипт тот больше не запускали Ребутнул сервер и всё стало на круги своя.
Однако прогресс не стоит на месте и разработки ведутся дальше. Сейчас есть небольшой скриптец на мультикурл, который в 10 потоков краулит страницы.
И опять у первого (основного) скрипта стала появлятся эта проблема "not enough shared memory left in...".
Начал гуглить, посмотрел процессы:
# ipcs -m
Shared Memory:
T ID KEY MODE OWNER GROUP
m 172687361 0 --rw------- root wheel
m 226033666 0 --rw------- root wheel
m 199622659 0 --rw------- koder koder
m 92012548 0 --rw------- root wheel
m 221249541 0 --rw------- root wheel
m 216137735 0 --rw------- root wheel
m 76480520 1130918934 --rw-rw-rw- root wheel

Юзер koder это как раз юзер, от которого запущен мкурл скрипт.

Для доп инфо нашёл ещё такое:
# sysctl -a | grep shm
kern.ipc.shm_allow_removed: 0
kern.ipc.shm_use_phys: 0
kern.ipc.shmall: 8192
kern.ipc.shmseg: 128
kern.ipc.shmmni: 192
kern.ipc.shmmin: 1
kern.ipc.shmmax: 33554432
kern.features.posix_shm: 1


Как я понимаю как раз чтото из этого надо поднастроить для того, чтобы больше памяти выделить. Только непонимаю как и что РАМ на сервере 8ГБ, т.е. можно выделить пару ГБ туда (если конечно РАМ используется).

П.С. Так же замечены проблемы в питон скриптах, которые юзают ТСП коннекты к другим серверам... Какие то ерроры тоже лезут. ВОЗМОЖНО ли что проблема тоже в этой шаред мемори? Как я понимаю ТСП запросы питона тоже используют сокеты...


Дак вот вопрос - господа знающие, подскажите как и где на сервере увеличить кол-во выделяемой памяти и может какие то ещё параметры (кол-во соединений/сокетов или что там ещё есть). Ну и как правильно подсчитать сколько выделить на всё это дело ресурсов.

П.С. нашёл такое решение:
Код:
I have these in /etc/sysctl.conf

# Enhance shared memory X11 interface
kern.ipc.shmmax=67108864
kern.ipc.shmall=32768
Но тут для Х11 интерфейса это сделано, хз... Надо ли оно мне и подойдёт ли. Так же после этих изменений ребутить надо наверное сервер, а вдруг не ребутнется и умрёт?))) Просто сервер рабочий, не хочется не понимая совать настройки.


Спасибо
Dumpty вне форума  
Старый 14.04.2012, 12:08   #2
JackSoft
Бабло победит зло
 
Аватар для JackSoft
 
Регистрация: 20.06.2008
Сообщений: 2,494
Бабло: $329790
По умолчанию

kern.ipc.shm_use_phys=1
kern.ipc.shmall=131072
kern.ipc.shmmax=2147483648

в sysctl.conf и потом ребут. все поднимется
__________________
"Одно Касание/Touch File" - безопасный обмен файлами "TFUtils" - набор утилит TouchFile "TF Screenshots" - заменим Gyazo безопасным аналогом
JackSoft вне форума