Kahibaluan Yano nga mga panudlo sa pagtrabaho kauban ang serbisyo sa Profitserver
Main Kahibaluan Pagpakunhod sa load sa server

Pagpakunhod sa load sa server


Niini nga artikulo, atong susihon kung ngano nga nadugangan ang pagkarga sa server ug hisgutan ang lainlaing mga paagi aron ma-optimize ang mga proseso sa taas nga karga. Espesyal nga pagtagad ang ihatag sa pag-optimize sa code sa Apache/Nginx ug MySQL, maghisgot kita bahin sa caching isip usa ka auxiliary tool, ug tagdon usab ang posibleng mga hulga sa gawas, sama sa mga pag-atake sa DDOS, ug mga paagi sa pagpugong niini.

Nganong Nahitabo ang Pag-load sa Server

Sa wala pa mopadayon sa pag-optimize sa server, kinahanglan nga maghimo usa ka bug-os nga pagtuki sa karon nga load sa mga kapanguhaan. Naglakip kini sa pagsukod sa load sa CPU, paggamit sa RAM, kalihokan sa network, ug uban pang mahinungdanong mga parameter. Ang pagsabut sa dynamics ug peak loads nagtugot sa pag-ila sa mga bottleneck ug pag-optimize sa alokasyon sa kapanguhaan, sa ingon nagdugang sa kalig-on ug performance sa imprastraktura sa server.

Para sa inisyal nga pag-troubleshoot sa taas nga server load, among girekomendar ang pagpahigayon og kinatibuk-ang server diagnostics . Kon dili kini igo, gikinahanglan ang mas detalyado nga pag-analisar sa mga resources . Isip usa ka auxiliary tool, ang pagsuhid sa mga log sa Linux server makatabang, kay dinhi makita ang tinubdan sa problema sa kadaghanang mga kaso.

Pag-optimize sa Apache/Nginx Server

Nadugangan ang Server Load Tungod sa Indexing

Ang dugang nga load tungod sa pag-indeks sa server mahimong mahitabo, pananglitan, kung ang mga search engine mag-scan sa daghang mga panid sa imong site. Kini mahimong mosangpot sa dugang nga paggamit sa mga kahinguhaan sa server ug, tungod niini, makapahinay sa performance sa site. Ang pag-ila sa hinungdan medyo simple; kinahanglan nimo nga ablihan ang file nga nahimutang sa:

/var/www/httpd-logs/sitename.access.log

Kung gi-indeks sa mga search engine, ang user makakita sa mga entri sa mosunod nga kinaiya:

11.22.33.44 - - [Date and Time] "GET /your-page-path HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Isip unang solusyon aron makunhuran ang load, mahimo nimong gamiton ang setting sa meta tags nga "noindex" ug "nofollow" sa mga panid nga dili kinahanglan nga i-index. Ang ikaduhang solusyon mao ang .htaccess file, diin ang mga entry nga katumbas sa piho nga mga search engine kinahanglan nga idugang, pananglitan, aron matago gikan sa Yandex ug Google:

SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
Order Allow,Deny
Allow from all
Deny from env=search_bot

Susama, kinahanglan usab nga maghimo og mga pag-edit para sa ubang mga search engine. Kinahanglan nga matikdan nga ang mga kapabilidad sa .htaccess dili limitado sa pag-block lang sa indexing. Among girekomendar nga mas pamilyar ka sa mga nag-unang bahin niini sa artikulo.

Paggamit sa Caching Settings

Ang dili sakto nga mga setting sa caching sa server mahimo usab nga mosangpot sa taas nga load. Aron ma-optimize kini nga parameter, kinahanglan nga himuon ang katugbang nga mga pagbag-o sa mga configuration file o .htaccess . Sa kaso sa Apache, mas maayo ang ulahi nga kapilian, alang sa Nginx - ang una.

Sa usa ka Apache server, kinahanglan nimong ablihan ang .htacess file ug isulod ang mosunod nga code:

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf|doc|docx)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Dayon, i-enable ang Expires module gamit ang command:

sudo a2enmod expires

Pagkahuman niini, i-restart ang web server:

sudo service apache2 restart

Ug i-aktibo ang module pinaagi sa pagtino:

ExpiresActive On

Sa usa ka Nginx server, igo na ang pagdugang sa mosunod nga code sa configuration file:

location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ {
root /var/www/yoursite.com;
}

