рд╢реЙрд░реНрдЯреНрд╕ - рд▓рдШреБ рдФрд░ рдордЬрд╝реЗрджрд╛рд░, рдпрд╛ рд╣рдордиреЗ рд╣рдмреНрд░реЗрдлрд╝реЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рдХреА



рдирдВрдмрд╛ 0: рдкрд░рд┐рдЪрдп

рдПрдХ рджрд┐рди, рд╕реЛрдЪ-рд╕рдордЭрдХрд░ рдПрдХ рдмреИрд╢рдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджреНрдзрд░рдг рдХрд╛рдлреА рд▓рдВрдмреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рд╡реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реЛрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рд╕рд╛рдорд╛рдиреНрдп рдЖрдпреБ рдореЗрдВ - рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдирдпрд╛ рдкреНрд░рд╛рд░реВрдк рдкреИрджрд╛ рд╣реБрдЖ: рд╢реЙрд░реНрдЯреНрд╕ (рдЕрдВрдЧреНрд░реЗрдЬреА рд╢рдмреНрдж рд╢реЙрд░реНрдЯ - рд╢реЙрд░реНрдЯ) рд╕реЗред рдПрдХ рд▓рдШреБ рдПрдХ (рдПрдХ рдпрд╛ рджреЛ рд╡рд╛рдХреНрдпреЛрдВ рд╕реЗ) рдордЬрд╝рд╛рдХ рд╣реИ, рдХрдбрд╝рд╛рдИ рд╕реЗ 255 рд╡рд░реНрдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЖрдо рдирд╣реАрдВ рд╣реИ)ред

рдмрд╕ рдЙрд╕ рдХреНрд╖рдг рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдп рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ред рдореИрдВрдиреЗ рд╕рд╛рдЗрдЯ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ - рдПрдХ-рджреЛ рд╢рд╛рдо рдореЗрдВ, рдореИрдВрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдЖрдИрдЖрд░рд╕реА рдореЗрдВ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдХреБрдЫ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛, рдЬрдм рдореБрдЭреЗ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рджреЛ рджрд┐рдиреЛрдВ рдореЗрдВ рд╕рд╛рдЗрдЯ рдкрд░ 500 рд▓реЛрдЧ рдЖрдП рдереЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ рдПрдХ рддрд┐рд╣рд╛рдИ рдиреЗ рд╕рд╛рдЗрди рдЕрдк рдХрд┐рдпрд╛ рдерд╛ред рдЖрд░рдПрд╕рдПрд╕ рдлрд╝реАрдбред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╕рдВрдж рдЖрдИред рд╕рд╛рдЗрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдЪрд╛рдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦрд╛рдмрд░реЛрд╕рд┐рдЯреА рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рд╢реЙрд░реНрдЯреНрд╕ рд╢реЙрд░реНрдЯ рдФрд░ рдлрдиреА рд╣реИрдВ , рдХреГрдкрдпрд╛ рдкреНрдпрд╛рд░ рдФрд░ рдПрд╣рд╕рд╛рди рдХрд░реЗрдВред

PS рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдирд╣реАрдВ рд╣реИ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рддрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ "рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк" рдореЗрд░реЗ рд╢рд┐рд▓реНрдк рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╢рдмреНрдж рд╣реИ), рд╕рд╛рдЗрдЯ рдкрд░ рдореЗрд░реЗ рд░рд╣рдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдП рдЧрдП рд╣рдмреНрд░рд╕ рд╡рд┐рд╡реЗрдХ рдиреЗ рдореБрдЭреЗ рдПрдХ рдЧреИрд░-рддрдХрдиреАрдХреА рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред рдЗрд╕рд▓рд┐рдП, рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдЖрдкрдХреЛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╣рд╛рдиреА рдорд┐рд▓реЗрдЧреА рдХрд┐ рд╣рдордиреЗ рдХреИрд╕реЗ рд╣реЗрдмреНрд░реИрдлреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрдХреА рддреИрдпрд╛рд░ рдХреАред



рдирдВрдмрд╛ 1: рд╕рдВрд╕рд╛рдзрди

рдХрд┐рд╕реА рднреА рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк, рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╛рддрд╛рдпрд╛рдд рдХрд╛ рддреЗрдЬ рдкреНрд░рд╡рд╛рд╣ рд╣реЛрддрд╛ рд╣реИ - рдПрдХ рдмрдбрд╝реЗ рд╕рдВрд╕рд╛рдзрди рдкрд░ рдПрдХ рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣реИрдмреЗ рдкрд░), рдПрдХ рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐, рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЕрднрд┐рдпрд╛рди, рд╕рдорд╛рдЪрд╛рд░ рдореЗрдВ рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЙрд▓реНрд▓реЗрдЦ, рдЖрджрд┐ред рдЕрдХреНрд╕рд░ (рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ) рдЯреНрд░реИрдлрд╝рд┐рдХ рдореЗрдВ рд╡реГрджреНрдзрд┐ SUDDENLY тДв рд╣реЛрддреА рд╣реИред

рдЗрд╕рд╕реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд▓рддрд╛ рд╣реИ - рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, 200 рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡реАрдкреАрдПрд╕ рдкрд░ рдкреНрд░рддрд┐ рджрд┐рди 100k рдЕрджреНрд╡рд┐рддреАрдп рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕рд╛рдзрди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ geek рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд░реНрдХрд▓ рдореЗрдВ рдЧрд░реНрд╡ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЗ рдкрддрди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рд╡реЗрдм рдЙрддреНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА рдЕрдкрдиреА рдХреНрд╖рдорддрд╛ рдХреЗ 10% рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдпрд╣ рдЙрд╕реЗ рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рдордп рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рд╕рдм рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕ рддрд░рд╣ рдХреЗ "рд╣рд▓реНрдХреЗ" рд╕рд╛рдЗрдЯ рдХреЛ рд╢реЙрд░реНрдЯрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд┐рдЬрд▓реА рдХреА рдЕрдЪреНрдЫреА рдЖрдкреВрд░реНрддрд┐ рд╣реЛрддреА рд╣реИред

