Всем привет,
сразу скажу в администрование серверов я особо не рулю, поэтому прошу не писать особо умными фразами
Итак предистория:
Работал себе на сервере один ПХП скрипт, написанный на сокетах. И всё было в порядке. Параллельно на сервере проводились разные разработки других скриптов и как то один раз чтото случилось и скрипт стал вылетать с ошибкой "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 интерфейса это сделано, хз... Надо ли оно мне и подойдёт ли. Так же после этих изменений ребутить надо наверное сервер, а вдруг не ребутнется и умрёт?))) Просто сервер рабочий, не хочется не понимая совать настройки.
Спасибо