- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую!
Встретились с новой проблемой, на более менее нагруженных серверах апач начинает висеть в бездействии. У нас работают разные конфигурации и сборки, проблема только с php7:
debian 8 + apache2 + itk + php7 dotdeb пакетный.
Настройки opcache в php.ini
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.enable_cli=1
Зависание выглядит таким бразом, внезапно все процессы апача начинают спать, упирается всё это дело в лимит процессов, получаем 200 www апачей которрые просто ждут своих 200 разных юзерных itk потомков, а эти потомки в свою очередь ждут F_WRLK на ZendSem, в результате имееем 400 процессов которые ждут чуда. В нормальном даже в очень нагруженном состоянии у нас не более 50 процессов.
Если расмотреть потомка поближе то имеем такое:
strace -p 24209
Process 24209 attached
fcntl(2981, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1}
2981 дескриптор нам указывает на:
apache2 24209 user1213 2981u REG 253,0 0 22074361 /tmp/.ZendSem.rz9P8a (deleted)
И так с каждым процессом.
opcache.enable=0 - решает проблему, и больше ничего не виснет и даже не тормазит от перегрузок, но не очень хочется отключать основную фишку 7ки.
Гуглил не мало, но решений нигде нет.
Сразу скажу что /tmp не отдельный раздел, места полно, диски SSD, а вот deleted немного смущает.
Подскажите, может кто-то с таким встречался, или есть ли вообще у вас мысли от чего такое безобразие может возникать? Может нудно как то покрутить opcache ini? :confused:
Зарание всем спасибо за любую помощь.
Попробуйте установить так как описано здесь, возможно поможет:
http://tokarchuk.ru/2016/04/php7/
Может в дотдебовской сборке что-то не так?
Т.к. использую дистрибутивный 5.6 с opcache и тоже на itk, проблем нет, в т.ч. под нагрузкой.
Может в дотдебовской сборке что-то не так?
Т.к. использую дистрибутивный 5.6 с opcache и тоже на itk, проблем нет, в т.ч. под нагрузкой.
Да вот мы такого тоже долгое время не замечали пока не перешли на 24х ядерные сервера и не начали их соответственно нагружать. Проблема стала возникать 1-2 раза в день. Ну а php 5.6 также запущен параллельно, правда без opcache.
Какие у вас по нему настройки в php.ini? (дефолтные не нужны)
хм... первый раз вижу.centos 6 - полет нормальный.
если съехать на 5.6 с opcache ?
---------- Добавлено 30.09.2016 в 21:46 ----------
Попробуйте установить так как описано здесь, возможно поможет:
http://tokarchuk.ru/2016/04/php7/
@Для начала надо установить всё, что нам может понадобиться при компиляции php.@
Дальше не читал. Что будет , если полгода сервера не касались, только мониторили, а потом выполнили apt-get update && apt-get upgrade ?
как эту систему потом обновлять? руками? а если серверов - несколько десятков ?
Какие у вас по нему настройки в php.ini? (дефолтные не нужны)
Такие же, в принципе, только памяти выделено 512 Мб и задан opcache.max_file_size в 200 Кб.
Не знаю, насколько это уместно, но можно попробовать opcache.preferred_memory_model сменить на shm временно, в любом случае предположений больше нет.
pupseg, съехать на 5.6 не получится, клиенты не простят внезапный откат PHP версии)
У кого нагруженные сервера (LA до 10) и php желательно 7 и обязательно с opcache скиньте конфиг. Как уже писал, отключил его, зависаний нет, а значит и проблема где-то в нём, но возможно только на 7ке. Буду пробовать другие настройки, может всё таки в них дело.
esetnod, спасиб, покручу.
pupseg, съехать на 5.6 не получится, клиенты не простят внезапный откат PHP версии)
Хостинг? тогда протестировать на тестовом сервере прежде чем ...
У кого нагруженные сервера (LA до 10) и php желательно 7 и обязательно с opcache скиньте конфиг.
Нету конфигов на все случаи.
Кому-то от параметра будет хорошо, кому-то - плохо.
Покажите вывод phpinfo();
PHP - модуль апача?
Почему не nginx?
Может файлы часто меняются и наступает блокировка кеша Opcache?
---------- Добавлено 01.10.2016 в 00:14 ----------
Какой именно php7?
Уже есть 7.0.11
mod_ruid2 заменяет itk, пробуйте
pupseg просто зачем мне тестировать 5.6, даже если и работает нормально, проблема то только с 7.0, 5.6 у нас также запущены много где без opcache правда.
livetv просто думается что мои opcache настройки как то перекруччены или недокручены. nginx frontend, апач нужен из-за htaccess. php 7.0.10, сегодня обновим на последний, правда как уже сказал opcache отключен и тестировать на этих падениях часто не хочется, надо поднимать пустую машину...
>> Может файлы часто меняются и наступает блокировка кеша Opcache?
Это не понял, php файлы часто меняются? Врядли...
Andreyka, по ruid2 говорят он ещё менее безопасен чем itk. Вот например нашёл такой комментарий о том как он работает, и откровенно говоря в шоке :) Возможно есть какие то патчи конечно.
>> Из принципа работы - при отфорке процесса даем ему capabilities CAP_SETGID и CAP_SETGID (то есть, работая от обычного пользователя он получает возможность менять себе uid/gid, как пожелает) и если следующий запрос идет к другому сайту (точнее - сайту принадлежащему другому пользователю), с чистой совестью меняем uid / gid на него и продолжаем обработку.
Т.е. с небольшой хитростью и лёгкостью я верну себу рут или любые другие права.
А в целом не думаю что проблема в модуле апача, ведь висит всё дело на opcache, а как он связан с апачем? Как уже писал, на точно таком же апаче круятся php5.6 и даже 5.3, без каких либо проблем.