Předpokládejme, že váš systém je aktuálně založen na Unixu (jak je uvedeno ve vašem prohlášení o problému). Pokud je to správné, zde je soubor problémů, se kterými se můžete setkat:
-
Došla vám paměť dostupné pro MySQL.
Toto je nejpravděpodobnější problém, kterému čelíte. Každé připojení ve fondu připojení MySQL vyžaduje ke svému fungování paměť, a pokud je tento zdroj vyčerpán, nelze vytvořit žádná další připojení. Paměťové nároky a maximální velikosti paketů různých operací lze samozřejmě vyladit v váš ekvivalent k
my.cnf
pokud zjistíte, že to je problém.Zde je další vlákno, které vám může pomoci , ale můžete také zvážit použití jednodušších nástrojů pro profilování, jako je
top
abyste získali dobrý odhad toho, co se děje. -
Došly vám deskriptory souborů dostupné pro váš uživatelský účet MySQL.
Další běžný problém:pokud se pokoušíte obsluhovat požadavky, které vyžadují IO souboru nad hranicí 1 024 (ve výchozím nastavení), narazíte na případy, kdy operace jednoduše selže. Je to proto, že většina systémů specifikuje měkký a pevný limit počtu otevřených deskriptorů souborů, které může mít každý uživatel k dispozici najednou, a překročení tohoto prahu může způsobit problémy.
Obvykle to bude mít řadu jasně zřejmých znaků vyjádřených v souborech protokolu. Zkontrolujte
/var/log/messages
a vaše srovnatelné adresáře (například/var/log/mysql
abyste zjistili, jestli nenajdete něco zajímavého. -
Narazili jste na livelock nebo deadlock scénář, kdy je vaše vlákno nesplnitelné.
Důsledkem vyčerpání paměti a deskriptoru souborů může vypršet časový limit vláken, pokud jste překročili výpočetní zátěž, kterou je váš systém schopen zvládnout. Nevyvolá tuto chybovou zprávu, ale na to je třeba si v budoucnu dát pozor.
-
Vašemu systému docházejí PID dostupné pro
fork
.Další běžný scénář:
fork
má pouze tolik PID k dispozici pro jeho použití v daném okamžiku. Pokud je váš systém jednoduše převětvený , přestane být schopen obsluhovat požadavky.Nejjednodušší kontrolou je zjistit, zda se k počítači mohou připojit nějaké další služby. Například pokus o SSH do krabice a zjištění, že nemůžete, je velká stopa.
-
Upstream proxy nebo správci připojení došly prostředky a přestaly obsluhovat požadavky.
Pokud máte mezi klientem a MySQL nějakou servisní vrstvu, je třeba ji zkontrolovat, abyste zjistili, zda se nezhroutila, nezavěsila nebo se jinak stala nestabilní. Platí výše uvedená rada.
-
Váš mapovač portů se vyčerpal po 65 536 připojeních .
Nepravděpodobný, ale opět možný případ vyčerpání. Kontrola připojení triviální služby, jak je uvedeno výše, je, ehm, také nejlepší port pro volání zde.
Stručně řečeno:toto je scénář vyčerpání zdrojů, včetně toho, že je server jednoduše „nefunkční“. Budete muset svůj systém dále profilovat, abyste viděli, co blokujete. Jediné, co nám v tomto případě zobrazí chybová zpráva, je skutečnost, že zdroj není klientovi dostupný – potřebovali bychom zobrazit další informace o serveru určit adekvátnější nápravu.