ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ NGINX ನಿಂದ ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ತನ್ನದೇ ಆದ Pingora ಪ್ರಾಕ್ಸಿಗೆ ಬದಲಾಯಿಸಿತು

ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ ತನ್ನ ಕಂಟೆಂಟ್ ಡೆಲಿವರಿ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಬರೆಯಲಾದ ಪಿಂಗೋರಾ ಪ್ರಾಕ್ಸಿಯನ್ನು ಬಳಸಲು ಪರಿವರ್ತನೆಯನ್ನು ಘೋಷಿಸಿತು. ಹೊಸ ಪ್ರಾಕ್ಸಿಯು NGINX ಸರ್ವರ್ ಆಧಾರಿತ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು Lua ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ ಮತ್ತು ದಿನಕ್ಕೆ ಒಂದು ಟ್ರಿಲಿಯನ್‌ಗಿಂತಲೂ ಹೆಚ್ಚಿನ ವಿನಂತಿಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ. ವಿಶೇಷ ಪ್ರಾಕ್ಸಿಗೆ ಪರಿವರ್ತನೆಯು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ಮೆಮೊರಿಯ ಸುರಕ್ಷಿತ ಕಾರ್ಯಾಚರಣೆಯಿಂದಾಗಿ ಸುರಕ್ಷತೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ಮಾತ್ರವಲ್ಲದೆ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಸಂಪನ್ಮೂಲ ಉಳಿತಾಯದಲ್ಲಿ ಗಮನಾರ್ಹ ಹೆಚ್ಚಳಕ್ಕೆ ಕಾರಣವಾಯಿತು ಎಂದು ಗಮನಿಸಲಾಗಿದೆ - ಪಿಂಗೋರಾ ಆಧಾರಿತ ಪರಿಹಾರವು ಬಳಕೆಯ ಅಗತ್ಯವಿಲ್ಲ. Lua ನ, ಮತ್ತು ಆದ್ದರಿಂದ 70% ಕಡಿಮೆ ಸಂಪನ್ಮೂಲಗಳು CPU ಮತ್ತು 67% ಕಡಿಮೆ ಮೆಮೊರಿಯನ್ನು ಅದೇ ಪ್ರಮಾಣದ ದಟ್ಟಣೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಾಗ ಬಳಸುತ್ತದೆ.

ದೀರ್ಘಕಾಲದವರೆಗೆ, NGINX ಮತ್ತು ಲುವಾ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಬಳಕೆದಾರರು ಮತ್ತು ಅಂತಿಮ ಸರ್ವರ್‌ಗಳ ನಡುವಿನ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಪ್ರಾಕ್ಸಿ ಮಾಡುವ ವ್ಯವಸ್ಥೆಯು ಕ್ಲೌಡ್‌ಫ್ಲೇರ್‌ನ ಅಗತ್ಯಗಳನ್ನು ಪೂರೈಸಿತು, ಆದರೆ ನೆಟ್‌ವರ್ಕ್ ಬೆಳೆದಂತೆ ಮತ್ತು ಅದರ ಸಂಕೀರ್ಣತೆ ಹೆಚ್ಚಾದಂತೆ, ಸಾರ್ವತ್ರಿಕ ಪರಿಹಾರವು ಸಾಕಷ್ಟಿಲ್ಲ ಎಂದು ಹೊರಹೊಮ್ಮಿತು. ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಗ್ರಾಹಕರಿಗೆ ಹೊಸ ಅವಕಾಶಗಳ ವಿಸ್ತರಣೆ ಮತ್ತು ಅನುಷ್ಠಾನದಲ್ಲಿನ ಮಿತಿಗಳ ಕಾರಣದಿಂದಾಗಿ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಸರಳ ಗೇಟ್‌ವೇ ಮತ್ತು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್‌ಗಿಂತ ಹೆಚ್ಚಿನ ಕಾರ್ಯವನ್ನು ಸೇರಿಸುವಲ್ಲಿ ಸವಾಲುಗಳಿವೆ. ಉದಾಹರಣೆಗೆ, ವಿನಂತಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸರ್ವರ್ ವಿಫಲವಾದಲ್ಲಿ, ವಿನಂತಿಯನ್ನು ಮತ್ತೊಂದು ಸರ್ವರ್‌ಗೆ ಮರು-ಕಳುಹಿಸಲು, ಅದಕ್ಕೆ ಬೇರೆ HTTP ಹೆಡರ್‌ಗಳನ್ನು ಒದಗಿಸುವುದು ಅಗತ್ಯವಾಯಿತು.

