Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
HighLoad 
äëÿ íà÷èíàþùèõ
HighLoad äëÿ íà÷èíàþùèõ 
Dmitry E. Oboukhov 
31 îêòÿáðÿ 2014
HighLoad, ÷òî ýòî? 
I Êîíôåðåíöèÿ?
HighLoad, ÷òî ýòî? 
I Êîíôåðåíöèÿ? 
I Âûñîêàÿ íàãðóçêà?
HighLoad, ÷òî ýòî? 
I Êîíôåðåíöèÿ? 
I Âûñîêàÿ íàãðóçêà? 
I Ìèô?!
Âûñîêàÿ íàãðóçêà ÷òî ýòî?
Âûñîêàÿ íàãðóçêà ÷òî ýòî? 
I 53:328  109 çàïðîñîâ â ñåêóíäó?
Âûñîêàÿ íàãðóçêà ÷òî ýòî? 
I 53:328  109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU
Âûñîêàÿ íàãðóçêà ÷òî ýòî? 
I 53:328  109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU 
I Áîëåå ðåàëèñòè÷íî!
Âûñîêàÿ íàãðóçêà ÷òî ýòî? 
I 53:328  109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU 
I Áîëåå ðåàëèñòè÷íî! 
I 1 çàïðîñ â ñåêóíäó?
Âûñîêàÿ íàãðóçêà ÷òî ýòî? 
I 53:328  109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU 
I Áîëåå ðåàëèñòè÷íî! 
I 1 çàïðîñ â ñåêóíäó? - ...
Âûñîêàÿ íàãðóçêà ÷òî ýòî? 
I 53:328  109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU 
I Áîëåå ðåàëèñòè÷íî! 
I 1 çàïðîñ â ñåêóíäó? - ...
Âûñîêàÿ íàãðóçêà ýòî:
Âûñîêàÿ íàãðóçêà ýòî: 
Íàãðóçêà, ñ êîòîðîé íå ñïðàâëÿåòñÿ 
æåëåçî
Êîãäà ýòî áûâàåò?
Êîãäà ýòî áûâàåò? 
Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ
Êîãäà ýòî áûâàåò? 
Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ 
I Ñåòü
Êîãäà ýòî áûâàåò? 
Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ 
I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà
Êîãäà ýòî áûâàåò? 
Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ 
I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà 
I Ïàìÿòü
Êîãäà ýòî áûâàåò? 
Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ 
I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà 
I Ïàìÿòü 
I CPU
Êîãäà ýòî áûâàåò? 
Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ 
I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà 
I Ïàìÿòü 
I CPU 
I Õðàíèëèùå ä...
Ïðè÷èíû
Ïðè÷èíû 
I Íåäîèñïîëüçîâàíèå æåëåçà
Ïðè÷èíû 
I Íåäîèñïîëüçîâàíèå æåëåçà 
I Òðóäíîñòè ìàñøòàáèðîâàíèÿ
Ïðè÷èíû 
Àðõèòåêòóðíûå ïðîáëåìû
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð.
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... 
Çàäà÷è îäíîãî öèêëà 
I ×òåíèå çàïðîñà è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷àëèñü ðàçãîâîðû î HighLoad?
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷àëèñü ðàçãîâîðû î HighLoad? 
I Óâåëè÷åíèå ÷èñëà ïðîöåññîâ/òðåäîâ.
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷àëèñü ðàçãîâîðû î HighLoad? 
I Óâåëè÷åíèå ÷èñëà ïðîöåññîâ/òðåäîâ. 
I Óâåëè÷åíèå ÷èñëà ñåðâåðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó
Íåäîèñïîëüçîâàíèå æåëåçà 
Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó 
I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó.
Íåäîèñïîëüçîâàíèå æåëåçà 
Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó 
I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. 
I Óâåëè÷è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó 
I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. 
I Óâåëè÷è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó 
I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. 
I Óâåëè÷è...
Íåäîèñïîëüçîâàíèå æåëåçà 
Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó 
I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. 
I Óâåëè÷è...
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü?
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó?
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó? 
- Ìû íàä ýòèì 3 ãîäà ðàáîòàëè!
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó? 
- Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! 
I Äîáàâëÿòü âòîðîé ñåðâåð?
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó? 
- Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! 
I Äîáàâëÿòü âòîðîé ñåðâåð? 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó? 
- Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! 
I Äîáàâëÿòü âòîðîé ñåðâåð? 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó? 
- Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! 
I Äîáàâëÿòü âòîðîé ñåðâåð? 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
×òî äåëàòü? 
I Ìåíÿòü àðõèòåêòóðó? 
- Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! 
I Äîáàâëÿòü âòîðîé ñåðâåð? 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðåíèÿ
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðåíèÿ 
×òåíèå çàïðîñà èç ñåòè. 15Ê RPS
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðåíèÿ 
×òåíèå çàïðîñà èç ñåòè. 15Ê RPS 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê ...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðåíèÿ 
×òåíèå çàïðîñà èç ñåòè. 15Ê RPS 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê ...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðåíèÿ 
×òåíèå çàïðîñà èç ñåòè. 15Ê RPS 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê ...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðåíèÿ 
×òåíèå çàïðîñà èç ñåòè. 15Ê RPS 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê ...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
1 
1 
+ 1 
+ 1 
+ 1 
+ 1 
15 103150 10360 103100 10315 103 
= 6000RPS
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
1 
1 
+ 1 
+ 1 
+ 1 
+ 1 
15 103150 10360 103100 10315 103 
= 6000RPS 
Íî, ïîçâîëüòå!
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
1 
1 
+ 1 
+ 1 
+ 1 
+ 1 
15 103150 10360 103100 10315 103 
= 6000RPS 
Íî, ïîçâîëüòå! 
I ...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
1 
1 
+ 1 
+ 1 
+ 1 
+ 1 
15 103150 10360 103100 10315 103 
= 6000RPS 
Íî, ïîçâîëüòå! 
I ...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Íà÷èíàåì ðàçáèðàòüñÿ 
I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå 
ñîåäèíåíèé ê...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðåçþìå ñèòóàöèè, åùå ðàç
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðåçþìå ñèòóàöèè, åùå ðàç 
I Èìååòñÿ 100500 ñòðîê êîäà, íàä êîòîðûì ðàáîòàëè íåñêîëüêî ëåò.
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðåçþìå ñèòóàöèè, åùå ðàç 
I Èìååòñÿ 100500 ñòðîê êîäà, íàä êîòîðûì ðàáîòàëè íåñêîëüêî ëåò. 
I Ýò...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ðåçþìå ñèòóàöèè, åùå ðàç 
I Èìååòñÿ 100500 ñòðîê êîäà, íàä êîòîðûì ðàáîòàëè íåñêîëüêî ëåò. 
I Ýò...
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ.
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 
I Ïàðñèíã çàïðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 
I Ïàðñèíã çàïðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 
I Ïàðñèíã çàïðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 
I Ïàðñèíã çàïðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 
I Ïàðñèíã çàïðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè 
I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 
I Ïàðñèíã çàïðî...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì 
Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì 
Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì 
Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì 
Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì 
Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èçìåðÿåì 
Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ 
Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ 
...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 =
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ 
I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 =
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ 
I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 = 156 ìêñ
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ 
I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 = 156 ìêñ 
I Êîä...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ 
I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 = 156 ìêñ 
I Êîä...
Íåäîèñïîëüçîâàíèå æåëåçà 
#include unistd.h 
int main(int argc, char **argv) { 
int i; 
for (;;) { 
usleep(70); usleep(7);...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Èòîãî 
I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU 
- ïî ìîèì èçìåðåíèÿì - ãäå-òî 15...
Íåäîèñïîëüçîâàíèå æåëåçà 
Ïðîñòî ðåîðãàíèçîâàòü êîä
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Êîìïüþòåð  ýòî êîíå÷íûé àâòîìàò. Òðåäû äëÿ òåõ ëþäåé, 
êîòîðûå íå óìåþò ïðîãðà...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èçáàâèìñÿ îò òðåäîâ!
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èçáàâèìñÿ îò òðåäîâ! 
- è ïðîöåññîâ.
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ìàøèíà ñîáûòèé
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ìàøèíà ñîáûòèé 
I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ.
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ìàøèíà ñîáûòèé 
I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. 
- â îáùåì ñëó÷àå...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ìàøèíà ñîáûòèé 
I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. 
- â îáùåì ñëó÷àå...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ìàøèíà ñîáûòèé 
I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. 
- â îáùåì ñëó÷àå...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ìàøèíà ñîáûòèé 
I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. 
- â îáùåì ñëó÷àå...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ.
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïåðåñòðîèì íàø ñåðâåð 
I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. 
- çàìåíèòñÿ îáðàáî...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èòîãî
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èòîãî 
I Ïðîèçâîäèòåëüíîñòü îäíîãî ñåðâåðà âûðîñëà â 10 ðàç
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èòîãî 
I Ïðîèçâîäèòåëüíîñòü îäíîãî ñåðâåðà âûðîñëà â 10 ðàç 
I Îäíîãî CPU/êîíí...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èòîãî 
I Ïðîèçâîäèòåëüíîñòü îäíîãî ñåðâåðà âûðîñëà â 10 ðàç 
I Îäíîãî CPU/êîíí...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
×òî çàòðîíóòî èçìåíåíèÿìè
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
×òî çàòðîíóòî èçìåíåíèÿìè 
I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàï...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
×òî çàòðîíóòî èçìåíåíèÿìè 
I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàï...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
×òî çàòðîíóòî èçìåíåíèÿìè 
I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàï...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
×òî çàòðîíóòî èçìåíåíèÿìè 
I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàï...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Ïëàíèðîâùèê 
Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê 
...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé 
Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê:
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé 
Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: 
I Ðåãèñòðà...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé 
Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: 
I Ðåãèñòðà...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé 
Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: 
I Ðåãèñòðà...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé 
Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: 
I Ðåãèñòðà...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé 
Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: 
I Ðåãèñòðà...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå 
Âåðíåìñÿ ê íàøåìó ñåðâåðó 
I Äîáàâëÿåì ìàøèíó ñîáûòèé 
I Äîáàâëÿåì áèáëèîòåêó ...
Áèáëèîòåêè è ÿçûêè
Áèáëèîòåêè è ÿçûêè 
I Perl
Áèáëèîòåêè è ÿçûêè 
I Perl 
Coro + AnyEvent
Áèáëèîòåêè è ÿçûêè 
I Perl 
Coro + AnyEvent 
I Python
Áèáëèîòåêè è ÿçûêè 
I Perl 
Coro + AnyEvent 
I Python 
fibers + twisted
Áèáëèîòåêè è ÿçûêè 
I Perl 
Coro + AnyEvent 
I Python 
fibers + twisted 
I PHP5
Áèáëèîòåêè è ÿçûêè 
I Perl 
Coro + AnyEvent 
I Python 
fibers + twisted 
I PHP5 
ïîÿâèëñÿ îïåðàòîð yield, fiber
×òî äàëüøå?
×òî äàëüøå? 
I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè
×òî äàëüøå? 
I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè 
I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû
×òî äàëüøå? 
I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè 
I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû 
I N...
×òî äàëüøå? 
I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè 
I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû 
I N...
×òî äàëüøå? 
I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè 
I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû 
I N...
Tarantool
Tarantool 
I Ïîëíîöåííûé app-ñåðâåð
Tarantool 
I Ïîëíîöåííûé app-ñåðâåð 
I ÁÄ íà áîðòó
Tarantool 
I Ïîëíîöåííûé app-ñåðâåð 
I ÁÄ íà áîðòó 
- in-memory
Tarantool 
I Ïîëíîöåííûé app-ñåðâåð 
I ÁÄ íà áîðòó 
- in-memory 
- disk
Tarantool 
I Ïîëíîöåííûé app-ñåðâåð 
I ÁÄ íà áîðòó 
- in-memory 
- disk 
I Ñîêåòû, äèñê, http-ñåðâåð, î÷åðåäè
Íåäîñòàòêè
Íåäîñòàòêè 
I Äëÿ áîëüøèõ ïðîåêòîâ îäíîãî CPU âñå-òàêè ìàëîâàòî
Íåäîñòàòêè 
I Äëÿ áîëüøèõ ïðîåêòîâ îäíîãî CPU âñå-òàêè ìàëîâàòî 
I Ðåàëèçàöèè fiber’îâ äëÿ òðàäèöèîííûõ ßÏ ïëîõî ìàñøòàáèð...
Ïåðñïåêòèâà
Ïåðñïåêòèâà 
I Erlang
Ïåðñïåêòèâà 
I Erlang 
- õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì
Ïåðñïåêòèâà 
I Erlang 
- õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì 
- î÷åíü êà÷åñòâåííîå ðåøåíèå
Ïåðñïåêòèâà 
I Erlang 
- õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì 
- î÷åíü êà÷åñòâåííîå ðåøåíèå 
- âûñîêèé ïîðîã âõîæäåíèÿ
Ïåðñïåêòèâà 
I Erlang 
- õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì 
- î÷åíü êà÷åñòâåííîå ðåøåíèå 
- âûñîêèé ïîðîã âõîæäåíèÿ ...
Ïåðñïåêòèâà 
I Erlang 
- õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì 
- î÷åíü êà÷åñòâåííîå ðåøåíèå 
- âûñîêèé ïîðîã âõîæäåíèÿ ...
Highload для начинающих, Дмитрий Обухов (Mail.ru)
Upcoming SlideShare
Loading in …5
×

Highload для начинающих, Дмитрий Обухов (Mail.ru)

2,494 views

Published on

Доклад Дмитрия Обухова на HighLoad++ 2014.

Published in: Internet
  • Be the first to comment

Highload для начинающих, Дмитрий Обухов (Mail.ru)

  1. 1. HighLoad äëÿ íà÷èíàþùèõ
  2. 2. HighLoad äëÿ íà÷èíàþùèõ Dmitry E. Oboukhov 31 îêòÿáðÿ 2014
  3. 3. HighLoad, ÷òî ýòî? I Êîíôåðåíöèÿ?
  4. 4. HighLoad, ÷òî ýòî? I Êîíôåðåíöèÿ? I Âûñîêàÿ íàãðóçêà?
  5. 5. HighLoad, ÷òî ýòî? I Êîíôåðåíöèÿ? I Âûñîêàÿ íàãðóçêà? I Ìèô?!
  6. 6. Âûñîêàÿ íàãðóçêà ÷òî ýòî?
  7. 7. Âûñîêàÿ íàãðóçêà ÷òî ýòî? I 53:328 109 çàïðîñîâ â ñåêóíäó?
  8. 8. Âûñîêàÿ íàãðóçêà ÷òî ýòî? I 53:328 109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU
  9. 9. Âûñîêàÿ íàãðóçêà ÷òî ýòî? I 53:328 109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU I Áîëåå ðåàëèñòè÷íî!
  10. 10. Âûñîêàÿ íàãðóçêà ÷òî ýòî? I 53:328 109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU I Áîëåå ðåàëèñòè÷íî! I 1 çàïðîñ â ñåêóíäó?
  11. 11. Âûñîêàÿ íàãðóçêà ÷òî ýòî? I 53:328 109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU I Áîëåå ðåàëèñòè÷íî! I 1 çàïðîñ â ñåêóíäó? - ëþáîé âåá ñåðâåð?...
  12. 12. Âûñîêàÿ íàãðóçêà ÷òî ýòî? I 53:328 109 çàïðîñîâ â ñåêóíäó? - ñðåäíèé CPU I Áîëåå ðåàëèñòè÷íî! I 1 çàïðîñ â ñåêóíäó? - ëþáîé âåá ñåðâåð?... ïåðåêîäèðóþùèé âèäåîðîëèêè? :)
  13. 13. Âûñîêàÿ íàãðóçêà ýòî:
  14. 14. Âûñîêàÿ íàãðóçêà ýòî: Íàãðóçêà, ñ êîòîðîé íå ñïðàâëÿåòñÿ æåëåçî
  15. 15. Êîãäà ýòî áûâàåò?
  16. 16. Êîãäà ýòî áûâàåò? Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ
  17. 17. Êîãäà ýòî áûâàåò? Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ I Ñåòü
  18. 18. Êîãäà ýòî áûâàåò? Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà
  19. 19. Êîãäà ýòî áûâàåò? Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà I Ïàìÿòü
  20. 20. Êîãäà ýòî áûâàåò? Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà I Ïàìÿòü I CPU
  21. 21. Êîãäà ýòî áûâàåò? Äîñòèãíóòû òåõíè÷åñêèå îãðàíè÷åíèÿ I Ñåòü - çà ðàìêàìè äàííîãî äîêëàäà I Ïàìÿòü I CPU I Õðàíèëèùå äàííûõ
  22. 22. Ïðè÷èíû
  23. 23. Ïðè÷èíû I Íåäîèñïîëüçîâàíèå æåëåçà
  24. 24. Ïðè÷èíû I Íåäîèñïîëüçîâàíèå æåëåçà I Òðóäíîñòè ìàñøòàáèðîâàíèÿ
  25. 25. Ïðè÷èíû Àðõèòåêòóðíûå ïðîáëåìû
  26. 26. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð.
  27. 27. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl
  28. 28. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python
  29. 29. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby
  30. 30. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà
  31. 31. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè.
  32. 32. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http.
  33. 33. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà.
  34. 34. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà. I Çàïðîñ(û) ê õðàíèëèùó äàííûõ.
  35. 35. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà. I Çàïðîñ(û) ê õðàíèëèùó äàííûõ. I Ôîðìèðîâàíèå îòâåòà (template).
  36. 36. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà. I Çàïðîñ(û) ê õðàíèëèùó äàííûõ. I Ôîðìèðîâàíèå îòâåòà (template). I Îòïðàâêà îòâåòà êëèåíòó.
  37. 37. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà. I Çàïðîñ(û) ê õðàíèëèùó äàííûõ. I Ôîðìèðîâàíèå îòâåòà (template). I Îòïðàâêà îòâåòà êëèåíòó. Òðàäèöèîííàÿ ðåàëèçàöèÿ
  38. 38. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà. I Çàïðîñ(û) ê õðàíèëèùó äàííûõ. I Ôîðìèðîâàíèå îòâåòà (template). I Îòïðàâêà îòâåòà êëèåíòó. Òðàäèöèîííàÿ ðåàëèçàöèÿ I îäèí ïðîöåññ íà îäèí öèêë
  39. 39. Íåäîèñïîëüçîâàíèå æåëåçà Ðàññìîòðèì òèïè÷íûé âåáñåðâåð. íà Perl, Python, Ruby... Çàäà÷è îäíîãî öèêëà I ×òåíèå çàïðîñà èç ñåòè. I Ïàðñèíã çàïðîñà http. I Âàëèäàöèÿ çàïðîñà, âûáîð êîíòðîëëåðà. I Çàïðîñ(û) ê õðàíèëèùó äàííûõ. I Ôîðìèðîâàíèå îòâåòà (template). I Îòïðàâêà îòâåòà êëèåíòó. Òðàäèöèîííàÿ ðåàëèçàöèÿ I îäèí ïðîöåññ íà îäèí öèêë I îäèí òðåä íà îäèí öèêë
  40. 40. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷àëèñü ðàçãîâîðû î HighLoad?
  41. 41. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷àëèñü ðàçãîâîðû î HighLoad? I Óâåëè÷åíèå ÷èñëà ïðîöåññîâ/òðåäîâ.
  42. 42. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷àëèñü ðàçãîâîðû î HighLoad? I Óâåëè÷åíèå ÷èñëà ïðîöåññîâ/òðåäîâ. I Óâåëè÷åíèå ÷èñëà ñåðâåðîâ.
  43. 43. Íåäîèñïîëüçîâàíèå æåëåçà Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó
  44. 44. Íåäîèñïîëüçîâàíèå æåëåçà Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó.
  45. 45. Íåäîèñïîëüçîâàíèå æåëåçà Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. I Óâåëè÷èëè ÷èñëî ïðîöåññîâ â ðàáîòå.
  46. 46. Íåäîèñïîëüçîâàíèå æåëåçà Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. I Óâåëè÷èëè ÷èñëî ïðîöåññîâ â ðàáîòå. Ïîìîãëî.
  47. 47. Íåäîèñïîëüçîâàíèå æåëåçà Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. I Óâåëè÷èëè ÷èñëî ïðîöåññîâ â ðàáîòå. Ïîìîãëî. I Íîâûå ïðîáëåìû ïðè 150 çàïðîñîâ â ñåêóíäó.
  48. 48. Íåäîèñïîëüçîâàíèå æåëåçà Âåðíåìñÿ ê ðàññìàòðèâàåìîìó ñåðâåðó I Ïðîáëåìû íàñòóïèëè ïðè 100 çàïðîñàõ â ñåêóíäó. I Óâåëè÷èëè ÷èñëî ïðîöåññîâ â ðàáîòå. Ïîìîãëî. I Íîâûå ïðîáëåìû ïðè 150 çàïðîñîâ â ñåêóíäó. I Äàëüíåéøåå óâåëè÷åíèå ÷èñëà ïðîöåññîâ ïîìîãàåò ñëàáî.
  49. 49. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü?
  50. 50. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó?
  51. 51. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó? - Ìû íàä ýòèì 3 ãîäà ðàáîòàëè!
  52. 52. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó? - Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! I Äîáàâëÿòü âòîðîé ñåðâåð?
  53. 53. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó? - Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! I Äîáàâëÿòü âòîðîé ñåðâåð? - Ýòî òîæå íå ïðîñòî! (áèçíåñëîãèêà) Ñïîêîéíî!
  54. 54. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó? - Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! I Äîáàâëÿòü âòîðîé ñåðâåð? - Ýòî òîæå íå ïðîñòî! (áèçíåñëîãèêà) Ñïîêîéíî! I Ïðîâåñòè àíàëèç àðõèòåêòóðû.
  55. 55. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó? - Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! I Äîáàâëÿòü âòîðîé ñåðâåð? - Ýòî òîæå íå ïðîñòî! (áèçíåñëîãèêà) Ñïîêîéíî! I Ïðîâåñòè àíàëèç àðõèòåêòóðû. I Ïðîâåñòè èçìåðåíèÿ.
  56. 56. Íåäîèñïîëüçîâàíèå æåëåçà ×òî äåëàòü? I Ìåíÿòü àðõèòåêòóðó? - Ìû íàä ýòèì 3 ãîäà ðàáîòàëè! I Äîáàâëÿòü âòîðîé ñåðâåð? - Ýòî òîæå íå ïðîñòî! (áèçíåñëîãèêà) Ñïîêîéíî! I Ïðîâåñòè àíàëèç àðõèòåêòóðû. I Ïðîâåñòè èçìåðåíèÿ. I Íàéòè ñëàáûå ìåñòà.
  57. 57. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðåíèÿ
  58. 58. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðåíèÿ ×òåíèå çàïðîñà èç ñåòè. 15Ê RPS
  59. 59. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðåíèÿ ×òåíèå çàïðîñà èç ñåòè. 15Ê RPS Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê RPS/CPU
  60. 60. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðåíèÿ ×òåíèå çàïðîñà èç ñåòè. 15Ê RPS Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê RPS/CPU Çàïðîñû ê õðàíèëèùó. 60Ê RPS
  61. 61. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðåíèÿ ×òåíèå çàïðîñà èç ñåòè. 15Ê RPS Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê RPS/CPU Çàïðîñû ê õðàíèëèùó. 60Ê RPS Ôîðìèðîâàíèå îòâåòà (Ñîåäèíåíèå äàííûõ ñ template) 100Ê RPS/CPU
  62. 62. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðåíèÿ ×òåíèå çàïðîñà èç ñåòè. 15Ê RPS Ïàðñèíã çàïðîñà, âàëèäàöèÿ, âûáîð êîíòðîëëåðà. 150Ê RPS/CPU Çàïðîñû ê õðàíèëèùó. 60Ê RPS Ôîðìèðîâàíèå îòâåòà (Ñîåäèíåíèå äàííûõ ñ template) 100Ê RPS/CPU Îòïðàâêà îòâåòà êëèåíòó. 15Ê RPS
  63. 63. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî 1 1 + 1 + 1 + 1 + 1 15 103150 10360 103100 10315 103 = 6000RPS
  64. 64. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî 1 1 + 1 + 1 + 1 + 1 15 103150 10360 103100 10315 103 = 6000RPS Íî, ïîçâîëüòå!
  65. 65. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî 1 1 + 1 + 1 + 1 + 1 15 103150 10360 103100 10315 103 = 6000RPS Íî, ïîçâîëüòå! I Ó íàñ ïðîáëåìû íà 150 RPS!
  66. 66. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî 1 1 + 1 + 1 + 1 + 1 15 103150 10360 103100 10315 103 = 6000RPS Íî, ïîçâîëüòå! I Ó íàñ ïðîáëåìû íà 150 RPS! I Òóò ÷òî-òî íå òàê!
  67. 67. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ
  68. 68. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó.
  69. 69. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî.
  70. 70. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî. íåïðèåìëåìî.
  71. 71. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî. íåïðèåìëåìî. I Òî æå ñàìîå è ñ âçàèìîäåéñòâèåì ñ êëèåíòîì.
  72. 72. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî. íåïðèåìëåìî. I Òî æå ñàìîå è ñ âçàèìîäåéñòâèåì ñ êëèåíòîì. ×òî äåëàòü?
  73. 73. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî. íåïðèåìëåìî. I Òî æå ñàìîå è ñ âçàèìîäåéñòâèåì ñ êëèåíòîì. ×òî äåëàòü? I Ïîïðîáóåì åùå óâåëè÷èòü ÷èñëî ïðîöåññîâ?
  74. 74. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî. íåïðèåìëåìî. I Òî æå ñàìîå è ñ âçàèìîäåéñòâèåì ñ êëèåíòîì. ×òî äåëàòü? I Ïîïðîáóåì åùå óâåëè÷èòü ÷èñëî ïðîöåññîâ? I Ïðîáëåìû ñòàëè áîëüøå!
  75. 75. Íåäîèñïîëüçîâàíèå æåëåçà Íà÷èíàåì ðàçáèðàòüñÿ I Õðàíèëèùå âûõîäèò íà ñâîè RPS ïðè äîñòàòî÷íî áîëüøîì ÷èñëå ñîåäèíåíèé ê íåìó. I Ëèáî õðàíèëèùå íàäî ðàñïîëàãàòü ëîêàëüíî. íåïðèåìëåìî. I Òî æå ñàìîå è ñ âçàèìîäåéñòâèåì ñ êëèåíòîì. ×òî äåëàòü? I Ïîïðîáóåì åùå óâåëè÷èòü ÷èñëî ïðîöåññîâ? I Ïðîáëåìû ñòàëè áîëüøå! I Ïî÷åìó?!
  76. 76. Íåäîèñïîëüçîâàíèå æåëåçà Ðåçþìå ñèòóàöèè, åùå ðàç
  77. 77. Íåäîèñïîëüçîâàíèå æåëåçà Ðåçþìå ñèòóàöèè, åùå ðàç I Èìååòñÿ 100500 ñòðîê êîäà, íàä êîòîðûì ðàáîòàëè íåñêîëüêî ëåò.
  78. 78. Íåäîèñïîëüçîâàíèå æåëåçà Ðåçþìå ñèòóàöèè, åùå ðàç I Èìååòñÿ 100500 ñòðîê êîäà, íàä êîòîðûì ðàáîòàëè íåñêîëüêî ëåò. I Ýòîò êîä AS IS ïî ðåçóëüòàòàì èçìåðåíèé ìîæåò âûäàâàòü ãîðàçäî áîëüøå RPS ÷åì â ðåàëüíîñòè.
  79. 79. Íåäîèñïîëüçîâàíèå æåëåçà Ðåçþìå ñèòóàöèè, åùå ðàç I Èìååòñÿ 100500 ñòðîê êîäà, íàä êîòîðûì ðàáîòàëè íåñêîëüêî ëåò. I Ýòîò êîä AS IS ïî ðåçóëüòàòàì èçìåðåíèé ìîæåò âûäàâàòü ãîðàçäî áîëüøå RPS ÷åì â ðåàëüíîñòè. I Ïðîáëåìû íà÷èíàþòñÿ íà óðîâíå RPS íà ïîðÿäîê ìåíüøèõ, íåæåëè ðàñ÷åòíûå.
  80. 80. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè
  81. 81. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ.
  82. 82. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. I Ïàðñèíã çàïðîñà, âàëèäàöèÿ.
  83. 83. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ.
  84. 84. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ.
  85. 85. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì.
  86. 86. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. I Îæèäàíèå îòïðàâêè äàííûõ êëèåíòó.
  87. 87. Íåäîèñïîëüçîâàíèå æåëåçà Åùå ðàç ðàññìîòðèì öèêë îáðàáîòêè I Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. I Îæèäàíèå îòïðàâêè äàííûõ êëèåíòó. I Ñëåäóþùèé êëèåíò!
  88. 88. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì
  89. 89. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ
  90. 90. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ
  91. 91. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. 1 ìêñ
  92. 92. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. 1 ìêñ Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. 16 ìêñ
  93. 93. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. 1 ìêñ Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. 16 ìêñ Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. 10 ìêñ
  94. 94. Íåäîèñïîëüçîâàíèå æåëåçà Èçìåðÿåì Îæèäàíèå çàïðîñà (äàííûõ) îò ïîëüçîâàòåëÿ. 70 ìêñ Ïàðñèíã çàïðîñà, âàëèäàöèÿ. 6 ìêñ Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. 1 ìêñ Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. 16 ìêñ Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. 10 ìêñ Îæèäàíèå îòïðàâêè äàííûõ êëèåíòó. 70 ìêñ
  95. 95. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 =
  96. 96. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ
  97. 97. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 =
  98. 98. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 = 156 ìêñ
  99. 99. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 = 156 ìêñ I Êîä âûïîëíÿåòñÿ òîëüêî 10% âðåìåíè!
  100. 100. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä âûïîëíÿëñÿ: 6 + 1 + 10 = 17 ìêñ I ×åãî-ëèáî îæèäàëè: 70 + 16 + 70 = 156 ìêñ I Êîä âûïîëíÿåòñÿ òîëüêî 10% âðåìåíè! I È ïðè ýòîì òîðìîçèò!
  101. 101. Íåäîèñïîëüçîâàíèå æåëåçà #include unistd.h int main(int argc, char **argv) { int i; for (;;) { usleep(70); usleep(7); usleep(16); usleep(10); usleep(70); } }
  102. 102. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî
  103. 103. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU
  104. 104. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU
  105. 105. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå.
  106. 106. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå. I Ïîíÿòíî ÷òî ïðèìåð ñèíòåòè÷åñêèé (åñòü âîïðîñû ê ðåàëèçàöèè usleep).
  107. 107. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå. I Ïîíÿòíî ÷òî ïðèìåð ñèíòåòè÷åñêèé (åñòü âîïðîñû ê ðåàëèçàöèè usleep). Âåðíåìñÿ ê íàøåìó ñåðâåðó
  108. 108. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå. I Ïîíÿòíî ÷òî ïðèìåð ñèíòåòè÷åñêèé (åñòü âîïðîñû ê ðåàëèçàöèè usleep). Âåðíåìñÿ ê íàøåìó ñåðâåðó I Êàæäàÿ îòäåëüíàÿ ÷àñòü èìååò õîðîøóþ ïðîèçâîäèòåëüíîñòü
  109. 109. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå. I Ïîíÿòíî ÷òî ïðèìåð ñèíòåòè÷åñêèé (åñòü âîïðîñû ê ðåàëèçàöèè usleep). Âåðíåìñÿ ê íàøåìó ñåðâåðó I Êàæäàÿ îòäåëüíàÿ ÷àñòü èìååò õîðîøóþ ïðîèçâîäèòåëüíîñòü äîñòàòî÷íóþ äëÿ ðàçâèòèÿ ïðîåêòà åùå íà íåñêîëüêî ëåò âïåðåä.
  110. 110. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå. I Ïîíÿòíî ÷òî ïðèìåð ñèíòåòè÷åñêèé (åñòü âîïðîñû ê ðåàëèçàöèè usleep). Âåðíåìñÿ ê íàøåìó ñåðâåðó I Êàæäàÿ îòäåëüíàÿ ÷àñòü èìååò õîðîøóþ ïðîèçâîäèòåëüíîñòü äîñòàòî÷íóþ äëÿ ðàçâèòèÿ ïðîåêòà åùå íà íåñêîëüêî ëåò âïåðåä. I Áîëüøóþ ÷àñòü âðåìåíè (90%) íàø êîä ïðîâîäèò â îæèäàíèè.
  111. 111. Íåäîèñïîëüçîâàíèå æåëåçà Èòîãî I Êîä, äåëàþùèé òîëüêî sleep â öèêëå íåïëîõî ãðóçèò CPU - ïî ìîèì èçìåðåíèÿì - ãäå-òî 15% çàãðóçêè íà CPU I Çàïóñòèâ äåñÿòîê òàêèõ “âîðêåðîâ”, ïîëó÷àåì ïðèìåðíî òàêóþ æå íàãðóçêó êàê íà ïðîáëåìíîì ñåðâåðå. I Ïîíÿòíî ÷òî ïðèìåð ñèíòåòè÷åñêèé (åñòü âîïðîñû ê ðåàëèçàöèè usleep). Âåðíåìñÿ ê íàøåìó ñåðâåðó I Êàæäàÿ îòäåëüíàÿ ÷àñòü èìååò õîðîøóþ ïðîèçâîäèòåëüíîñòü äîñòàòî÷íóþ äëÿ ðàçâèòèÿ ïðîåêòà åùå íà íåñêîëüêî ëåò âïåðåä. I Áîëüøóþ ÷àñòü âðåìåíè (90%) íàø êîä ïðîâîäèò â îæèäàíèè. I ×òî äåëàòü?
  112. 112. Íåäîèñïîëüçîâàíèå æåëåçà Ïðîñòî ðåîðãàíèçîâàòü êîä
  113. 113. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Êîìïüþòåð ýòî êîíå÷íûé àâòîìàò. Òðåäû äëÿ òåõ ëþäåé, êîòîðûå íå óìåþò ïðîãðàììèðîâàòü êîíå÷íûå àâòîìàòû. Àëàí Êîêñ
  114. 114. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èçáàâèìñÿ îò òðåäîâ!
  115. 115. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èçáàâèìñÿ îò òðåäîâ! - è ïðîöåññîâ.
  116. 116. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ìàøèíà ñîáûòèé
  117. 117. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ìàøèíà ñîáûòèé I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ.
  118. 118. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ìàøèíà ñîáûòèé I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. - â îáùåì ñëó÷àå - callback.
  119. 119. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ìàøèíà ñîáûòèé I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. - â îáùåì ñëó÷àå - callback. I Êîãäà ïðîãðàììå íå÷åãî äåëàòü (íàïðèìåð îíà æäåò ñîáûòèÿ), òî óïðàâëåíèå âîçâðàùàåòñÿ ìàøèíå ñîáûòèé.
  120. 120. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ìàøèíà ñîáûòèé I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. - â îáùåì ñëó÷àå - callback. I Êîãäà ïðîãðàììå íå÷åãî äåëàòü (íàïðèìåð îíà æäåò ñîáûòèÿ), òî óïðàâëåíèå âîçâðàùàåòñÿ ìàøèíå ñîáûòèé. â îáùåì ñëó÷àå - return èç callback.
  121. 121. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ìàøèíà ñîáûòèé I Âñÿ ðàáîòà äåëàåòñÿ â îáðàáîò÷èêå ñîáûòèÿ. - â îáùåì ñëó÷àå - callback. I Êîãäà ïðîãðàììå íå÷åãî äåëàòü (íàïðèìåð îíà æäåò ñîáûòèÿ), òî óïðàâëåíèå âîçâðàùàåòñÿ ìàøèíå ñîáûòèé. â îáùåì ñëó÷àå - return èç callback. I Îáðàáîò÷èê ñîáûòèÿ ìîæåò ãåíåðèðîâàòü äðóãèå ñîáûòèÿ è óñòàíàâëèâàòü äðóãèå îáðàáîò÷èêè.
  122. 122. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð
  123. 123. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ.
  124. 124. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ
  125. 125. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ.
  126. 126. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ
  127. 127. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ.
  128. 128. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ
  129. 129. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ.
  130. 130. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë îòâåò èç ÁÄ
  131. 131. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë îòâåò èç ÁÄ I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì.
  132. 132. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë îòâåò èç ÁÄ I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. - íå èçìåíèòñÿ
  133. 133. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë îòâåò èç ÁÄ I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. - íå èçìåíèòñÿ I Îæèäàíèå îòïðàâêè äàííûõ êëèåíòó.
  134. 134. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïåðåñòðîèì íàø ñåðâåð I Îæèäàíèå çàïðîñà îò ïîëüçîâàòåëÿ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë çàïðîñ îò ïîëüçîâàòåëÿ I Ïàðñèíã çàïðîñà, âàëèäàöèÿ. - íå èçìåíèòñÿ I Ôîðìèðîâàíèå çàïðîñà (çàïðîñîâ) â ÁÄ. - íå èçìåíèòñÿ I Îæèäàíèå îòâåòà (îòâåòîâ) èç ÁÄ. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ ïðèøåë îòâåò èç ÁÄ I Ñîåäèíåíèå äàííûõ èç ÁÄ ñ øàáëîíîì. - íå èçìåíèòñÿ I Îæèäàíèå îòïðàâêè äàííûõ êëèåíòó. - çàìåíèòñÿ îáðàáîò÷èêîì ñîáûòèÿ äàííûå ïîëüçîâàòåëþ îòïðàâëåíû
  135. 135. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èòîãî
  136. 136. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èòîãî I Ïðîèçâîäèòåëüíîñòü îäíîãî ñåðâåðà âûðîñëà â 10 ðàç
  137. 137. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èòîãî I Ïðîèçâîäèòåëüíîñòü îäíîãî ñåðâåðà âûðîñëà â 10 ðàç I Îäíîãî CPU/êîííåêòà ê ÁÄ äîñòàòî÷íî äëÿ åùå íåñêîëüêèõ ëåò ðîñòà íàãðóçêè.
  138. 138. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èòîãî I Ïðîèçâîäèòåëüíîñòü îäíîãî ñåðâåðà âûðîñëà â 10 ðàç I Îäíîãî CPU/êîííåêòà ê ÁÄ äîñòàòî÷íî äëÿ åùå íåñêîëüêèõ ëåò ðîñòà íàãðóçêè. I Íî ñëèøêîì ìíîãî ïåðåäåëîê!
  139. 139. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå ×òî çàòðîíóòî èçìåíåíèÿìè
  140. 140. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå ×òî çàòðîíóòî èçìåíåíèÿìè I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàïðîñà èòï)
  141. 141. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå ×òî çàòðîíóòî èçìåíåíèÿìè I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàïðîñà èòï) - íåêðèòè÷íî.  êðàéíåì ñëó÷àå îáõîäèòñÿ íàïèñàíèåì âðàïïåðîâ.  áîëüøèíñòâå ñëó÷àåâ âîîáùå íåçàìåòíî.
  142. 142. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå ×òî çàòðîíóòî èçìåíåíèÿìè I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàïðîñà èòï) - íåêðèòè÷íî.  êðàéíåì ñëó÷àå îáõîäèòñÿ íàïèñàíèåì âðàïïåðîâ.  áîëüøèíñòâå ñëó÷àåâ âîîáùå íåçàìåòíî. I Èíòåðôåéñ ñ ÁÄ.
  143. 143. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå ×òî çàòðîíóòî èçìåíåíèÿìè I Èíòåðôåéñ ñ âåáñåðâåðîì (ïîëó÷åíèå ïàðàìåòðîâ çàïðîñà èòï) - íåêðèòè÷íî.  êðàéíåì ñëó÷àå îáõîäèòñÿ íàïèñàíèåì âðàïïåðîâ.  áîëüøèíñòâå ñëó÷àåâ âîîáùå íåçàìåòíî. I Èíòåðôåéñ ñ ÁÄ. - êðèòè÷íî. Ìíîãî êîäà áèçíåñëîãèêè ïîåõàëî â callbacks. Ñëîæíóþ ëîãèêó ïðàêòè÷åñêè íåâîçìîæíî ðåàëèçîâàòü. Òðåáóåòñÿ ïåðåïèñûâàíèå 90% ïðîåêòà.
  144. 144. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace.
  145. 145. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü
  146. 146. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü I Ïðîñòîå ïîðîæäåíèå “ïðîöåññîâ”
  147. 147. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü I Ïðîñòîå ïîðîæäåíèå “ïðîöåññîâ” I Ïðîñòîå óïðàâëåíèå
  148. 148. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü I Ïðîñòîå ïîðîæäåíèå “ïðîöåññîâ” I Ïðîñòîå óïðàâëåíèå Òðè îñíîâíûõ ìåòîäà
  149. 149. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü I Ïðîñòîå ïîðîæäåíèå “ïðîöåññîâ” I Ïðîñòîå óïðàâëåíèå Òðè îñíîâíûõ ìåòîäà I Ñîçäàòü ïðîöåññ (create, async)
  150. 150. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü I Ïðîñòîå ïîðîæäåíèå “ïðîöåññîâ” I Ïðîñòîå óïðàâëåíèå Òðè îñíîâíûõ ìåòîäà I Ñîçäàòü ïðîöåññ (create, async) I Ïåðåäàòü óïðàâëåíèå ïëàíèðîâùèêó (yield, cede)
  151. 151. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Ïëàíèðîâùèê Ïîñêîëüêó ïëàíèðîâùèê OS - î÷åíü òÿæåëûé, íåîáõîäèì ïëàíèðîâùèê userspace. I Íåâûòåñíÿþùàÿ ìíîãîçàäà÷íîñòü I Ïðîñòîå ïîðîæäåíèå “ïðîöåññîâ” I Ïðîñòîå óïðàâëåíèå Òðè îñíîâíûõ ìåòîäà I Ñîçäàòü ïðîöåññ (create, async) I Ïåðåäàòü óïðàâëåíèå ïëàíèðîâùèêó (yield, cede) I Ðàçáóäèòü âûáðàííûé ïðîöåññ (wakeup, ready)
  152. 152. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê:
  153. 153. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: I Ðåãèñòðàöèÿ ñîáûòèÿ â ìàøèíå ñîáûòèé
  154. 154. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: I Ðåãèñòðàöèÿ ñîáûòèÿ â ìàøèíå ñîáûòèé I Ïåðåäà÷à óïðàâëåíèÿ ïëàíèðîâùèêó
  155. 155. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: I Ðåãèñòðàöèÿ ñîáûòèÿ â ìàøèíå ñîáûòèé I Ïåðåäà÷à óïðàâëåíèÿ ïëàíèðîâùèêó I Ñîáûòèå áóäèò òåêóùèé ïðîöåññ (ôàéáåð)
  156. 156. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: I Ðåãèñòðàöèÿ ñîáûòèÿ â ìàøèíå ñîáûòèé I Ïåðåäà÷à óïðàâëåíèÿ ïëàíèðîâùèêó I Ñîáûòèå áóäèò òåêóùèé ïðîöåññ (ôàéáåð) I Ïðîãðàììà ïðîäîëæàåò ðàáîòó ñ äàííûìè îò ñîáûòèÿ
  157. 157. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Èíòåãðèðóåì ñ ìàøèíîé ñîáûòèé Ñòðóêòóðà êîäà òåïåðü âûãëÿäèò òàê: I Ðåãèñòðàöèÿ ñîáûòèÿ â ìàøèíå ñîáûòèé I Ïåðåäà÷à óïðàâëåíèÿ ïëàíèðîâùèêó I Ñîáûòèå áóäèò òåêóùèé ïðîöåññ (ôàéáåð) I Ïðîãðàììà ïðîäîëæàåò ðàáîòó ñ äàííûìè îò ñîáûòèÿ Èòîãî Âåðíóëèñü ê (ïî÷òè) òðàäèöèîííîìó âèäó ïðîãðàììû.
  158. 158. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó
  159. 159. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé
  160. 160. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers
  161. 161. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì
  162. 162. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì - íåêðèòè÷íî, ðåøàåòñÿ âðàïïåðîì.
  163. 163. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì - íåêðèòè÷íî, ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì èíòåðôåéñ ñ ÁÄ
  164. 164. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì - íåêðèòè÷íî, ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì èíòåðôåéñ ñ ÁÄ - îòíîñèòåëüíî òðóäîåìêî, íî ðåøàåòñÿ âðàïïåðîì.
  165. 165. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì - íåêðèòè÷íî, ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì èíòåðôåéñ ñ ÁÄ - îòíîñèòåëüíî òðóäîåìêî, íî ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì äðóãèå ñåòåâûå îáðàùåíèÿ (åñëè åñòü)
  166. 166. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì - íåêðèòè÷íî, ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì èíòåðôåéñ ñ ÁÄ - îòíîñèòåëüíî òðóäîåìêî, íî ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì äðóãèå ñåòåâûå îáðàùåíèÿ (åñëè åñòü) - âðàïïåðû
  167. 167. Ñîáûòèéíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå Âåðíåìñÿ ê íàøåìó ñåðâåðó I Äîáàâëÿåì ìàøèíó ñîáûòèé I Äîáàâëÿåì áèáëèîòåêó fibers I Ïåðåïèñûâàåì èíòåðôåéñ ñ âåáñåðâåðîì - íåêðèòè÷íî, ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì èíòåðôåéñ ñ ÁÄ - îòíîñèòåëüíî òðóäîåìêî, íî ðåøàåòñÿ âðàïïåðîì. I Ïåðåïèñûâàåì äðóãèå ñåòåâûå îáðàùåíèÿ (åñëè åñòü) - âðàïïåðû I Èòîãî: ïåðåïèñûâàåì îêîëî 5% êîäà.
  168. 168. Áèáëèîòåêè è ÿçûêè
  169. 169. Áèáëèîòåêè è ÿçûêè I Perl
  170. 170. Áèáëèîòåêè è ÿçûêè I Perl Coro + AnyEvent
  171. 171. Áèáëèîòåêè è ÿçûêè I Perl Coro + AnyEvent I Python
  172. 172. Áèáëèîòåêè è ÿçûêè I Perl Coro + AnyEvent I Python fibers + twisted
  173. 173. Áèáëèîòåêè è ÿçûêè I Perl Coro + AnyEvent I Python fibers + twisted I PHP5
  174. 174. Áèáëèîòåêè è ÿçûêè I Perl Coro + AnyEvent I Python fibers + twisted I PHP5 ïîÿâèëñÿ îïåðàòîð yield, fiber
  175. 175. ×òî äàëüøå?
  176. 176. ×òî äàëüøå? I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè
  177. 177. ×òî äàëüøå? I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû
  178. 178. ×òî äàëüøå? I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû I Node.JS
  179. 179. ×òî äàëüøå? I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû I Node.JS - îòêàçàëèñü îò ïàðàäèãìû fibers
  180. 180. ×òî äàëüøå? I Èñïîëüçóåì fiber’û/event-ìàøèíû â òîì ÿçûêå ê êîòîðîìó ïðèâûêëè I Ðàññìàòðèâàåì ñóùåñòâóþùèå âàðèàíòû I Node.JS - îòêàçàëèñü îò ïàðàäèãìû fibers I Tarantool...
  181. 181. Tarantool
  182. 182. Tarantool I Ïîëíîöåííûé app-ñåðâåð
  183. 183. Tarantool I Ïîëíîöåííûé app-ñåðâåð I ÁÄ íà áîðòó
  184. 184. Tarantool I Ïîëíîöåííûé app-ñåðâåð I ÁÄ íà áîðòó - in-memory
  185. 185. Tarantool I Ïîëíîöåííûé app-ñåðâåð I ÁÄ íà áîðòó - in-memory - disk
  186. 186. Tarantool I Ïîëíîöåííûé app-ñåðâåð I ÁÄ íà áîðòó - in-memory - disk I Ñîêåòû, äèñê, http-ñåðâåð, î÷åðåäè
  187. 187. Íåäîñòàòêè
  188. 188. Íåäîñòàòêè I Äëÿ áîëüøèõ ïðîåêòîâ îäíîãî CPU âñå-òàêè ìàëîâàòî
  189. 189. Íåäîñòàòêè I Äëÿ áîëüøèõ ïðîåêòîâ îäíîãî CPU âñå-òàêè ìàëîâàòî I Ðåàëèçàöèè fiber’îâ äëÿ òðàäèöèîííûõ ßÏ ïëîõî ìàñøòàáèðóþòñÿ ïî CPU/õîñòàì.
  190. 190. Ïåðñïåêòèâà
  191. 191. Ïåðñïåêòèâà I Erlang
  192. 192. Ïåðñïåêòèâà I Erlang - õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì
  193. 193. Ïåðñïåêòèâà I Erlang - õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì - î÷åíü êà÷åñòâåííîå ðåøåíèå
  194. 194. Ïåðñïåêòèâà I Erlang - õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì - î÷åíü êà÷åñòâåííîå ðåøåíèå - âûñîêèé ïîðîã âõîæäåíèÿ
  195. 195. Ïåðñïåêòèâà I Erlang - õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì - î÷åíü êà÷åñòâåííîå ðåøåíèå - âûñîêèé ïîðîã âõîæäåíèÿ I Go
  196. 196. Ïåðñïåêòèâà I Erlang - õîðîøåå ìàñøòàáèðîâàíèå ïî CPU è õîñòàì - î÷åíü êà÷åñòâåííîå ðåøåíèå - âûñîêèé ïîðîã âõîæäåíèÿ I Go - áîëåå íèçêèé ïîðîã âõîæäåíèÿ

×