По принцип получавате връзки в състояние на заспиване, когато:
- PHP скрипт се свързва с MySQL
- изпълнени са някои заявки
- тогава PHP скриптът прави някои неща, които отнемат време
- без прекъсване на връзката с БД
- и накрая, PHP скриптът завършва
- което означава, че прекъсва връзката с MySQL сървъра
Така че обикновено се оказвате с много процеси в състояние на заспиване, когато имате много PHP процеси, които остават свързани, без всъщност да правите нищо от страна на базата данни.
Основна идея, така че:уверете се, че нямате PHP процеси, които се изпълняват твърде дълго – или ги принудете да прекъснат връзката веднага щом вече не се нуждаят от достъп до базата данни.
Още нещо, което често виждам, когато има някакво натоварване на сървъра :
- В Apache идват все повече заявки
- което означава много страници за генериране
- Всеки PHP скрипт, за да генерира страница, се свързва с DB и изпълнява някои заявки
- Тези заявки отнемат все повече време, тъй като натоварването на DB сървъра се увеличава
- Което означава, че повече процеси продължават да се натрупват
Решение, което може да помогне, е да намалите времето, което отнемат вашите заявки – оптимизиране на най-дългите.