рдирдВрдмрд╛ 2: рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдмреИрдХрдПрдВрдб

рд╡реЗрдм рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдкрд╣рд▓реЗ рдЙрдкрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдПрдХ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рдПрдВрдЧреЗ: рдиреЗрдЬреЗрдиреНрдХреНрд╕ рдЯреВ рдж рдлреНрд░рдВрдЯреЗрдВрдб, рдЕрдкрд╛рдЪреЗ 127.0.0.1 рдкрд░ рд╕реБрдирддрд╛ рд╣реИред Nginx рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреВрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рддреЛ рдпрд╣ рдЕрдкрд╛рдЪреЗ рдХреЛ рдЕрдиреБрд░реЛрдз "рдЕрдВрджрд░" рднреЗрдЬрддрд╛ рд╣реИ:

server {

    listen     10.0.121.124:80;
    server_name   shortiki.com www.shortiki.com;

    #

    if ($host = 'www.shortiki.com' ) {
      rewrite ^/(.*)$ http://shortiki.com/$1 permanent;
      }

    access_log   /var/log/vhosts/nginx-shortiki.com-access.log main;

    # , . .

    location ~ ^.+\.(html|jpg|jpeg|gif|png|ico|css|js)$ {

    root /usr/home/vhosts/shortiki;
    expires 30d;
    access_log off;

    }

    location / {

    proxy_pass   http://127.0.0.1:8081;
    # ,
    }
}


* This source code was highlighted with Source Code Highlighter.


3: MPM

Apache MPM (Multi-Processing Modules, , - / , ) тАУ prefork worker.

Prefork тАУ , , . Prefork , worker.

Worker , , , . worker , , , , , . , , , , worker.

4: Accept-

Accept- ( ) , , - , HTTP .

FreeBSD, , :

# kldload accf_http

, :

echo 'accf_http_load="YES"' >> /boot/loader.conf

, :

AcceptFilter http httpready

nginx:

listen 10.0.121.124:80 default sndbuf=16k rcvbuf=8k accept_filter=httpready

-:

/usr/local/etc/rc.d/nginx reload
/usr/local/etc/rc.d/apache22 restart


5: Apache

Apache тАФ . , , :

MaxClients тАУ , , . MaxClients = 300, 301 , , , , . , MaxClients, тАУ 300 . MaxClients :

MaxClients = /

Apache RSS top ps.

AllowOverride:

<Directory />
AllowOverride none
</Directory>


* This source code was highlighted with Source Code Highlighter.


, , , .htaccess.

ExtendedStatus ( 1 2 ):

ExtendedStatus Off

FollowSymLinks -, Apache :

<Directory />
Options FollowSymLinks
</Directory>


* This source code was highlighted with Source Code Highlighter.


:

Timeout 10

( ):

<Location />
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript
</Location>


* This source code was highlighted with Source Code Highlighter.


MinSpareServers MaxSpareServers тАУ , , ┬л ┬╗. , , MinSpareServers 2, 2 , . , тАУ , , , , , / .

MinSpareServers 2
MaxSpareServers 8


, 2 , , 8 тАУ , .
:

MinSpareServers 8
MaxSpareServers 32


StartServers тАУ , Apache . StartServers MinSpareServers, MinSpareServers. , :

StartServers 8

MaxRequestPerChild , . , . тАУ , 10000 , 10000 , .

MaxRequestPerChild 3000

KeepAlive тАУ , TCP , . KeepAliveTimeout , .. , .

KeepAlive On
KeepAliveTimeout 5


6: PHP

, php php memcache memcached , . FreeBSD :

cd /usr/ports/databases/pecl-memcache
make install clean

cd /usr/ports/databases/memcached
make install clean


7:

, тАФ . , . SQL , 20 :

SELECT sid, sdate, stext, srating FROM quotes ORDER BY id ASC LIMIT $shortik_first, $shortiks_main

* This source code was highlighted with Source Code Highlighter.


, , :

// Memcached

$mem = new Memcache();
$mem->connect('localhost', 11211);

//

$quotesonpage = '';

//

if ( !$mem->get['s_main'] ) {

// - MySQL...

$connect = @mysql_connect ($server, $user, $pass) or die('Could not connect: ' . mysql_error());
@mysql_select_db("ShoDB");

$query = "SELECT sid, sdate, stext, srating FROM quotes ORDER BY id ASC LIMIT $shortik_first, $shortiks_main";

@mysql_set_charset('utf8',$connect);

$get_smain = mysql_query ($query) or die('Cannot execure query: ' . mysql_error());

$quotesonpage = array();
while ($shortik = mysql_fetch_assoc($get_smain)) {
 $quotesonpage[] = $shortik;
}

$quotesonpage = array_reverse($quotesonpage);

// ... memcache, (1800 ).

$mem->set('quotes', $quotesonpage,MEMCACHE_COMPRESSED,1800);
} else {
$quotesonpage = $mem->get['quotes'];
}


* This source code was highlighted with Source Code Highlighter.


, , MySQL . , , .

8: :)


! , , .

, , , , :)

Source: https://habr.com/ru/post/In125973/


All Articles