abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 22:00 | Komunita

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil (podcast) detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 64 tisíc vývojářů. Jejich nejmilovanější platformou je linuxový desktop. Ten je také druhou nejpoužívanější platformou vývojářů.

Ladislav Hagara | Komentářů: 0
24.3. 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 8
24.3. 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 38
23.3. 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 6
23.3. 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
23.3. 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
23.3. 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 30
23.3. 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
23.3. 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
23.3. 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 933 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: server - jak servírovat mnoho http požadavků?

    2.9.2010 21:49 Dalibor
    server - jak servírovat mnoho http požadavků?
    Přečteno: 1184×
    Přílohy:
    Zdravím zdejší guru ;-)

    Chtěl bych poprosit o radu,

    provozuji web s návštěvností kolem 30.000/den (www.i-bazar.cz), celou dobu ale nějak bojuju se servírováním stránek. Loguju délku generování stránek, ta se pohybuje kolem 500ms - problém je ale v tom, že skutečné načtení stránky v prohlížeči trvá klidně i 3-5 sekund než se něco začne dít - potom vyjede stránka, kde je ale napsán čas 0.03 sec.. Kde se nabírá to zpoždění? Přitom toto se stává i u statického obsahu.. Bez reverzní proxy to bylo horší.. Můžete mrknout na www.i-bazar.cz a ten čas je úplně dole jako číslo v patičce.

    V aplikaci samotné už toho není moc co řešit, db dobře navrhnutá, kešování na několika úrovních do ramdisku apod.. Celkem pomohla reverzní proxy, kterou jsem na server 1 dal, ale pořád to není ono.. Ani jeden server neswapuje.

    Web běží na dvou dedikovaných serverech:

    1) reverzní proxy + Apache + php, sem chodí požadavky na webové stránky. Reverzní proxy je přijme, pokud jde o statický obsah servíruje jej rovnou, pokud jde o dynamický, posílá na Apache. PHP se připojuje přes Gbit na MySQL server. Tento server má trošku méně výkonný HW, ale měl by stačit.

    stats: http://example.net/net/baska2.net.html
    2x 2 jádra, 8GB ram
    load average asi 5-10
    vytížení CPU asi 25% aplikace a 25% bere čekání na IO
    5-15 přístupů do apache za sekundu (generování PHP)

    2) MySQL server - přijímá požadavky od serveru 1. Běží na něm taky Apache a servíruje pouze statický obsah jako jsou css a js (odhlečení pro server 1). tento server má výkonný HW

    stats: http://example.net/net/baska3.net.html
    2x 4 jádra, 16GB ram
    load average asi 5-10
    vytížení CPU asi 20% aplikace a 10% bere čekání na IO
    15-25 přístupů do apache za sekundu (statické věci)

    Za každou radu budu moc vděčný! Díky, Dalibor

    Odpovědi

    2.9.2010 22:13 sivlk | skóre: 15 | blog: sivlk
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Příloha:
    > Kde se nabírá to zpoždění?

    Podozrievam najma toto, skus ich docasne vypnut (napr. len pre IP adresu tvojho testovacieho klientskeho pocitaca):

    spir.hit.gemius.pl www.google-analytics.com toplist.cz
    2.9.2010 22:19 sivlk | skóre: 15 | blog: sivlk
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    este aj impcz.adocean.pl, este by si mohol skusit urobit to co google na hlavnej stranke, dat vsetky obrazky grafiky stranky do jedneho suboru a pouzivat offsety css
    3.9.2010 20:22 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Ahoj,

    díky za tip, já myslím dobu, než vůbec přijde nějaká odezva od serveru.. Ty skripty jsou druhá věc, tam je jasné, že to načtení a vykreslení stránky zdrží.. ale mě jde spíše o tu dobu, než vůbec dorazí odpověď na HTTP požadavek..

    Díky, Dalibor
    4.9.2010 22:12 asdfg
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Co to mas sivlk za plugin v chrome?
    4.9.2010 22:28 sivlk | skóre: 15 | blog: sivlk
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    To nie je ziaden plugin, to je v kazdom chrome. Nastroje -> Nastroje pre vyvojarov -> Resources, dole kliknut na cierny puntik a F5 a je to.
    2.9.2010 22:57 VSi | skóre: 28
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    U CPU grafu z prvního serveru je patrný vysoký IO load. Z grafu se to na první pohled nezdá, ale ve špičkách zabírá celé jádro CPU (100%). Což je podle popsaného účelu serveru trochu zvláštní. IO load obvykle tvoří hlavně čekání na disk. Kolik je asi toho statického obsahu, který je "aktuální" - přichází na něj požadavky během několika hodin? Pokud se nevejde do diskové cache v RAM a jde např. o několik GB obrázků náhodně načítaných, může i to být problém. Jaký datový tok z toho serveru jde?

    Prozkoumal bych na prvním serveru htop, co žere nejvíc CPU. Pak taky počet IO operací na diskovém systému. Případný problém na druhém serveru by prozradilo profilování SQL dotazů - pokud tady není úzké hrdlo, tak tenhle stroj by to neměl způsobovat. 15-25 req/s na pár statických souborů je skoro nic.

    Lepší než reverzní proxy (jaký sw na to máte?) je statický obsah oddělit na samostatnou doménu a IP adresu a použít lighttpd nebo nginx, na PHP klidně pro začátek Apache s mod_php, který má asi nejvyšší výkon (i když pokles výkonu u fastcgi je obvykle neznatelný). Použitím lighttpd pro PHP by se možná uspořila pamět, ale stím problém asi nemáte.

    Jinak při pomalém načítání si web otevřete ve firefoxu s firebugem - tam je přesně vidět, na co se kde čeká.
    3.9.2010 20:31 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Díky,

    jde přesně asi o 150GB obrázků, ty jsem zapomněl v problému popsat - ty nešly tak lehce oddělit od aplikace, takže jsem je nepřesunul na druhý server, který není tak vytížený.

    Ten druhý server by neměl být úzké hrdlo, je svižný, % vytížení CPU skoro žádné.. cca 300 dotazů do MySQL za sekundu. Na ten htop se určitě podívám, neco takového jsem hledal.. zase o nco chytřejší ;-)

    jako reverzní proxy používám nginx, nejřív jsem si myslel, že je blbost cpát další vrstvu na ten samý HW - že to nemůže pomoci.. ale udělalo to to, že nginx teď čeká než se přijme kompletní HTTP hlavička a nevytěžuje tak vlákna Apache. Jakmile se načte celá HTTP hlavička, předá se na Apache, ten to vyřeší, vráti na nginx a ten zase čeká, než si ji klient stáhne.. Z logu jde vidět, že dost HTTP požadavků si klienti stahují i půl sekundy, paralelně, a tak vytěžují vlákna Apache, který jen čeká na uvolnění.

    Ten Firebug taky neznám, díky!

    Dalibor
    6.9.2010 11:44 Sten
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Lepší než reverzní proxy (jaký sw na to máte?) je statický obsah oddělit na samostatnou doménu a IP adresu
    Reverzní proxy je velmi důležitá věc pro dosažení vysokého výkonu, tu bych rozhodně ponechal

    Lepší je oddělit to na samostatný server, to je jisté, ale tady by stačilo, kdyby statický obsah servírovala ona reverzní proxy, klidně pod stejnou doménou a IP adresou (zrovna nginx tohle zvládá pomocí sendfile a pollu tak dobře, že Apache za tu dobu často nestihne ani začít hledat, kde se ten soubor nachází). Je zbytečné tím vytěžovat dynamický server, který má velkou režii pro každý požadavek
    3.9.2010 08:45 none
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Ahoj!

    Asi by to bylo prilis jednoduche, ale obdobne chovani (prodleva a pak rychle vracni stranky) muze byt zpusobene limitem Apache na pocet konekci. Pokud k tomu dojde, ceka se na spusteni/uvolneni vlakna apache (to mohou byt ty dve/tri sekundy) a pak je stranka rychle vracena. Neni to ono?

    3.9.2010 20:35 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Ahoj,

    přesně tento problém jsem míval před pár lety ;-) Teď mám limit konexí 256, 200 vláken je připravených v záloze a cca 15-20 je aktivních.. ikdyž, toto je Apache, před ním je ještě nginx, tam ten limit neznám.. nginx má teď ve špičce kolem 600 spojení aktivních, ale není tam znát, že by je nějak omezoval..
    3.9.2010 21:01 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Pokud vám vadí prodleva před zobrazením v prohlížeči, podívejte se na to ze strany prohlížeče. Existují různé doplňky, které umožňují zobrazit dobu nahrávání jednotlivých částí stránky. Umí to např. i FireBug na panelu Síť, nebo jsou pak na to specializované doplňky.
    3.9.2010 21:09 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Právě jsem vyzkoušel ten Firebug a je to přesně tak.. PHP mi napíše čas vygenerování 0.05s, ale přitom 9 sekund se čeká na odpověď na http požadavek :-(

    jdu na ten htop..

    Dalibor
    3.9.2010 21:36 VSi | skóre: 28
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Můj tip je, že těch 150 GB obrázků může dělat problém, pokud je na ně hodně požadavků a často se musí sahat mimo RAM cache. Tomu napovídá i iowait v grafu. Pokud tam není databáze, tak je to možná příčina.
    5-15 přístupů do apache za sekundu (generování PHP)
    To je včetně těch obrázků co jdou skrz nginx, nebo čistě jen PHP? Možná by pomohlo nastavit (jestli to tak už není) nginx, aby se o obrázky staral úplně sám (na základě URL), a Apache nechat jen na PHP.

    Jestli se 9 sekund čeká na "aplikační" http požadavek, a přitom čas běhu php skriptu je skutečně 0.05s, musí být problém v čekání uvnitř http serveru. Pravděpodobně se projevuje nějaký limit na počet spojení (MaxClients v Apache) apod. Podobnou situaci jsem viděl na serveru, kde bylo 80 req/s jen na PHP přes fastcgi a 3000 PHP procesů, k tomu cca 100 req/s na statické obrázky přes lighttpd (běžela tam top 100 facebook aplikace, přes 1,5M uživatelů). V tomto velmi pomůže Apache server-status. Kdyžtak sem dejte ještě jeho výpis.
    4.9.2010 21:22 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Těch 150GB obrázků jde přímo přes nginx, na Apache jsou posílány jen požadavky na PHP. Bojuju teď s tím htopem, abych zjistil, co a jak přistupuje na disk..

    server status je zde: http://www.baska2.net/server-status

    je to moc dlouhé, tak to sem raději nebudu kopírovat..

    Ještě jednou všem moc děkuji za tipy,

    Dalibor
    5.9.2010 14:38 1john2
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    pokud jste neznal htop, možná neznáte ani iotop nebo iftop(ale ten asi moc nepomůže)
    5.9.2010 17:32 Vantomas | skóre: 24 | Praha
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    a atop to spojuje vsechno dohromady (az na tu sit)
    5.9.2010 17:33 Vantomas | skóre: 24 | Praha
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    tak ted koukam, ze i tu sit, ale chybi mi pry nejaky patch v jadre.
    6.9.2010 10:54 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Příloha:
    Tak pomalu se kloním k názoru, že úzké hrdlo bude ten disk.

    Na server chodí asi tak 50-60 http requestů za sekundu, vetšinou na statiské prvky (obrázky).

    přikládám výstup z iostat, co jsem ještě nenapsal - systém běží na sw RAID 1, sda+sdb = md0. Nechápu, co znamená v iostat rrqm/s (mělo by být počet requestů na čtení za sec.) a wrqm/s (zápis/sec.), proč je to rrqm/s tak nízké oproti wrqm/s?

    nějak se do toho zamotávám :-(
    6.9.2010 11:32 Roman DAVID | skóre: 24 | Brno
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Pokud mate zapnuto, tak zkuste:

    Zrusit vyhledavani .htaccess souboru (AllowOverride None + souvisejici)

    Vypnout HostnameLookups (Off)

    Krakodobe zkusit vypnout logovani Apache , pripadne logovat na jiny disk
    6.9.2010 12:00 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Hostnamelookups vypnuté, toto dělalo velké problémy dříve logování jsem měl úplně vypnuté, jak apache, tak nginx

    na ten htaccess se podívám, dost ho používám, tak to budu muset poladit
    6.9.2010 11:50 Sten
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    rrqm/s
    počet čtecích dotazů za sekundu
    wrqm/s
    počet zapisovacích dotazů za sekundu
    Ten server strašně moc zapisuje. Vzhledem k tomu, že je to RAID 1, tak tam velmi dlouho trvá něco zapsat, naopak čtení je velmi rychlé. Nemáte tam zbytečně velké logování, třeba access logy na nginxu i Apache, když z hlediska zákona úplně stačí jenom na nginxu? Můžete ještě zkusit umístit PHP sessiony (pokud je používáte) do RAM disku, to také ušetří velké množství zápisů
    6.9.2010 12:01 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Logování skoro všechno vypnuté, ty PHP session hodím do ramdisku, dobrý nápad. Díky
    6.9.2010 12:10 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    nějaké další nové poznatky:

    zapnul jsem dočasně logování pro nginx a apache i s dobou vyřízení requestu. Zjistil jsem, že statické prvky se načítají za 0.000 sec. a to úplně všechny a pořád - jak z disku, tak z ramdisku. Ale horší je to s PHP.

    Ale co jsem zjistil zajímavého, že chvíli jede server svižně - Apache i nginx logují dobu na vyřízení requestu v řádu desítek až stovek ms, ale pak přijde zase na pár minut chvilka, kdy se vše vyřizuje třeba v řádu desítek sekund a někdy i třeba dvě minuty apod.

    Je to cca po pěti minutách. Zkusím vypnout cron, možná to zpomaluje nějaké generování aplikací na pozadí.
    6.9.2010 12:16 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    k tomu php - používáš eaccelerator nebo něco podobného?
    -- Nezdar není hanbou, hanbou je strach z pokusu.
    6.9.2010 12:33 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    nene, pouze dělám cachování obsahu, který vygenerují php skripty - části stránek a ty pak lepím dohromady, aby se nemuselo vše pořád generovat znova. Ale nic na předkompilaci php skriptů nepoužívám. Těžko říct, jestli by to něčemu pomohlo..
    7.9.2010 07:57 HoGo
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Predpokladam ze mas souborovy system ze ktereho se ctou a zapiduje data a soubory (php,www,logy) pripojen s parametrem noatime ? Tohle muze docela pomoci. Zkus proverit (ale opravdu dukladne) nastaveni DNS a jeho vliv na dotazy, nekdy to ma dost velky ucinek, ackoli si clovek mysli ze to ma vypnute, nebo dobre poladene ( primarni, sekundarni DNS .. ) Zakaz vse co neni nezbytne nutne z .htaccess - pripadne je vybec nepouzivaj ( vypni pomoci Options atd.) dost to spomaluje - viz to jak se .htaccess hleda v cele ceste a zpracovava, lepsi je to nastavit natvrdo pro dany adresar v httpd.conf... To periodicke zpomalovani by vypadalo na nejaky odlozeny sync dat s diskem. Kde delas to cahovani - disk ? ( vypni noatime ) Pripadne to delej v pameti, nebo pouzij ramdisk. Urcite napis jak jsi dopadl.
    10.9.2010 10:12 Dalibor
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Přílohy:
    Tak jsem namountoval filesystem s parametrem noatime a zdá se, že problémy pominuly - běsně se to urychlilo ;-) Přikládám týdení statistiky, bod zlomu určitě poznáte ;-)

    Zase jsem o něco chytřejší, díky moc všem zúčastněným!

    Ještě poladím htaccess a pár dalších míst a bude zase na pár měsíců pokoj.

    Jinak všechno co se kešuje je v ramdisku, takže tam to snad nepůsobí žádné zdržení..
    7.9.2010 11:43 iwk
    Rozbalit Rozbalit vše Re: server - jak servírovat mnoho http požadavků?
    Nie je len problem vo velkom mnozstve suborov v tomto cache adresari, ktory spomaluje io operacie? Pripadne, aky je limit pre maximalny pocet otvorenych suborov (nofiles) pre uzivatela, pod ktorym bezi webserver a php skripty?

    Btw, nebude lepsie je pouzit memcached namiesto ukladania na disk?

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.