|
|
|
Закрывать соединение при долгой работе скрипта?
|
|||
|---|---|---|---|
|
#18+
Всем доброго дня! Подскажите наилучший план действий, ибо ответа в интернетах не удалось найти. Есть сайт на php, размещен на дедике 2х xeon e5 Пользователи на сайте запускают "долгоиграющие" процессы - в среднем от 10 минут до получаса. Процессы вида while ( $result = mysqli_fetch_array (...) ) { // выполняем некоторый код // обновляем данные в mysql // пауза 1-2 секунды } цикл может иметь до 1-2 тысяч интераций, отсюда и долгое время выполнения. Все это время mysql соединение открыто Сейчас при средней посещаемости с сайтом происходит ерунда - mysql периодически "кушает" 100% CPU, сами страницы открываются долго и неохотно, каждая интерация в цикле занимает куда больше времени, чем пару секунд. Изучал проблему, кажется, уже со всех ракурсов - начиная от slow query (коих, к слову, не оказалось), заканчивая strace php-процессов. Пока безрезультатно. Впервые обращаюсь на форум авторитетных специалистов, возможно, у вас на практике были подобные проблемы. В настоящий момент грешу на долгоОткрытые соединения ( в час пик их может быть одновременно ~300, не считая быстрые соединения при открытии других страниц сайта - их порядка 100 запросов в секунду). Стоит закрывать соединение при выполнении и открывать при необходимости вновь записать данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2018, 23:41 |
|
||
|
Закрывать соединение при долгой работе скрипта?
|
|||
|---|---|---|---|
|
#18+
Удержание соединения требует меньше ресурсов, чем переоткрытие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 07:57 |
|
||
|
Закрывать соединение при долгой работе скрипта?
|
|||
|---|---|---|---|
|
#18+
showroommysql периодически "кушает" 100% CPU, сами страницы открываются долго и неохотно,Если "кушает" - значит, работает. Другой вопрос, что конкретно он делает. Может, запрос какой-то выполняет. Если полезный и правильный во всех отношениях - так это нормально. Страницы же сайта могут "долго и неохотно" открываться по куче всяких причин. Применительно к MySQL можно рассматривать ожидание снятия блокировки с таблицы другим запросом, например, но этот момент надо ещё найти. showroomslow query (коих, к слову, не оказалось)Смотрели со стандартным порогом "медленности" в одну секунду или поднимали планку до 0,5...0,1 секунды и выше? При трех сотнях одновременных (если правильно понял) процессов по 0,1 секунды на запрос - получается пол-минуты на одну итерацию нужно им всем скопом, это весьма грубо и оценочно, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2018, 08:39 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=47&tid=1829608]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 127ms |

| 0 / 0 |

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