Diskuze: Složitý skript náročný na výkon pro web server s administrací
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj,
co to udělat tak, že si práci rozložíš a budeš ty stránky zpracovávat průběžně během celého dne? Pak nebude jednorázově taková zátěž a bude se to všechno hezky stíhat.
Jinak se mi 30 sekund zdá opravdu moc, co všechno tam děláš? Stažení stránky, zpracování a volání API by se běžně mělo stihnout pod 2 sekundy, v extrémních případech max. 5 sekund.
Ono to, že se to v tu jednu hodinu stane jak tak trochu účel. Jeden typ uživatelů musí do té hodiny připravit podklady ke zpracování pro odeslání druhému typu uživatelů. Ono to musí celou stránku přeparsovat a přefiltrovat informace v ní - používám k tomu http://simplehtmldom.sourceforge.net/ . Pak těmi informacemi naplní databázi pomocí údajů, které zadala první skupina uživatelů.
Nevím jak dlouho to může trvat na nějakém externím web serveru, když jsem ten parser použil u jednoho jiného projektu, tak místo mých 10ti sekund mu to trvalo 2 sekundy u cizího hostingu.
Myslíte že je tohle správný postup nebo existuje nějaký způsob jak to jinak optimalizovat za těchto podmínek?
myslim, ze v tomto pripade by mohlo pomoct prekompilacia PHP tak, ako to robi FB, ba dokonca aj vydal na to nastroj a myslim, ze je k dispozicii aj so zdrojovymi kodmi pod opensource licenciou
Myslím že po měsíci už to má pořešené
Ta knihovna má velikou režii, taky jsme ji používali, ale museli jsme
vyvinout vlastní řešení kvůli výkonu (zlepšení z 160sekund na 23 sekund,
nehledě na to že si to vzalo 6x vyšší prostředky).
Ale 30 sekund není na podobný věci nic neobvyklýho, na nějakým normálním serveru by měl mnohem lepší výsledek.
No pořešené to mám jen dočasně, chce to optimalizaci. Už dávno jsem přemýšlel o předkompilováním, ale je to spíše studentský indie projekt a použít hiphop by mohlo být na mně trochu náročné.
Nejsem ještě v PHP moc zdatný, ale neexistovalo by v PHP něco jako multithreading? Nebo nějakým způsobem mít více webserverů pod jednou doménu a každý z nich by byl zodpovědný za jinou část webů, které se zpracují? Taky jsem koukal, že Amazon má nějaké servery na webové aplikace a uložiště (moc dobře tomu ale nerozumím), nemohl by Amazon tímto způsobem nabízet řešení?
Jsem z toho docela zoufalý, brzo by to mělo být v ostrém provozu.
Loadbalancing je řešení, ale myslím dost overkill, alespoň ten
opravdovej.
Samozřejmě můžeš rozložit operace na různé servery, tam je to už jen o
implementaci.
Multithreading v php je, ale je to taková sranda, určitě se najde lepší řešení.
Jestli rozumím správně, máš jeden php soubor, kterej po spuštění udělá postupně všechny operace? "Multithreadovat" to můžeš jednoduše tak, že budeš mít pro každou stránku jednu instanci - ale pozor, určit správné škálování je věda a mohl by sis uškodit více než pomoct.
Ale jestli máme nějak rozumně pomoct, budeme potřebovat víc detailních informací - klidně i do PM jestli to nechceš mít veřejně, rád pomůžu.
Zobrazeno 8 zpráv z 8.