ಈ ಲೇಖನದಲ್ಲಿ, ಹೆಚ್ಚಿದ ಸರ್ವರ್ ಲೋಡ್ ಏಕೆ ಸಂಭವಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ಪರಿಶೀಲಿಸುತ್ತೇವೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಲೋಡ್ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳನ್ನು ಚರ್ಚಿಸುತ್ತೇವೆ. Apache/Nginx ಮತ್ತು MySQL ನಲ್ಲಿ ಕೋಡ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗೆ ವಿಶೇಷ ಗಮನ ನೀಡಲಾಗುವುದು, ಸಹಾಯಕ ಸಾಧನವಾಗಿ ಕ್ಯಾಶಿಂಗ್ ಬಗ್ಗೆ ನಾವು ಮಾತನಾಡುತ್ತೇವೆ ಮತ್ತು DDOS ದಾಳಿಗಳಂತಹ ಸಂಭಾವ್ಯ ಬಾಹ್ಯ ಬೆದರಿಕೆಗಳು ಮತ್ತು ಅವುಗಳನ್ನು ತಡೆಯುವ ಮಾರ್ಗಗಳನ್ನು ಸಹ ಪರಿಗಣಿಸುತ್ತೇವೆ.
ಸರ್ವರ್ ಲೋಡ್ ಏಕೆ ಸಂಭವಿಸುತ್ತದೆ
ಸರ್ವರ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗೆ ಮುಂದುವರಿಯುವ ಮೊದಲು, ಸಂಪನ್ಮೂಲಗಳ ಮೇಲಿನ ಪ್ರಸ್ತುತ ಹೊರೆಯ ಸಂಪೂರ್ಣ ವಿಶ್ಲೇಷಣೆಯನ್ನು ನಡೆಸುವುದು ಅವಶ್ಯಕ. ಇದರಲ್ಲಿ CPU ಲೋಡ್, RAM ಬಳಕೆ, ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆ ಮತ್ತು ಇತರ ಪ್ರಮುಖ ನಿಯತಾಂಕಗಳನ್ನು ಅಳೆಯುವುದು ಸೇರಿದೆ. ಡೈನಾಮಿಕ್ಸ್ ಮತ್ತು ಪೀಕ್ ಲೋಡ್ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಲು ಮತ್ತು ಸಂಪನ್ಮೂಲ ಹಂಚಿಕೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಹೀಗಾಗಿ ಸರ್ವರ್ ಮೂಲಸೌಕರ್ಯದ ಸ್ಥಿರತೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
ಹೆಚ್ಚಿನ ಸರ್ವರ್ ಲೋಡ್ನ ಆರಂಭಿಕ ದೋಷನಿವಾರಣೆಗಾಗಿ, ನಾವು ಇದನ್ನು ನಡೆಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ಸಾಮಾನ್ಯ ಸರ್ವರ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್. ಇದು ಸಾಕಷ್ಟಿಲ್ಲದಿದ್ದರೆ, ಹೆಚ್ಚು ವಿವರವಾದ ಸಂಪನ್ಮೂಲಗಳ ವಿಶ್ಲೇಷಣೆ ಅಗತ್ಯ. ಸಹಾಯಕ ಸಾಧನವಾಗಿ, ಅನ್ವೇಷಿಸುವುದು ಲಿನಕ್ಸ್ ದಾಖಲೆಗಳು ಸರ್ವರ್ ಸಹಾಯಕವಾಗಬಹುದು, ಏಕೆಂದರೆ ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ ಸಮಸ್ಯೆಯ ಮೂಲವು ಇಲ್ಲಿಯೇ ಕಂಡುಬರುತ್ತದೆ.
ಅಪಾಚೆ/ಎನ್ಜಿನ್ಎಕ್ಸ್ ಸರ್ವರ್ ಅನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲಾಗುತ್ತಿದೆ
ಇಂಡೆಕ್ಸಿಂಗ್ನಿಂದಾಗಿ ಸರ್ವರ್ ಲೋಡ್ ಹೆಚ್ಚಾಗಿದೆ
ಸರ್ವರ್ನಲ್ಲಿ ಇಂಡೆಕ್ಸಿಂಗ್ನಿಂದಾಗಿ ಹೆಚ್ಚಿದ ಲೋಡ್ ಸಂಭವಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಸರ್ಚ್ ಇಂಜಿನ್ಗಳು ನಿಮ್ಮ ಸೈಟ್ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಪುಟಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದಾಗ. ಇದು ಸರ್ವರ್ ಸಂಪನ್ಮೂಲಗಳ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಕಾರಣವಾಗಬಹುದು ಮತ್ತು ಪರಿಣಾಮವಾಗಿ, ಸೈಟ್ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತದೆ. ಕಾರಣವನ್ನು ಗುರುತಿಸುವುದು ತುಲನಾತ್ಮಕವಾಗಿ ಸರಳವಾಗಿದೆ; ನೀವು ಇಲ್ಲಿ ಇರುವ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಬೇಕು:
/var/www/httpd-logs/sitename.access.log
ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಂದ ಸೂಚ್ಯಂಕಗೊಳಿಸಿದಾಗ, ಬಳಕೆದಾರರು ಈ ಕೆಳಗಿನ ಸ್ವರೂಪದ ನಮೂದುಗಳನ್ನು ನೋಡುತ್ತಾರೆ:
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)"
ಲೋಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮೊದಲ ಪರಿಹಾರವಾಗಿ, ನೀವು ಮೆಟಾ ಟ್ಯಾಗ್ಗಳ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಬಹುದು "ನೋಇಂಡೆಕ್ಸ್" ಮತ್ತು "ನೋಫಾಲೋ" ಸೂಚ್ಯಂಕದ ಅಗತ್ಯವಿಲ್ಲದ ಪುಟಗಳಲ್ಲಿ. ಎರಡನೆಯ ಪರಿಹಾರವೆಂದರೆ .htaccess ಫೈಲ್, ಅಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಗೆ ಅನುಗುಣವಾದ ನಮೂದುಗಳನ್ನು ಸೇರಿಸಬೇಕಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, ಯಾಂಡೆಕ್ಸ್ ಮತ್ತು ಗೂಗಲ್ನಿಂದ ಮರೆಮಾಡಲು:
SetEnvIfNoCase User-Agent "^Yandex" search_bot SetEnvIfNoCase User-Agent "^Googlebot" search_bot Order Allow,Deny Allow from all Deny from env=search_bot
ಅದೇ ರೀತಿ, ಇತರ ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಗೂ ಸಂಪಾದನೆಗಳನ್ನು ಮಾಡಬೇಕಾಗಿದೆ. .htaccess ನ ಸಾಮರ್ಥ್ಯಗಳು ಕೇವಲ ಇಂಡೆಕ್ಸಿಂಗ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದಕ್ಕೆ ಸೀಮಿತವಾಗಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಬೇಕು. ಅದರ ಮುಖ್ಯ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಪರಿಚಿತರಾಗಲು ನಾವು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ಲೇಖನ.
ಕ್ಯಾಶಿಂಗ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸುವುದು
ಸರ್ವರ್ನಲ್ಲಿ ತಪ್ಪಾದ ಕ್ಯಾಶಿಂಗ್ ಸೆಟ್ಟಿಂಗ್ಗಳು ಹೆಚ್ಚಿನ ಹೊರೆಗೆ ಕಾರಣವಾಗಬಹುದು. ಈ ನಿಯತಾಂಕವನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು, ಸಂರಚನಾ ಫೈಲ್ಗಳಲ್ಲಿ ಅನುಗುಣವಾದ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಬೇಕಾಗುತ್ತದೆ ಅಥವಾ .htaccess. ಅಪಾಚೆಯ ಸಂದರ್ಭದಲ್ಲಿ, ನಂತರದ ಆಯ್ಕೆಯು ಯೋಗ್ಯವಾಗಿದೆ, Nginx ಗೆ - ಹಿಂದಿನದು.
ಆನ್ ಅಪಾಚೆ ಸರ್ವರ್, ನೀವು ತೆರೆಯಬೇಕು .htacess.com ಫೈಲ್ ಮಾಡಿ ಮತ್ತು ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಿ:
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf|doc|docx)$"> Header set Cache-Control "max-age=2592000" </FilesMatch>
ನಂತರ, ಸಕ್ರಿಯಗೊಳಿಸಿ ಅವಧಿ ಮೀರುತ್ತದೆ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಡ್ಯೂಲ್ ಅನ್ನು ರಚಿಸಿ:
sudo a2enmod expires
ಅದರ ನಂತರ, ವೆಬ್ ಸರ್ವರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ:
sudo service apache2 restart
ಮತ್ತು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ:
ExpiresActive On
ಮೇಲೆ ಎನ್ನಿಕ್ಸ್ ಸರ್ವರ್ನಲ್ಲಿ, ಸಂರಚನಾ ಕಡತಕ್ಕೆ ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಲು ಸಾಕು:
location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ { root /var/www/yoursite.com; }
ಮತ್ತು ಸೇವಾ ಮರುಲೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ:
sudo service nginx restart
ಈ ಸೆಟ್ಟಿಂಗ್ಗಳೊಂದಿಗೆ, ಅನುಮತಿಸಿ ಮತ್ತು ನಿರಾಕರಿಸು ನಿರ್ದೇಶನಗಳನ್ನು ಬೈಪಾಸ್ ಮಾಡಲಾಗುತ್ತದೆ.
ಡೇಟಾ ಕಂಪ್ರೆಷನ್ ಬಳಸುವುದು
ಬಳಸಿಕೊಂಡು ಡೇಟಾ ಕಂಪ್ರೆಷನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತಿದೆ ಜಿಜಿಪ್ ಅಪಾಚೆ ಮತ್ತು ಎನ್ಜಿನ್ಎಕ್ಸ್ ವೆಬ್ ಸರ್ವರ್ಗಳಲ್ಲಿ ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ನಡುವೆ ರವಾನೆಯಾಗುವ ಡೇಟಾದ ಪ್ರಮಾಣವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು ವೆಬ್ ಪುಟ ಲೋಡಿಂಗ್ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಸಕ್ರಿಯಗೊಳಿಸಲು ಜಿಜಿಪ್ on ಅಪಾಚೆ, ನೀವು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕಾಗಿದೆ ಮಾಡ್_ಡಿಫ್ಲೇಟ್ ಘಟಕ:
sudo a2enmod deflate
ನಂತರ, ವೆಬ್ ಸರ್ವರ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ:
sudo service apache2 restart
ಮತ್ತು ಅಂತಿಮವಾಗಿ, ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅಥವಾ .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>
ಈ ಸಂರಚನೆಯು ಕೆಲವು ರೀತಿಯ ಫೈಲ್ಗಳಿಗೆ ಸಂಕುಚನವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಚಿತ್ರಗಳಿಗೆ ಅದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
ಸಂದರ್ಭದಲ್ಲಿ ಎನ್ನಿಕ್ಸ್, ಸಂರಚನೆಯು HTTP ಸಂರಚನಾ ಕಡತದ ಬ್ಲಾಕ್. ಈ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ:
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;
ಹೋಲುತ್ತದೆ ಅಪಾಚೆ, ಇಲ್ಲಿ ಕೆಲವು ರೀತಿಯ ಫೈಲ್ಗಳಿಗೆ ಕಂಪ್ರೆಷನ್ ನಿಯತಾಂಕಗಳನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ. ಯಾವುದೇ ವೆಬ್ ಸರ್ವರ್ಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದ ನಂತರ, ಸೇವಾ ಮರುಲೋಡ್ ಅಗತ್ಯವಿದೆ:
sudo service apache2 restart
Or
sudo service nginx restart
ಸರ್ವರ್ ಮೇಲೆ DDOS ದಾಳಿ
DDoS ದಾಳಿಯ ಪರಿಣಾಮವಾಗಿ ಹೆಚ್ಚಿನ ಸರ್ವರ್ ಲೋಡ್ ಸಂಭವಿಸಬಹುದು. ಟ್ರಾಫಿಕ್ನಲ್ಲಿನ ಹಠಾತ್ ಹೆಚ್ಚಳ, ಅಸಹಜ ವಿನಂತಿಗಳು ಮತ್ತು ಸರ್ವರ್ ಕಾರ್ಯಕ್ಷಮತೆಯ ಕುಸಿತವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಮೂಲಕ DDoS ದಾಳಿಯ ಉಪಸ್ಥಿತಿಯನ್ನು ಗುರುತಿಸಬಹುದು. ಒಂದು IP ವಿಳಾಸ ಅಥವಾ ಪೋರ್ಟ್ ಸ್ಕ್ಯಾನಿಂಗ್ನಿಂದ ಪುನರಾವರ್ತಿತ ವಿನಂತಿಗಳಿಗಾಗಿ ಲಾಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸುವುದು ಸಹ ಸಂಭವನೀಯ DDoS ದಾಳಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಹಲವು ರಕ್ಷಣಾ ಕ್ರಮಗಳಿವೆ, ಆದರೆ ನಾವು ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಮಾತ್ರ ಚರ್ಚಿಸುತ್ತೇವೆ.
CDN (ವಿಷಯ ವಿತರಣಾ ನೆಟ್ವರ್ಕ್) ಬಳಸುವುದು. ಒಂದು CDN ನಿಮ್ಮ ವೆಬ್ ಸರ್ವರ್ ಮತ್ತು ಬಳಕೆದಾರರ ನಡುವೆ ಮಧ್ಯವರ್ತಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು, DDoS ದಾಳಿಯ ಪರಿಣಾಮವನ್ನು ತಗ್ಗಿಸಲು ಟ್ರಾಫಿಕ್ ಅನ್ನು ವಿತರಿಸುತ್ತದೆ ಮತ್ತು ವಿಷಯವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. CDN ಗಳು ಲೋಡ್ ವಿತರಣೆ ಮತ್ತು ಟ್ರಾಫಿಕ್ ಫಿಲ್ಟರಿಂಗ್ ಸೇರಿದಂತೆ ಅಂತರ್ನಿರ್ಮಿತ DDoS ರಕ್ಷಣಾ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಹ ಹೊಂದಿರಬಹುದು.
ಫೈರ್ವಾಲ್ಗಳು ಮತ್ತು ಒಳನುಗ್ಗುವಿಕೆ ಪತ್ತೆ ವ್ಯವಸ್ಥೆಗಳನ್ನು (IDS/IPS) ಸಂರಚಿಸುವುದು.. IP ವಿಳಾಸಗಳು ಮತ್ತು ಪೋರ್ಟ್ಗಳಂತಹ ವಿವಿಧ ಮಾನದಂಡಗಳ ಆಧಾರದ ಮೇಲೆ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲು ಫೈರ್ವಾಲ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು. IDS/IPS ಅಸಹಜ ಟ್ರಾಫಿಕ್ ನಡವಳಿಕೆಯನ್ನು ಪತ್ತೆಹಚ್ಚಬಹುದು ಮತ್ತು ಅನುಮಾನಾಸ್ಪದ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ಬಂಧಿಸಬಹುದು. ಈ ಪರಿಕರಗಳು ಸಂಭಾವ್ಯ ದುರುದ್ದೇಶಪೂರಿತ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ಮತ್ತು ನಿರ್ಬಂಧಿಸುವಲ್ಲಿ ಪರಿಣಾಮಕಾರಿಯಾಗಿರಬಹುದು.
DDoS ದಾಳಿಯ ಪರಿಣಾಮವನ್ನು ತಗ್ಗಿಸಲು Apache ಮತ್ತು Nginx ವೆಬ್ ಸರ್ವರ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು.
ಅಪಾಚೆಗೆ ಪರಿಹಾರವಾಗಿ, ನಾವು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತೇವೆ mod_evasive ಮಾಡ್ಯೂಲ್. ಇದನ್ನು ಮಾಡಲು, ಕಾಮೆಂಟ್ ತೆಗೆದುಹಾಕಿ ಅಥವಾ ಕೆಳಗಿನ ಸಾಲನ್ನು ಸೇರಿಸಿ httpd.conf or ಅಪಾಚೆ 2. ಕಾನ್ಫ್ ಸಂರಚನಾ ಕಡತ:
LoadModule evasive20_module modules/mod_evasive.so
ಅದೇ ಫೈಲ್ನಲ್ಲಿ, ನೀವು ಸೆಟ್ಟಿಂಗ್ಗಳ ಬ್ಲಾಕ್ ಅನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ:
<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>
ಅದೇ ರೀತಿ, ನಾವು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತೇವೆ ಮಾಡ್_ದರ ಮಿತಿ ಘಟಕ:
LoadModule ratelimit_module modules/mod_ratelimit.so
ಮತ್ತು ಸಂರಚನೆಯನ್ನು ಸೇರಿಸಿ:
<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>
ಗಾಗಿ ಸಂರಚನೆ ಎನ್ನಿಕ್ಸ್ ಹೋಲುತ್ತದೆ ಅಪಾಚೆ. ರಲ್ಲಿ nginx.conf ಸಂರಚನಾ ಕಡತವನ್ನು ರಚಿಸಲು, ಈ ಕೆಳಗಿನ ನಿರ್ದೇಶನಗಳನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ:
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; ... } }
ಪ್ರತಿಯೊಂದು ಸೇವೆಗಳಲ್ಲಿ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದ ನಂತರ, ಅವುಗಳನ್ನು ಮರುಲೋಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ:
sudo systemctl restart apache2
ಅಥವಾ:
sudo systemctl restart nginx
ಈ ಉದಾಹರಣೆಗಳು ಮೂಲಭೂತ ಸಂರಚನೆಯನ್ನು ಮಾತ್ರ ಒದಗಿಸುತ್ತವೆ, ನಿರ್ದಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳು ಮತ್ತು ದಾಳಿಯ ಸ್ವರೂಪವನ್ನು ಅವಲಂಬಿಸಿ ಇದನ್ನು ಮತ್ತಷ್ಟು ಅಳವಡಿಸಿಕೊಳ್ಳಬಹುದು.
MySQL ಪ್ರಶ್ನೆಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸುವಿಕೆ
ವೆಬ್ ಸರ್ವರ್ನಲ್ಲಿ MySQL ಡೇಟಾಬೇಸ್ ಪ್ರಶ್ನೆಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸುವುದು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ಸಾಧಿಸಬಹುದು, ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಒಂದು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ನ ಸರಿಯಾದ ಕಾನ್ಫಿಗರೇಶನ್ ಆಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಈ ಫೈಲ್ ಅನ್ನು ಹೀಗೆ ಹೆಸರಿಸಲಾಗುತ್ತದೆ my.cnf or my.ini ಮತ್ತು ಇದೆ / etc / or /ಇತ್ಯಾದಿ/ಮೈಸ್ಕ್ಲ್/ ಡೈರೆಕ್ಟರಿ. ನೀವು ಅದನ್ನು ತೆರೆಯಬೇಕು ಮತ್ತು ಈ ಕೆಳಗಿನ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಬೇಕು:
[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
ಸರ್ವರ್ ಡೇಟಾಬೇಸ್ನೊಂದಿಗೆ ಸಂವಹನವನ್ನು ಸುಗಮಗೊಳಿಸುವ ಹೆಚ್ಚುವರಿ ಶಿಫಾರಸುಗಳನ್ನು ಸಹ ಪರಿಗಣಿಸೋಣ:
- ಬಳಸಿ ವಿವರಿಸಿ SQL ಪ್ರಶ್ನೆಯ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಮೊದಲು ಆಜ್ಞೆಯನ್ನು ಬಳಸಿ. ಇದು ಪ್ರಶ್ನೆಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಯೋಜನೆಯನ್ನು ಪಡೆಯಲು ಮತ್ತು ಯಾವ ಸೂಚ್ಯಂಕಗಳನ್ನು ಬಳಸಲಾಗಿದೆ, ಯಾವ ಕೋಷ್ಟಕಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗಿದೆ ಇತ್ಯಾದಿಗಳನ್ನು ನಿರ್ಧರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
- ಸೂಚ್ಯಂಕಗಳು ಡೇಟಾ ಹುಡುಕಾಟವನ್ನು ವೇಗಗೊಳಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಸರಿಯಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಸೂಚ್ಯಂಕಗಳು ಪ್ರಶ್ನೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದು. ಆಗಾಗ್ಗೆ ಬಳಸಲಾಗುವ ಕಾಲಮ್ಗಳಿಗೆ ಗಮನ ಕೊಡಿ ಎಲ್ಲಿ or ಸೇರಿರಿ ಪರಿಸ್ಥಿತಿಗಳು.
- ಬಳಸುವುದನ್ನು ತಪ್ಪಿಸಿ ಆಯ್ಕೆ ಮಾಡಿ *. ಕೋಷ್ಟಕದಲ್ಲಿನ ಎಲ್ಲಾ ಕಾಲಮ್ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಬದಲು, ನಿಮ್ಮ ಪ್ರಶ್ನೆಗೆ ನಿಜವಾಗಿಯೂ ಅಗತ್ಯವಿರುವ ಕಾಲಮ್ಗಳನ್ನು ಮಾತ್ರ ನಿರ್ದಿಷ್ಟಪಡಿಸಿ.
- ಕಾರ್ಯಗಳನ್ನು ಬಳಸುವುದನ್ನು ತಪ್ಪಿಸಿ ಎಲ್ಲಿ ಷರತ್ತುಗಳು. ಕಾರ್ಯಗಳನ್ನು ಬಳಸುವುದು (ಉದಾಹರಣೆಗೆ ಕಡಿಮೆ, UPPER, ಎಡಕ್ಕೆ, ಬಲ) ಇನ್ ಎಲ್ಲಿ ಪರಿಸ್ಥಿತಿಗಳು ಸೂಚ್ಯಂಕಗಳನ್ನು ನಿಷ್ಪ್ರಯೋಜಕವಾಗಿಸಬಹುದು. ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಅವುಗಳ ನೇರ ಬಳಕೆಯನ್ನು ತಪ್ಪಿಸಲು ಪ್ರಯತ್ನಿಸಿ.
- ಬಳಸಿ ಇನ್ನರ್ ಸೇರ್ಪಡೆ ಸಾಧ್ಯವಾದಲ್ಲೆಲ್ಲಾ, ಏಕೆಂದರೆ ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತದೆ. ಅಲ್ಲದೆ, ಸೇರಲು ಅನುಗುಣವಾದ ಕಾಲಮ್ಗಳು ಸೂಚ್ಯಂಕಗಳನ್ನು ಹೊಂದಿವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಬಳಸಿ ಮಿತಿ ನೀವು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯ ಫಲಿತಾಂಶಗಳನ್ನು ಮಾತ್ರ ಪಡೆಯಬೇಕಾದರೆ ಹಿಂತಿರುಗಿಸಿದ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಬಂಧಿಸಲು.
- ಸರ್ವರ್ ಲೋಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲು, ವಿಶೇಷವಾಗಿ ವಿರಳವಾಗಿ ಬದಲಾದರೆ, ಕ್ಯಾಶಿಂಗ್ ಪ್ರಶ್ನೆ ಫಲಿತಾಂಶಗಳನ್ನು ಪರಿಗಣಿಸಿ.
ಮೇಲ್ ಸರ್ವರ್ ಸರ್ವರ್ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಲೋಡ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
ಈ ವಿಭಾಗದಲ್ಲಿ, ಮೇಲ್ ಸರ್ವರ್ ಹೆಚ್ಚಿನ ಲೋಡ್ ಅನುಭವಿಸುತ್ತಿದೆಯೇ ಎಂದು ಹೇಗೆ ನಿರ್ಧರಿಸುವುದು ಮತ್ತು ಅದರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಯಾವ ಕ್ರಮಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಎಂಬುದನ್ನು ನಾವು ಅನ್ವೇಷಿಸುತ್ತೇವೆ, ಸಂದೇಶ ಸರತಿಯನ್ನು ಪರಿಶೀಲಿಸುವುದು ಮತ್ತು ಸರ್ವರ್ ನಿಯತಾಂಕಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ಸೇರಿದಂತೆ. ಸಂದೇಶ ಸರತಿಯನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿ. ಮೇಲ್ಕ್ಯೂ ಉಪಯುಕ್ತತೆಯು ಇದಕ್ಕೆ ಸಹಾಯ ಮಾಡಬಹುದು, ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, ಟರ್ಮಿನಲ್ನಲ್ಲಿ ಅನುಗುಣವಾದ ಆಜ್ಞೆಯನ್ನು ನಮೂದಿಸಿ:
mailq
ಇದು ಸರದಿಯಲ್ಲಿರುವ ಸಂದೇಶಗಳ ಪಟ್ಟಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ, ಯಾವುದಾದರೂ ಇದ್ದರೆ. ಪ್ರತಿಯೊಂದು ಸಂದೇಶವನ್ನು ಅದರ ವಿಶಿಷ್ಟ ಗುರುತಿಸುವಿಕೆ ಮತ್ತು ಕಳುಹಿಸುವ ಸ್ಥಿತಿಯ ಬಗ್ಗೆ ಮಾಹಿತಿಯೊಂದಿಗೆ ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತದೆ. ಮೇಲ್ ಕ್ಲೈಂಟ್ ಲಾಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಇದೇ ರೀತಿಯ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯಬಹುದು.
ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಸರ್ವರ್ ಸ್ಪ್ಯಾಮ್ ಕಳುಹಿಸಲು ಪ್ರಾರಂಭಿಸಿದಾಗ ಅದು ರಾಜಿ ಮಾಡಿಕೊಂಡರೆ ಹೆಚ್ಚಿನ ಲೋಡ್ ಉಂಟಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಪರಿಶೀಲಿಸಿದ ನಂತರ ನಿರ್ವಾಹಕರು ಸರ್ವರ್ ಹೊರಗಿನಿಂದ ದಾಳಿ ಮಾಡಿಲ್ಲ ಮತ್ತು ಬಳಕೆದಾರರು ಸ್ಪ್ಯಾಮ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತಿಲ್ಲ ಎಂದು ಖಚಿತವಾಗಿದ್ದರೆ, ಮೇಲ್ ಸರ್ವರ್ ಅನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಮುಂದುವರಿಯುವ ಸಮಯ. ಸಹಾಯ ಮಾಡುವ ಹಂತಗಳು ಇಲ್ಲಿವೆ:
- ನಿಮ್ಮ ಡೊಮೇನ್ನ DNS ದಾಖಲೆಗಳನ್ನು ಸರಿಯಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ, ಇದರಲ್ಲಿ SPF, ಡಿಕೆಐಎಂ, ಮತ್ತು ಡಿಎಂಎಆರ್ಸಿ ಮೇಲ್ ವಿತರಣೆಯನ್ನು ಸುಧಾರಿಸಲು ಮತ್ತು ಸ್ಪ್ಯಾಮ್ನಿಂದ ರಕ್ಷಿಸಲು ದಾಖಲೆಗಳು. ನಿಯತಾಂಕಗಳ ಸರಿಯಾದ ಸಂರಚನೆಯನ್ನು ಲೇಖನದಲ್ಲಿ ಕಾಣಬಹುದು ಮೇಲ್ ಸರ್ವರ್ ಡಯಾಗ್ನೋಸ್ಟಿಕ್ಸ್.
- ಬ್ಲಾಕ್ಗಳನ್ನು ತಪ್ಪಿಸಲು ಮತ್ತು ಮೇಲ್ ವಿತರಣೆಯನ್ನು ವೇಗಗೊಳಿಸಲು ಫೈರ್ವಾಲ್ ಕಾನ್ಫಿಗರೇಶನ್ ಮತ್ತು ರೂಟಿಂಗ್ ನಿಯಮಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
- ಸರ್ವರ್ ಲೋಡ್ಗೆ ಅನುಗುಣವಾಗಿ ಸಂದೇಶ ಸರತಿ ನಿಯತಾಂಕಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. ಇದರಲ್ಲಿ ಗರಿಷ್ಠ ಸರತಿ ಗಾತ್ರ ಮತ್ತು ಸಮಯ ಮೀರುವಿಕೆಗಳನ್ನು ಹೊಂದಿಸುವುದು ಒಳಗೊಂಡಿರಬಹುದು.
- ಈ ಲೇಖನದಲ್ಲಿ ನಾವು ಈ ಹಿಂದೆ ಚರ್ಚಿಸಿದ ಪರಿಹಾರಗಳನ್ನು ಪರಿಗಣಿಸಿ. ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಮೇಲ್ ಸರ್ವರ್ ಡೇಟಾಬೇಸ್ ಅನ್ನು ನಿಯತಕಾಲಿಕವಾಗಿ ಅತ್ಯುತ್ತಮಗೊಳಿಸಿ, DNS ಪ್ರಶ್ನೆಗಳಂತಹ ಡೇಟಾ ಹುಡುಕಾಟ ಮತ್ತು ಸಂಸ್ಕರಣೆಯನ್ನು ವೇಗಗೊಳಿಸಲು ಕ್ಯಾಶಿಂಗ್ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬಳಸಿ.
- ಮೇಲ್ ಸರ್ವರ್ ಇನ್ನೂ ನಿಯಮಿತವಾಗಿ ಹೆಚ್ಚಿನ ಲೋಡ್ ಅನ್ನು ಎದುರಿಸುತ್ತಿದ್ದರೆ, ಮೇಲ್ ಸರ್ವರ್ಗಳ ಕ್ಲಸ್ಟರ್ ಅಥವಾ ಕ್ಲೌಡ್ ಪರಿಹಾರಗಳನ್ನು ಬಳಸುವಂತಹ ಸ್ಕೇಲಿಂಗ್ ಆಯ್ಕೆಗಳನ್ನು ಪರಿಗಣಿಸಿ.
ತೀರ್ಮಾನ
ಹೆಚ್ಚಿದ ಸರ್ವರ್ ಲೋಡ್ ವೆಬ್ಸೈಟ್ ಲೋಡಿಂಗ್ ವೇಗದ ಮೇಲೆ ನೇರವಾಗಿ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ, ಅಂತಿಮವಾಗಿ ಬಳಕೆದಾರರ ಅನುಭವ ಮತ್ತು ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಲ್ಲಿ ಖ್ಯಾತಿಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ. ಹೀಗಾಗಿ, ಈ ಲೋಡ್ ಅನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದು ಸಂಪನ್ಮೂಲದ ನಿರಂತರ ಕಾರ್ಯವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವಲ್ಲಿ ಮತ್ತು ಸಂದರ್ಶಕರಿಗೆ ಅದರ ಪ್ರವೇಶವನ್ನು ಹೆಚ್ಚಿಸುವಲ್ಲಿ ಪ್ರಮುಖ ಪಾತ್ರ ವಹಿಸುತ್ತದೆ.