Ug paghimo usa ka pag-reload sa serbisyo:

sudo service nginx restart

Timan-i nga sa kini nga mga setting, ang mga direktiba nga Allow ug Deny dili na mausab.

Paggamit sa Data Compression

Ang pagpagana sa data compression gamit ang Gzip sa Apache ug Nginx web servers makatabang sa pagpakunhod sa gidaghanon sa data nga gipadala tali sa server ug sa client, nga makapaayo sa performance ug makapakunhod sa oras sa pagkarga sa web page.

Para ma-enable ang Gzip sa Apache , kinahanglan nimo nga i-activate ang mod_deflate module:

sudo a2enmod deflate

Dayon, i-restart ang web server:

sudo service apache2 restart

Ug sa katapusan, idugang ang mosunod nga block sa configuration file o .htaccess:

<IfModule mod_deflate.c>
# Configure compression for specified file types
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json

# If the browser matches the specified pattern, apply compression only to text/html files
BrowserMatch ^Mozilla/4 gzip-only-text/html

# If the browser matches the specified version patterns of Mozilla 4.0.6, 4.0.7, 4.0.8, disable compression
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# If the browser is MSIE (Internet Explorer), disable compression for all files except text/html
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# If the request contains the specified pattern (extensions of image files), disable compression
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
</IfModule>

Kini nga configuration makahimo sa compression alang sa pipila ka mga matang sa mga file ug disable kini alang sa mga hulagway.

Sa kaso sa Nginx , ang configuration mahitabo sa http block sa configuration file. Kinahanglan idugang ang mosunod nga code:

gzip on;
gzip_disable "msie6";

# Adds the Vary header, indicating that the response may change depending on the Accept-Encoding header value
gzip_vary on;

# Enables compression for any proxy servers
gzip_proxied any;

# Sets the compression level. A value of 6 provides a good balance between compression efficiency and resource use
gzip_comp_level 6;

# Sets the size of the buffer for compressed data (16 buffers of 8 kilobytes each)
gzip_buffers 16 8k;

# Specifies that data compression should be used only for HTTP version 1.1 and higher
gzip_http_version 1.1;

# Sets the file types that can be compressed
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Sama sa Apache , dinhi gibutang ang mga parametro sa compression para sa pipila ka klase sa mga file. Human sa paghimo og mga pagbag-o sa bisan hain sa mga web server, gikinahanglan ang pag-reload sa serbisyo:

sudo service apache2 restart

Or

sudo service nginx restart

Pag-atake sa DDOS sa Server

Ang taas nga load sa server mahimong mahitabo isip resulta sa pag-atake sa DDoS. Ang pag-ila sa presensya sa usa ka pag-atake sa DDoS mahimo pinaagi sa pag-monitor sa kalit nga pagtaas sa trapiko, dili normal nga mga hangyo, ug pag-ubos sa performance sa server. Ang pagrepaso sa mga log alang sa gibalikbalik nga mga hangyo gikan sa usa ka IP address o pag-scan sa pantalan mahimo usab nga magpakita sa usa ka posible nga pag-atake sa DDoS. Adunay daghang mga lakang sa pagpanalipod, apan hisgutan ra naton ang mga sukaranan.

Paggamit sa CDN (Content Delivery Network) . Ang CDN mahimong magsilbing tigpataliwala tali sa imong web server ug mga tiggamit, nga nag-apod-apod sa trapiko ug nag-cache sa sulud aron maibanan ang epekto sa usa ka pag-atake sa DDoS. Ang mga CDN mahimo usab nga adunay built-in nga mga mekanismo sa proteksyon sa DDoS, lakip ang pag-apod-apod sa load ug pagsala sa trapiko.

Pag-configure sa mga firewall ug intrusion detection system (IDS/IPS) . Ang mga firewall mahimong ma-configure aron masala ang trapiko base sa lainlaing mga criteria, sama sa mga IP address ug mga port. Ang IDS/IPS makamatikod sa dili normal nga pamatasan sa trapiko ug makababag sa mga kadudahang koneksyon. Kini nga mga himan mahimong epektibo sa pagsubay ug pagbabag sa posibleng makadaot nga trapiko.

Pag-configure sa mga web server sa Apache ug Nginx aron makunhuran ang epekto sa mga pag-atake sa DDoS.