ಪ್ರತ್ಯೇಕ ಕೆಲಸಗಾರರ ಪ್ರಕ್ರಿಯೆಗಳಲ್ಲಿ ವಿನಂತಿಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ವಾಸ್ತುಶಿಲ್ಪದ ಬದಲಿಗೆ, Pingora ಬಹು-ಥ್ರೆಡ್ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ, ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ ಬಳಕೆಯ ಸಂದರ್ಭಗಳಲ್ಲಿ (ದೊಡ್ಡ ಅಂಕಿಅಂಶಗಳ ಬದಲಾವಣೆಯೊಂದಿಗೆ ವಿವಿಧ ಸೈಟ್‌ಗಳಿಂದ ಹೆಚ್ಚಿನ ಸಾಂದ್ರತೆಯ ಟ್ರಾಫಿಕ್) CPU ಕೋರ್‌ಗಳ ನಡುವೆ ಸಂಪನ್ಮೂಲಗಳ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ವಿತರಣೆಯನ್ನು ತೋರಿಸಿದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಅಸಮತೋಲಿತ ವಿನಂತಿಗಳನ್ನು nginx ಬಂಧಿಸುವುದರಿಂದ CPU ಕೋರ್‌ಗಳ ಮೇಲೆ ಅಸಮತೋಲಿತ ಲೋಡ್‌ಗೆ ಕಾರಣವಾಯಿತು, ಇದರ ಪರಿಣಾಮವಾಗಿ ಸಂಪನ್ಮೂಲ-ತೀವ್ರ ವಿನಂತಿಗಳು ಮತ್ತು I/O ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದು ಇತರ ವಿನಂತಿಗಳ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಹ್ಯಾಂಡ್ಲರ್ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಸಂಪರ್ಕ ಪೂಲ್ ಅನ್ನು ಬಂಧಿಸುವುದು ಇತರ ಹ್ಯಾಂಡ್ಲರ್ ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಈಗಾಗಲೇ ಸ್ಥಾಪಿಸಲಾದ ಸಂಪರ್ಕಗಳ ಮರುಬಳಕೆಯನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ, ಇದು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಹ್ಯಾಂಡ್ಲರ್ ಪ್ರಕ್ರಿಯೆಗಳಿರುವಾಗ ದಕ್ಷತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

NGINX:

ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ NGINX ನಿಂದ ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ತನ್ನದೇ ಆದ Pingora ಪ್ರಾಕ್ಸಿಗೆ ಬದಲಾಯಿಸಿತು

ಪಿಂಗೋರಾ:

ಕ್ಲೌಡ್‌ಫ್ಲೇರ್ NGINX ನಿಂದ ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲಾದ ತನ್ನದೇ ಆದ Pingora ಪ್ರಾಕ್ಸಿಗೆ ಬದಲಾಯಿಸಿತು

Pingora ಅನುಷ್ಠಾನವು ಹೊಸ ಸಂಪರ್ಕಗಳ ಸ್ಥಾಪನೆಗಳ ಸಂಖ್ಯೆಯನ್ನು 160 ಪಟ್ಟು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಮರುಬಳಕೆಯ ಪ್ರಶ್ನೆಗಳ ಪಾಲನ್ನು 87.1% ರಿಂದ 99.92% ಗೆ ಹೆಚ್ಚಿಸಲು ಸಾಧ್ಯವಾಗಿಸಿತು. ಮರುಸಂಪರ್ಕಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವುದರ ಜೊತೆಗೆ ಮತ್ತು CPU ಕೋರ್‌ಗಳ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಬಳಕೆಯೊಂದಿಗೆ, ಹೊಸ ಪ್ರಾಕ್ಸಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ಸುಧಾರಣೆಯು ಮುಖ್ಯವಾಗಿ nginx ನೊಂದಿಗೆ ಬಳಸಿದ ನಿಧಾನವಾದ ಲುವಾ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಕಾರಣದಿಂದಾಗಿ.

