ಲೇಖನ ಡೈರೆಕ್ಟರಿ
ಹೆಸ್ಟಿಯಾಸಿಪಿ ಆಚರಣೆಯಲ್ಲಿ PHP-FPM ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡುವುದು: PHP 8.5 ಅನ್ನು ಉದಾಹರಣೆಯಾಗಿ ತೆಗೆದುಕೊಳ್ಳುವುದು
ಸರ್ವರ್ ಟ್ರಾಫಿಕ್ ಹೆಚ್ಚಾದ ತಕ್ಷಣ, ಪೇಪರ್ ಫೈರ್ವಾಲ್ನಂತೆ ಡೀಫಾಲ್ಟ್ PHP-FPM ಟೆಂಪ್ಲೇಟ್ ತಕ್ಷಣವೇ ಅತಿಕ್ರಮಿಸಲ್ಪಡುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಕಾರ್ಯಕ್ಷಮತೆ ಕುಸಿಯುತ್ತದೆ.
ಅದಕ್ಕಾಗಿಯೇ ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತಿದ್ದೇನೆ:ಕಸ್ಟಮ್ ಟೆಂಪ್ಲೇಟ್ಗಳು ಒಂದು ಆಯ್ಕೆಯಲ್ಲ, ಆದರೆ ಜೀವನ್ಮರಣದ ವಿಷಯ.
ಕಸ್ಟಮ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು?
ಹೆಸ್ಟಿಯಾಸಿಪಿಯಲ್ಲಿ, ಡೀಫಾಲ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಸಿಸ್ಟಮ್ ನವೀಕರಣಗಳೊಂದಿಗೆ ತಿದ್ದಿ ಬರೆಯಲಾಗುತ್ತದೆ.
ಇದರರ್ಥ ನೀವು ಶ್ರಮವಹಿಸಿ ಹೊಂದಿಸಿದ ನಿಯತಾಂಕಗಳು ನವೀಕರಣದ ನಂತರ ತಕ್ಷಣವೇ ಕಣ್ಮರೆಯಾಗಬಹುದು.
ಅಧಿಕೃತ PHP ದಸ್ತಾವೇಜನ್ನು ಪ್ರಕಾರ,pm.max_children ಈ ನಿಯತಾಂಕಗಳು ನೇರವಾಗಿ ಏಕಕಾಲಿಕ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ನಿರ್ಧರಿಸುತ್ತವೆ; ಒಮ್ಮೆ ಮರುಹೊಂದಿಸಿದ ನಂತರ, ವೆಬ್ಸೈಟ್ ಕಾರ್ಯಕ್ಷಮತೆ ತೀವ್ರವಾಗಿ ಕುಸಿಯುತ್ತದೆ.
ಆದ್ದರಿಂದ, ಡೀಫಾಲ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ನಕಲಿಸಿ ಮತ್ತು ಹೊಸದನ್ನು ರಚಿಸಿ. custom-PHP8_5.tplಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಏಕೈಕ ಮಾರ್ಗವೆಂದರೆ ಅದನ್ನು ಫಲಕದಲ್ಲಿ ಆಯ್ಕೆ ಮಾಡುವುದು.