Isip solusyon para sa Apache, atong i-enable ang mod_evasive module. Para mahimo kini, i-uncomment o idugang ang mosunod nga linya sa httpd.conf o apache2.conf configuration file:

LoadModule evasive20_module modules/mod_evasive.so

Sa parehas nga file, kinahanglan nimong idugang ang block sa mga setting:

<IfModule mod_evasive20.c>
# Hash table size for storing request information
DOSHashTableSize 3097

# Number of requests to one page before activating protection
DOSPageCount 2
DOSPageInterval 1

# Number of requests to all pages before activating protection
DOSSiteCount 50
DOSSiteInterval 1

# Blocking period in seconds for IP addresses
DOSBlockingPeriod 10
</IfModule>

Susama, atong i-activate ang mod_ratelimit module:

LoadModule ratelimit_module modules/mod_ratelimit.so

Ug idugang ang configuration:

<IfModule mod_ratelimit.c>
# Setting the output filter for rate limiting (Rate Limit)
SetOutputFilter RATE_LIMIT

# Beginning of the settings block for the location "/login"
<Location "/login">

# Setting the environment variable rate-limit with a value of 1
SetEnv rate-limit 1

# Ending of the settings block for the location "/login"
</Location>
</IfModule>

Ang configuration para sa Nginx susama sa Apache . Sa nginx.conf configuration file, ang mosunod nga mga direktiba kinahanglan gamiton:

http {
...
# Defining a zone for connection limits
limit_conn_zone $binary_remote_addr zone=addr:10m;

# Defining a zone for request limits
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;

server {
        ...
        # Configuring connection limits
        limit_conn addr 10;

        # Configuring request limits
        limit_req zone=req_zone burst=5;

        ...
    }
}

Human sa paghimo sa mga kausaban sa matag usa sa mga serbisyo, sila kinahanglan nga reloaded:

sudo systemctl restart apache2

O:

sudo systemctl restart nginx

Kini nga mga pananglitan naghatag lamang og usa ka sukaranan nga pag-configure, nga mahimo pa nga ipahiangay depende sa piho nga mga kinahanglanon ug ang kinaiya sa mga pag-atake.

Pag-optimize sa MySQL Mga Pangutana

Ang pag-optimize sa mga pangutana sa database sa MySQL sa usa ka web server mahimong makab-ot sa lainlaing mga paagi, ug usa niini mao ang husto nga pag-configure sa configuration file. Kasagaran, kini nga file ginganlan og my.cnf o my.ini ug nahimutang sa direktoryo nga /etc/ o /etc/mysql/ . Kinahanglan nimo kini ablihan ug buhaton ang mosunod nga mga pagbag-o:

[mysqld]
# Location of the file for recording slow queries. Be sure to replace it with your path
log-slow-queries = /var/log/mariadb/slow_queries.log

# Threshold time for considering slow queries (in seconds)
long_query_time = 5

# Enabling recording of queries that do not use indexes
log-queries-not-using-indexes = 1

# Disabling query caching
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 1M

# Size of temporary tables
tmp_table_size = 16M
max_heap_table_size = 16M

# Size of the thread cache
thread_cache_size = 16

# Disabling name resolving
skip-name-resolve = 1

# Size of the InnoDB buffer pool. Set to 50-70% of available RAM
innodb_buffer_pool_size = 800M

# Size of the InnoDB log file
innodb_log_file_size = 200M

Atong tagdon usab ang dugang nga mga rekomendasyon nga makapadali sa interaksyon sa database sa server:

  1. Gamita ang MAGPAHIMTANG command sa wala pa ang usa ka SQL query aron analisahon ang pagpatuman niini. Gitugotan ka niini nga makakuha usa ka plano sa pagpatuman alang sa pangutana ug mahibal-an kung unsang mga indeks ang gigamit, kung unsang mga lamesa ang gi-scan, ug uban pa.
  2. Ang mga indeks nagpadali sa pagpangita sa datos, mao nga ang husto nga pagkadisenyo nga mga indeks makapauswag pag-ayo sa performance sa pangutana. Hatagi'g pagtagad ang mga kolum nga kanunay gigamit sa SAAN or DAGHAN kahimtang.
  3. Paglikay sa paggamit PILI *. Ipiho lamang kadtong mga kolum nga tinuod nga gikinahanglan alang sa imong pangutana, imbes nga pilion ang tanang mga kolum sa usa ka lamesa.
  4. Likayi ang paggamit sa mga function sa SAAN mga kondisyon. Paggamit sa mga gimbuhaton (sama sa LABI, Upper, SA WALA, TUO) sa SAAN Ang mga kondisyon makahimo sa mga indeks nga walay kapuslanan. Sulayi nga likayan ang ilang direkta nga paggamit sa mga kondisyon.
  5. Paggamit INNER JOIN kon mahimo, kay kasagaran mas episyente. Usab, siguroha nga ang katugbang nga mga kolum alang sa pag-apil adunay mga indeks.
  6. Paggamit utlanan aron higpitan ang gidaghanon sa gibalik nga mga laray kung kinahanglan nimo nga makakuha lamang usa ka piho nga gidaghanon sa mga resulta.
  7. Ikonsiderar ang pag-cache sa mga resulta sa pangutana, labi na kung panagsa ra kini magbag-o, aron makunhuran ang load sa server.