ಮೆಮೊರಿಯೊಂದಿಗೆ ಸುರಕ್ಷಿತ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಉಪಕರಣಗಳ ಲಭ್ಯತೆಯೊಂದಿಗೆ ಹೆಚ್ಚಿನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಾಧಿಸಲು ರಸ್ಟ್ ಭಾಷೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ. ಕ್ಲೌಡ್‌ಫ್ಲೇರ್‌ನ ಹೆಚ್ಚಿನ ಅರ್ಹ ಎಂಜಿನಿಯರ್‌ಗಳ ಹೊರತಾಗಿಯೂ ಮತ್ತು ಸಿ ಭಾಷೆಯಲ್ಲಿ ಬರೆದ ಕೋಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದರೂ, ಮೆಮೊರಿ ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗುವ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ (ಉದಾಹರಣೆಗೆ, HTML ಪಾರ್ಸರ್‌ನಲ್ಲಿನ ದುರ್ಬಲತೆ). ಹೊಸ ಕೋಡ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಇದು ಪಿಂಗೋರಾದಲ್ಲಿನ ವೈಫಲ್ಯಗಳನ್ನು ವಿಶ್ಲೇಷಿಸುವ ಪ್ರಕರಣಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತದೆ, ಇದು ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿನ ಸಮಸ್ಯೆಗಳಿಂದಲ್ಲ, ಆದರೆ ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಲ್ಲಿನ ದೋಷ ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ವೈಫಲ್ಯಗಳಿಂದ ಉಂಟಾಗುತ್ತದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ಲಿನಕ್ಸ್ ಕರ್ನಲ್‌ನಲ್ಲಿ ರಸ್ಟ್ ಭಾಷೆಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುವ ಕುರಿತು ಈ ದಿನಗಳಲ್ಲಿ ನಡೆಯುತ್ತಿರುವ ಓಪನ್-ಸೋರ್ಸ್ ಶೃಂಗಸಭೆ ಯುರೋಪ್ ಸಮ್ಮೇಳನದಲ್ಲಿ ಧ್ವನಿ ನೀಡಿದ ಲಿನಸ್ ಟೊರ್ವಾಲ್ಡ್ಸ್ ಅವರ ವ್ಯಾಖ್ಯಾನವನ್ನು ನಾವು ಗಮನಿಸಬಹುದು. ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಡಿವೈಸ್ ಡ್ರೈವರ್‌ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಪ್ಯಾಚ್‌ಗಳನ್ನು 6.0 ಕರ್ನಲ್‌ನಲ್ಲಿ ಸೇರಿಸಲಾಗಿಲ್ಲ, ಆದರೆ ಲಿನಸ್ ಪ್ರಕಾರ, ಅವುಗಳನ್ನು ಹೆಚ್ಚಾಗಿ 6.1 ಕರ್ನಲ್‌ಗೆ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ; ಅವನು ಏಕೀಕರಣವನ್ನು ವಿಳಂಬಗೊಳಿಸುವುದಿಲ್ಲ. ರಸ್ಟ್‌ಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸುವ ಪ್ರೇರಣೆಯಾಗಿ, ಸುರಕ್ಷತೆಯ ಮೇಲೆ ಸಕಾರಾತ್ಮಕ ಪರಿಣಾಮದ ಜೊತೆಗೆ, ಹೊಸ ಭಾಗವಹಿಸುವವರ ಕೋರ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಆಸಕ್ತಿಯನ್ನು ಹೆಚ್ಚಿಸುವ ಅವಕಾಶವನ್ನು ಲಿನಸ್ ಉಲ್ಲೇಖಿಸುತ್ತಾನೆ, ಇದು ವಯಸ್ಸಾದ ಹಳೆಯ-ಸಮಯದ ಸಂದರ್ಭದಲ್ಲಿ ಮುಖ್ಯವಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