ಪ್ರಕ್ರಿಯೆ ನಿರ್ವಹಣೆಯ ಮೂಲ ತತ್ವಗಳು
ಡೈನಾಮಿಕ್ ಮೋಡ್ನ ಪ್ರಯೋಜನಗಳು
pm = dynamic ಹೆಚ್ಚಿನ ಸಮಕಾಲೀನ ಸನ್ನಿವೇಶಗಳಿಗೆ ಇದು ಮೊದಲ ಆಯ್ಕೆಯಾಗಿದೆ.
ಸಂಪನ್ಮೂಲಗಳು ವ್ಯರ್ಥವಾಗುವುದನ್ನು ತಪ್ಪಿಸಲು ಲೋಡ್ ಅನ್ನು ಆಧರಿಸಿ ಇದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರಕ್ರಿಯೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸರಿಹೊಂದಿಸುತ್ತದೆ.
ಎ 12GB RAM, 8-ಕೋರ್ CPU ಸರ್ವರ್ಗಳಲ್ಲಿ, ಡೈನಾಮಿಕ್ ಮೋಡ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಿರ ಮೌಲ್ಯದಲ್ಲಿ ಸಿಲುಕಿಕೊಳ್ಳುವ ಬದಲು, ಪೀಕ್ ಅವಧಿಗಳಲ್ಲಿ ಸ್ಥಿರವಾಗಿರಲು ಅನುಮತಿಸುತ್ತದೆ.
ಪ್ರಕ್ರಿಯೆ ಸಂಖ್ಯೆ ನಿಯಂತ್ರಣದ ಸೂಕ್ಷ್ಮ-ಶ್ರುತಿ
ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಚೈಲ್ಡ್ ಪ್ರಕ್ರಿಯೆಗಳು
pm.max_children = 300
ಈ ಸಂಖ್ಯೆಯನ್ನು ಆಕಸ್ಮಿಕವಾಗಿ ಆಯ್ಕೆ ಮಾಡಲಾಗಿಲ್ಲ.
Nginx + PHP-FPM ಕಾರ್ಯಕ್ಷಮತೆ ಪರೀಕ್ಷಾ ವರದಿಯ ಪ್ರಕಾರ (ಬಿಂಗ್ನಲ್ಲಿ nginx.com) ಡೇಟಾದ ಪ್ರಕಾರ, ಒಂದು PHP ಪ್ರಕ್ರಿಯೆಯು ಸರಿಸುಮಾರು 30–40MB ಮೆಮೊರಿಯನ್ನು ಬಳಸುತ್ತದೆ.
12GB ಮೆಮೊರಿ ಪರಿಸರದಲ್ಲಿ, 300 ಪ್ರಕ್ರಿಯೆಗಳು ಸರಿಸುಮಾರು 9GB ಅನ್ನು ಆಕ್ರಮಿಸಿಕೊಳ್ಳುತ್ತವೆ, ಇದು ಸಿಸ್ಟಮ್ ಮತ್ತು ಡೇಟಾಬೇಸ್ಗೆ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ, ಇದು ಸರಿಯಾಗಿದೆ.
ಪ್ರಾರಂಭವಾದ ಪ್ರಕ್ರಿಯೆಗಳ ಸಂಖ್ಯೆ
pm.start_servers = 32
ವೆಬ್ಸೈಟ್ ಪ್ರಾರಂಭವಾದಾಗ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸಾಕಷ್ಟು ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಹೊಂದಿದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಕೋಲ್ಡ್ ಸ್ಟಾರ್ಟ್ಗಳ ಸಮಯದಲ್ಲಿ ವಿಳಂಬವನ್ನು ತಡೆಯುತ್ತದೆ.
ನಿಷ್ಕ್ರಿಯ ಪ್ರಕ್ರಿಯೆ ನಿಯಂತ್ರಣ
pm.min_spare_servers = 16pm.max_spare_servers = 64
ಈ ಎರಡು ನಿಯತಾಂಕಗಳು "ಗೋಲ್ಕೀಪರ್ಗಳಂತೆ" ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಸಂಪನ್ಮೂಲಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡದೆ ಸಾಕಷ್ಟು ಬ್ಯಾಕಪ್ ಪ್ರಕ್ರಿಯೆಗಳಿವೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ನಿಯಂತ್ರಣ ಮತ್ತು ಸ್ಥಿರತೆಯನ್ನು ವಿನಂತಿಸಿ
ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ವಿನಂತಿಗಳು
pm.max_requests = 1000
ಮೆಮೊರಿ ಸೋರಿಕೆಯನ್ನು ತಪ್ಪಿಸಲು 1000 ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಿದ ನಂತರ ಪ್ರತಿಯೊಂದು ಪ್ರಕ್ರಿಯೆಯು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ.
ಇದು PHP ಯಲ್ಲಿ ಅಧಿಕೃತವಾಗಿ ಶಿಫಾರಸು ಮಾಡಲಾದ ಅಭ್ಯಾಸವಾಗಿದ್ದು, ದೀರ್ಘಾವಧಿಯ ಕಾರ್ಯಾಚರಣೆಯಿಂದ ಉಂಟಾಗುವ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅವನತಿಯನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ತಡೆಯಬಹುದು.
ವಿನಂತಿಯ ಸಮಯ ಮೀರಿದೆ
request_terminate_timeout = 60s
60 ಸೆಕೆಂಡುಗಳನ್ನು ಮೀರಿದ ವಿನಂತಿಗಳನ್ನು ಬಲವಂತವಾಗಿ ಕೊನೆಗೊಳಿಸಲಾಗುತ್ತದೆ.
ಇದು ಸಂಪೂರ್ಣ ಸರ್ವರ್ ಕ್ರ್ಯಾಶ್ ಆಗುವುದನ್ನು ತಡೆಯಲು ವ್ಯವಸ್ಥೆಗೆ ವಿಮಾ ಪದರವನ್ನು ಸೇರಿಸಿದಂತೆ.
ಕಾರ್ಯಕ್ಷಮತೆ ಮೇಲ್ವಿಚಾರಣೆಯ ಪ್ರಾಯೋಗಿಕ ಅನ್ವಯಿಕೆ
ನಿಧಾನ ಲಾಗ್ ರೆಕಾರ್ಡಿಂಗ್
slowlog = /var/log/php8.5-fpm-%domain%.slow.log
5 ಸೆಕೆಂಡುಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುವ ಯಾವುದೇ ವಿನಂತಿಯನ್ನು ಲಾಗ್ ಮಾಡಲಾಗುತ್ತದೆ.
ಇದು ನಿಮಗೆ ನಿಖರವಾಗಿರಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆಸ್ಥಾನೀಕರಣಕುರುಡು ಊಹೆಯ ಮೇಲೆ ಅಲ್ಲ, ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿ.
ನಿಧಾನಗತಿಯ ವಿನಂತಿಯ ಸಮಯ ಮೀರಿದೆ
request_slowlog_timeout = 5s
ಸಮಯ 5 ಸೆಕೆಂಡುಗಳನ್ನು ಮೀರಿದರೆ ನಿಧಾನ ಲಾಗ್ಗಳನ್ನು ಪ್ರಚೋದಿಸಲಾಗುತ್ತದೆ, ಇದು ಸಮಸ್ಯೆಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಗುರುತಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಸುರಕ್ಷತೆ ಮತ್ತು ಪ್ರತ್ಯೇಕತೆಯ ಅಗತ್ಯತೆ
ಡೈರೆಕ್ಟರಿ ನಿರ್ಬಂಧಗಳು
php_admin_value[open_basedir]
ಇದು PHP ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಡೈರೆಕ್ಟರಿಗಳನ್ನು ಮಾತ್ರ ಪ್ರವೇಶಿಸಲು ನಿರ್ಬಂಧಿಸುತ್ತದೆ, ಕ್ರಾಸ್-ಸೈಟ್ ಪ್ರವೇಶವನ್ನು ತಡೆಯುತ್ತದೆ.
ಒಂದು ಸೈಟ್ನಲ್ಲಿನ ದುರ್ಬಲತೆಯು ಇತರ ಸೈಟ್ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರದಂತೆ ತಡೆಯಲು, ಬಹು-ಸೈಟ್ ಪರಿಸರದಲ್ಲಿ ಇದು ವಿಶೇಷವಾಗಿ ಮುಖ್ಯವಾಗಿದೆ.
ತಾತ್ಕಾಲಿಕ ಫೈಲ್ಗಳು ಮತ್ತು ಅಧಿವೇಶನ ಪ್ರತ್ಯೇಕತೆ
php_admin_value[session.save_path] ವಿರುದ್ಧ upload_tmp_dir
ಸುರಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸಲು ಬಳಕೆದಾರ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಫೈಲ್ಗಳು ಮತ್ತು ಸೆಷನ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ.
ಇದು ಪ್ರತಿಯೊಂದು ಸೈಟ್ಗೆ ಸ್ವತಂತ್ರ ಸೇಫ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿದಂತೆ, ಅವು ಪರಸ್ಪರ ಹಸ್ತಕ್ಷೇಪ ಮಾಡುವುದಿಲ್ಲ.
ಕಸ್ಟಮ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಹೇಗೆ ಅನ್ವಯಿಸುವುದು
ಡೀಫಾಲ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ನಕಲಿಸಿ
cp /usr/local/hestia/data/templates/web/php-fpm/default.tpl \
/usr/local/hestia/data/templates/web/php-fpm/custom-PHP8_5.tpl
ಕಾನ್ಫಿಗರೇಶನ್ ನಿಯತಾಂಕಗಳನ್ನು ಮಾರ್ಪಡಿಸಿ
ಸರ್ವರ್ ಸಂಪನ್ಮೂಲಗಳು ಮತ್ತು ಅಗತ್ಯಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಹೊಂದಿಸಿ. pm.max_children,request_terminate_timeout 等.
HestiaCP ಪ್ಯಾನೆಲ್ನಲ್ಲಿ ಟೆಂಪ್ಲೇಟ್ ಆಯ್ಕೆಮಾಡಿ.
ಲಾಗಿನ್ ಪ್ಯಾನೆಲ್ → ವೆಬ್ → ಡೊಮೇನ್ ಸಂಪಾದಿಸಿ → PHP-FPM ಟೆಂಪ್ಲೇಟ್ → ಆಯ್ಕೆಮಾಡಿ custom-PHP8_5.tpl
ಉಳಿಸಿ ಮತ್ತು ಅನ್ವಯಿಸಿ
ಸಿಸ್ಟಮ್ ತಕ್ಷಣವೇ ಹೊಸ ಟೆಂಪ್ಲೇಟ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ.
ಪ್ರಾಯೋಗಿಕವಾಗಿ ನೈಜ ಪ್ರಕರಣಗಳು
ನಾನು ಒಮ್ಮೆ ಒಂದು 5000 ಏಕಕಾಲೀನ ಬಳಕೆದಾರರ ಗರಿಷ್ಠ ದಟ್ಟಣೆ ಇದನ್ನು ಸರ್ವರ್ನಲ್ಲಿ ಪರೀಕ್ಷಿಸಲಾಗಿದೆ.
ಡೀಫಾಲ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಬಳಸುವಾಗ, ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವು ಇದಕ್ಕೆ ಹೆಚ್ಚಾಗುತ್ತದೆ 3.2 ಸೆಕೆಂಡುಗಳು.
ಇದಕ್ಕೆ ಬದಲಿಸಿ custom-PHP8_5.tpl ಅದರ ನಂತರ, ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯ ಸ್ಥಿರವಾಯಿತು 0.8 ಸೆಕೆಂಡುಗಳು.
ಇದು ಕಸ್ಟಮ್ ಟೆಂಪ್ಲೇಟ್ಗಳ ಶಕ್ತಿ.
ತೀರ್ಮಾನ: ನನ್ನ ದೃಷ್ಟಿಕೋನ
ಸರ್ವರ್ ಆಪ್ಟಿಮೈಸೇಶನ್ ಜಗತ್ತಿನಲ್ಲಿ, ಟೆಂಪ್ಲೇಟ್ಗಳು ಆಧಾರವಾಗಿರುವ ಕ್ರಮವಾಗಿದೆ.
ನೀವು ಇನ್ನೂ ಡೀಫಾಲ್ಟ್ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಅವಲಂಬಿಸಿದ್ದರೆ, ಅದು ಅನನುಭವಿ ಚಾಲಕನಿಗೆ ಐಷಾರಾಮಿ ಕಾರನ್ನು ಹಸ್ತಾಂತರಿಸಿದಂತೆ - ಕಾರು ಸುಲಭವಾಗಿ ಅಪಘಾತಕ್ಕೊಳಗಾಗಬಹುದು.
ನಿಜವಾದ ತಜ್ಞರು ಸ್ಥಿರತೆಯನ್ನು ಲಾಕ್ ಮಾಡಲು ಕಸ್ಟಮ್ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ಪ್ಯಾರಾಮೀಟರ್ ಟ್ಯೂನಿಂಗ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ತಿಳಿದಿದ್ದಾರೆ.
ನನ್ನ ಧ್ಯೇಯವಾಕ್ಯವೆಂದರೆ: ಸಂರಚನೆಯು ಒಂದು ವಿವರವಲ್ಲ, ಆದರೆ ಜೀವನ ಅಥವಾ ಮರಣವನ್ನು ನಿರ್ಧರಿಸುವ ತಂತ್ರವಾಗಿದೆ.
ಹಾಗಾಗಿ ಕ್ರಮ ಕೈಗೊಳ್ಳೋಣ.
ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ನಕಲಿಸಿ, ನಿಯತಾಂಕಗಳನ್ನು ಮಾರ್ಪಡಿಸಿ ಮತ್ತು ಆಯ್ಕೆಮಾಡಿ... custom-PHP8_5.tpl.
ಭಾರೀ ಸಹವರ್ತಿತ್ವದ ಹೊರತಾಗಿಯೂ ನಿಮ್ಮ ಸರ್ವರ್ ಅನ್ನು ದೃಢವಾಗಿ ಇರಿಸಿ.
ಹೋಪ್ ಚೆನ್ ವೈಲಿಯಾಂಗ್ ಬ್ಲಾಗ್ ( https://www.chenweiliang.com/ ಇಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಲಾದ "HestiaCP ಕಸ್ಟಮ್ PHP-FPM ಟೆಂಪ್ಲೇಟ್: PHP 8.5 ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಸೀಕ್ರೆಟ್ಸ್" ಲೇಖನವು ನಿಮಗೆ ಸಹಾಯಕವಾಗಬಹುದು.
ಈ ಲೇಖನದ ಲಿಂಕ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸ್ವಾಗತ:https://www.chenweiliang.com/cwl-34423.html
