Да предположим, че вашата система в момента е базирана на Unix (както е посочено във вашето изявление за проблема). Ако това е правилно, ето набора от проблеми, с които може да се сблъскате:
-
Изчерпахте памет достъпно за MySQL.
Това е най-вероятният проблем, с който се сблъсквате. Всяка връзка в пула за връзки на MySQL изисква памет, за да функционира и ако този ресурс е изчерпан, не могат да се правят други връзки. Разбира се, размерите на паметта и максималните размери на пакети от различни операции могат да бъдат настроени в вашият еквивалент на
my.cnf
ако откриете, че това е проблем.Ето допълнителна нишка, която може да ви помогне , но може да помислите и за използването на по-прости инструменти за профилиране като
top
за да получите добра предварителна оценка за случващото се. -
Изчерпаха ви файлови дескриптори достъпно за вашия потребителски акаунт в MySQL.
Друг често срещан проблем:ако се опитвате да обслужвате заявки, които изискват файл IO над границата от 1024 (по подразбиране), ще срещнете случаи, когато операцията просто се провали. Това е така, защото повечето системи определят меко и твърдо ограничение за броя на отворените файлови дескриптори, които всеки потребител може да има едновременно, и преминаването над този праг може да причини проблеми.
Това обикновено ще има серия от крещящо очевидни признаци, изразени във вашите регистрационни файлове. Проверете
/var/log/messages
и вашите сравними директории (например/var/log/mysql
за да видите дали можете да намерите нещо интересно. -
Попаднали сте в живо или безизходица сценарий, при който нишката ви е неудовлетворителна.
Следствие от изчерпването на паметта и файловия дескриптор, нишките могат да изтекат, ако сте превишили изчислителното натоварване, с което вашата система може да се справи. Няма да изведе това съобщение за грешка, но това е нещо, за което трябва да внимавате в бъдеще.
-
Системата ви изчерпва PID, достъпни за
fork
.Друг често срещан сценарий:
fork
има само толкова много PID на разположение за използване във всеки даден момент. Ако вашата система е просто превишена , той ще престане да може да обслужва заявки.Най-лесната проверка за това е да видите дали други услуги могат да се свържат към машината. Например опитът да влезете в кутията по SSH и да откриете, че не можете, е голяма улика.
-
Прокси сървър или мениджър на връзки нагоре по веригата са свършили ресурсите и са престанали да обслужват заявки.
Ако имате някакъв сервизен слой между вашия клиент и MySQL, той носи проверка, за да се види дали се е сринал, увиснал или по друг начин е станал нестабилен. Съветът по-горе е в сила.
-
Вашият картограф на портове се е изчерпал след 65 536 връзки .
Малко вероятно, но отново, възможен случай на изчерпване. Проверката на тривиалната сервизна връзка, както е посочено по-горе, е, хм, и най-доброто пристанище за повикване тук.
Накратко:това е сценарий на изчерпване на ресурсите, включително сървърът просто да е "надолу". Ще трябва да профилирате системата си допълнително, за да видите какво блокирате. Всичко, което съобщението за грешка ни дава в този случай, е фактът, че ресурсът е недостъпен за клиента - ще трябва да видим повече информация за сървъра за да се определи по-адекватно средство за защита.