Ang Mail Server Naghimo ug Taas nga Lulan sa Server

Niini nga seksyon, atong tukion kon unsaon pagtino nga ang mail server nakasinati og taas nga load ug unsang mga lakang ang mahimo aron ma-optimize ang operasyon niini, lakip na ang pagsusi sa message queue ug pag-configure sa mga parameter sa server. Sugdi pinaagi sa pagsusi sa message queue. Ang mailq utility makatabang niini, aron ma-activate kini, isulod ang katugbang nga sugo sa terminal:

mailq

Kini magpakita sa usa ka lista sa mga mensahe sa pila, kung aduna man. Ang matag mensahe ipakita uban ang talagsaon nga identifier ug impormasyon bahin sa kahimtang sa pagpadala. Ang susamang resulta mahimong makuha pinaagi sa pagrepaso sa mga log sa mail client.

Sa kadaghanan nga mga kaso, ang taas nga load mahitabo sa higayon nga ang server makompromiso sa diha nga kini magsugod sa pagpadala spam. Bisan pa, kung pagkahuman sa pagsusi ang tagdumala masaligon nga ang server wala giatake gikan sa gawas ug ang mga tiggamit wala magpasagad sa spam, panahon na nga magpadayon sa pag-optimize sa mail server. Ania ang mga lakang nga makatabang:

  1. Siguruha nga ang mga rekord sa DNS sa imong domain husto nga na-configure, lakip ang SPF, DKIM, Ug DMARC mga rekord aron mapaayo ang pagpadala sa mail ug mapanalipdan batok sa spam. Ang husto nga pag-configure sa mga parameter makita sa artikulo sa mga diagnostic sa mail server.
  2. Susiha ang mga setting sa network, lakip ang configuration sa firewall ug mga lagda sa pag-ruta, aron malikayan ang mga block ug mapadali ang paghatud sa mail.
  3. I-configure ang mga parameter sa queue sa mensahe sumala sa load sa server. Mahimong maglakip kini sa pagtakda sa labing taas nga gidak-on sa pila ug mga timeout.
  4. Binagbinaga ang mga solusyon nga ginbinagbinag naton sa sini nga artikulo sang una. Panagsa nga pag-optimize sa database sa mail server aron mapauswag ang pasundayag, gamita ang mga mekanismo sa pag-cache aron mapadali ang pagpangita ug pagproseso sa datos, sama sa mga pangutana sa DNS.
  5. Kung ang mail server kanunay gihapon nga makasugat og taas nga karga, hunahunaa ang mga kapilian sa pag-scale, sama sa paggamit sa usa ka pundok sa mga mail server o mga solusyon sa panganod.

Panapos

Ang dugang nga load sa server direkta nga nakaapekto sa katulin sa pagkarga sa website, nga sa katapusan nakaapekto sa kasinatian sa gumagamit ug reputasyon sa mga search engine. Sa ingon, ang epektibo nga pagdumala sa kini nga karga adunay hinungdanon nga papel sa pagsiguro sa padayon nga pagpaandar sa kapanguhaan ug pagdugang sa pagka-access niini alang sa mga bisita.

❮ Naunang artikulo Certbot: Pag-instalar sa Let's Encrypt Certificate
Sunod nga artikulo ❯ Diagnostics sa Pag-load sa Server

Pangutan-a kami bahin sa VPS

Kanunay kaming andam sa pagtubag sa imong mga pangutana bisan unsang orasa sa adlaw o gabii.