Jak efektivně řešit jednorázový nápor – aktuálně hosting WEDOS

MikKuba
Člen | 75
+
0
-

Ahoj,

Hostuji aktuálně Nette aplikaci u Wedosu. Doteď jsem zde hostoval vše a vcelku bez problému, klasické weby, blogy, lidé navštěvují průběžně přes den,.. Bez problému.

Nyní ale jde o webovou aplikaci, kde učitel vytvoří pro žáky test a k tomu se mu vygeneruje unikátní URL. Obsluhuje 1 presenter, podle parametrů v URL (klíč a ID) to hledá v databázi daný test. Všechno funguje jak má při testování, ale problém nastává, kdy učitel tento odkaz hodí někam do chatu na Meetu nebo jinam při online hodině a žáci jdou hromadně vyplňovat. Tzn. na jednu konkrétní URL přistupuje během 1–5 sekund třeba 20 lidí. Nejspíš to je limitem hostingu, kde mi psali že u aktuálně tarifu NoLimit mají nastavený počet PHP procesů max 7. Při hromadném otevření linku se stane, že třeba 50% žáků dostane error, který je způsoben tím, že se z DB nevrátí data a aplikace (nebo šablona) chce vypisovat objekt, který ale neexistuje.

Ošetřil jsem toto zatím vypsání stránky v designu bez obsahu a jen s hláškou o problému, a že toto vyřeší refresh.

Většinou stačí 1 nebo 2× refreshovat (záleží jak rychle to dělají a nejspíš opět – kolik aktuálně běží dotazů na DB) a web už se načte.

Dokázal by mi někdo prosím poradit, jak z tohoto ven. Zda u Wedosu přejít na vyšší tarif, kde tvrdí že to zvládne až 10 PHP procesů, anebo mi to téměř nepomůže? Vyřeší to třeba jiný hosting, který nebude v tomto limitovaný, nebo bude třeba umět nějak lépe uchovávat přišlé dotazy na DB ve frontě a ne je „neobsloužit“, což se teď asi děje?

Cache v aplikaci běží, první načtení je stejná stránka s jedním inputem pro všechny, potom ale po vyplnění už se může každému zařízení generovat jiná podoba testu, takže to už moc cachovat nepůjde. Problém je ale hlavně u toho prvotního načtení a vyhození chyby.

Děkuju moc!

David Matějka
Moderator | 6445
+
0
-

a jsi si jistý, že za to může limit hostingu a ne nějaká chyba v aplikaci? jestli je to pořád ta stejná, co tady https://forum.nette.org/…ni-presenter, tak je to pravděpodobně chybou v aplikaci.

na sdíleným hostingu ti to buď nepovolí nové php spojení a ten člověk čeká nebo ti to selže na spojení k databázi, kdy je tam moc přístupů.

a jak dlouho ti trvá zpracování té stránky? nemáš tam nějaké náročné nebo neoptimalizované výpočty?

Václav Pávek
Backer | 96
+
0
-

Když jsem zasahoval do nějaké aplikace nebo aplikaci přenášel pryč a potřeboval jsem si udělat dump DB tak DB byla nejslabším místem. Za mě Wedos na hobby projekty, jinak cokoli jiného.

Mohu doporučit hostingy vas-hosting.cz, coolhosting.cz a hosting.blueboard.cz

Editoval Václav Pávek (10. 11. 2020 13:04)

MikKuba
Člen | 75
+
0
-

@DavidMatějka
Ano, je to vlastně navazující na toto vlákno. Jen tehdy to opravdu padalo na 500 stránku, což bylo dost blbý, takže jsem při nezískání dat z DB zpracoval custom hlášku na té stránce a přímo JS tlačítko na refresh.

Já se právě obávám toho přístupu do DB, byť 25 zařízení naráz není moc, ale jelikož chyba při tomto připojení je to že se snažím číst z toho co mi vrátí DB, ale ona reálně nic nevrátila, tak jsem očekával že nějakým způsobem se ten požadavek na DB nevyřídí.

Zpracování stránky a její doba zpracování bude určitě minimální, prvotní načtení má jen na základě URL parametrů z DB vytáhnout jeden konkrétní řádek a jinak tam nic náročného není.
Viz. třeba testovací test: https://pisemky.online/…jpfb69u95/e2

David Matějka napsal(a):

a jsi si jistý, že za to může limit hostingu a ne nějaká chyba v aplikaci? jestli je to pořád ta stejná, co tady https://forum.nette.org/…ni-presenter, tak je to pravděpodobně chybou v aplikaci.

na sdíleným hostingu ti to buď nepovolí nové php spojení a ten člověk čeká nebo ti to selže na spojení k databázi, kdy je tam moc přístupů.

a jak dlouho ti trvá zpracování té stránky? nemáš tam nějaké náročné nebo neoptimalizované výpočty?

MikKuba
Člen | 75
+
0
-

Díval jsem se například na limity u Active24, kde udávají max_db_connections = 30, u HTTP requestů souběžných píší 50.
U Wedosu se mi nepodařilo zjistit hodnotu max_db_connections, tam pouze počet PHP procesů = 7.

romanm
Člen | 27
+
0
-

Máš možnost to zkusit i na jiném hostingu například? Aby se projevilo, že jde o limit serveru (klienta)? Dle toho popisu se tam nic extrémního asi neděje a přijde mi zvláštní, že by to Wedos neustál. Tím se ho nechci zastávat, kvalita odpovídá zaplaceným penězům :-)

Alternativně ti můžu nabídnout místo pro otestování včetně performance grafů z databáze, webserveru a tak… ale takhle kdo ví kde je zakopaný pes.