MITಯಿಂದ ಹೊಸ CPU ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್

ಶೆನಾಂಗೊ ವ್ಯವಸ್ಥೆಯನ್ನು ಡೇಟಾ ಕೇಂದ್ರಗಳಲ್ಲಿ ಬಳಸಲು ಯೋಜಿಸಲಾಗಿದೆ.

MITಯಿಂದ ಹೊಸ CPU ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್
/ ಫೋಟೋ ಮಾರ್ಕೊ ವರ್ಚ್ ಸಿಸಿ ಬೈ

ಪೂರೈಕೆದಾರರೊಬ್ಬರ ಪ್ರಕಾರ, ಡೇಟಾ ಕೇಂದ್ರಗಳು ಬಳಕೆ ಲಭ್ಯವಿರುವ ಕಂಪ್ಯೂಟಿಂಗ್ ಶಕ್ತಿಯ 20-40% ಮಾತ್ರ. ಹೆಚ್ಚಿನ ಹೊರೆಗಳಲ್ಲಿ ಈ ಸೂಚಕ 60% ತಲುಪಬಹುದು. ಸಂಪನ್ಮೂಲಗಳ ಈ ವಿತರಣೆಯು "ಜೊಂಬಿ ಸರ್ವರ್ಗಳು" ಎಂದು ಕರೆಯಲ್ಪಡುವ ಹೊರಹೊಮ್ಮುವಿಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಇವುಗಳು ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ನಿಷ್ಕ್ರಿಯವಾಗಿ ಕುಳಿತು, ಶಕ್ತಿಯನ್ನು ವ್ಯರ್ಥ ಮಾಡುವ ಯಂತ್ರಗಳಾಗಿವೆ. ಇಂದು ವಿಶ್ವದ 30% ಸರ್ವರ್‌ಗಳು ಕೆಲಸವಿಲ್ಲದೆ ಇದ್ದಾರೆ, ವರ್ಷಕ್ಕೆ $30 ಶತಕೋಟಿ ಮೌಲ್ಯದ ವಿದ್ಯುತ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.

ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳ ಅಸಮರ್ಥ ಬಳಕೆಯನ್ನು ಎದುರಿಸಲು MIT ನಿರ್ಧರಿಸಿತು.

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

ಶೆಣಂಗೊ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

Shenango ರಸ್ಟ್ ಮತ್ತು C++ ಬೈಂಡಿಂಗ್‌ಗಳೊಂದಿಗೆ C ಯಲ್ಲಿನ ಲಿನಕ್ಸ್ ಲೈಬ್ರರಿಯಾಗಿದೆ. ಯೋಜನೆಯ ಕೋಡ್ ಮತ್ತು ಪರೀಕ್ಷಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ ಭಂಡಾರಗಳು GitHub ನಲ್ಲಿ.

ಪರಿಹಾರವು IOKernel ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಆಧರಿಸಿದೆ, ಇದು ಮಲ್ಟಿಪ್ರೊಸೆಸರ್ ಸಿಸ್ಟಮ್ನ ಮೀಸಲಾದ ಕೋರ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ಚೌಕಟ್ಟನ್ನು ಬಳಸಿಕೊಂಡು CPU ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಡಿಪಿಡಿಕೆ, ಇದು ನೆಟ್‌ವರ್ಕ್ ಸಾಧನಗಳೊಂದಿಗೆ ನೇರವಾಗಿ ಸಂವಹನ ನಡೆಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ.

ನಿರ್ದಿಷ್ಟ ಕಾರ್ಯವನ್ನು ಯಾವ ಕರ್ನಲ್‌ಗಳಿಗೆ ನಿಯೋಜಿಸಬೇಕೆಂದು IOKernel ನಿರ್ಧರಿಸುತ್ತದೆ. ಅಲ್ಗಾರಿದಮ್ ಎಷ್ಟು ಕೋರ್‌ಗಳು ಬೇಕು ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಪ್ರತಿ ಪ್ರಕ್ರಿಯೆಗೆ, ಮುಖ್ಯ ಕೋರ್ಗಳು (ಖಾತರಿ) ಮತ್ತು ಹೆಚ್ಚುವರಿ (ಒಡೆಯಬಹುದಾದ) ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ - CPU ಗೆ ವಿನಂತಿಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ತೀವ್ರ ಹೆಚ್ಚಳದ ಸಂದರ್ಭದಲ್ಲಿ ಎರಡನೆಯದನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ.

IOKernel ವಿನಂತಿ ಸರತಿಯನ್ನು ಹೀಗೆ ಆಯೋಜಿಸಲಾಗಿದೆ ರಿಂಗ್ ಬಫರ್. ಪ್ರತಿ ಐದು ಮೈಕ್ರೋಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ, ಕೋರ್‌ಗೆ ನಿಯೋಜಿಸಲಾದ ಎಲ್ಲಾ ಕಾರ್ಯಗಳು ಪೂರ್ಣಗೊಂಡಿವೆಯೇ ಎಂದು ಅಲ್ಗಾರಿದಮ್ ಪರಿಶೀಲಿಸುತ್ತದೆ. ಇದನ್ನು ಮಾಡಲು, ಇದು ಬಫರ್ನ ತಲೆಯ ಪ್ರಸ್ತುತ ಸ್ಥಳವನ್ನು ಅದರ ಬಾಲದ ಹಿಂದಿನ ಸ್ಥಾನದೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ. ಹಿಂದಿನ ಪರಿಶೀಲನೆಯ ಸಮಯದಲ್ಲಿ ಬಾಲವು ಈಗಾಗಲೇ ಸರದಿಯಲ್ಲಿದೆ ಎಂದು ತಿರುಗಿದರೆ, ಸಿಸ್ಟಮ್ ಬಫರ್ ಓವರ್ಲೋಡ್ ಅನ್ನು ಗಮನಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೆ ಹೆಚ್ಚುವರಿ ಕೋರ್ ಅನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ.

ಲೋಡ್ ಅನ್ನು ವಿತರಿಸುವಾಗ, ಅದೇ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮೊದಲು ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಮತ್ತು ಭಾಗಶಃ ಸಂಗ್ರಹದಲ್ಲಿ ಉಳಿದಿರುವ ಕೋರ್ಗಳಿಗೆ ಅಥವಾ ಯಾವುದೇ ಐಡಲ್ ಕೋರ್ಗಳಿಗೆ ಆದ್ಯತೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ.

MITಯಿಂದ ಹೊಸ CPU ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್

ಶೆನಂಗೊ ಹೆಚ್ಚುವರಿಯಾಗಿ ವಿಧಾನವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಕದಿಯುವ ಕೆಲಸ. ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಚಲಾಯಿಸಲು ನಿಯೋಜಿಸಲಾದ ಕೋರ್‌ಗಳು ಪರಸ್ಪರ ಹೊಂದಿರುವ ಕಾರ್ಯಗಳ ಸಂಖ್ಯೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ. ಒಂದು ಕೋರ್ ತನ್ನ ಕಾರ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ಇತರರಿಗಿಂತ ಮೊದಲು ಪೂರ್ಣಗೊಳಿಸಿದರೆ, ಅದು ತನ್ನ ನೆರೆಹೊರೆಯವರಿಂದ ಹೊರೆಯ ಭಾಗವನ್ನು "ಪರಿಹಾರ" ಮಾಡುತ್ತದೆ.

ಸಾಮರ್ಥ್ಯ ಮತ್ತು ದೌರ್ಬಲ್ಯ

ಬೈ ಪ್ರಕಾರ MIT ಇಂಜಿನಿಯರ್‌ಗಳು, Shenango ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ ಐದು ಮಿಲಿಯನ್ ವಿನಂತಿಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಮತ್ತು 37 ಮೈಕ್ರೋಸೆಕೆಂಡ್‌ಗಳ ಸರಾಸರಿ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ತಂತ್ರಜ್ಞಾನವು ಡೇಟಾ ಕೇಂದ್ರಗಳಲ್ಲಿ ಪ್ರೊಸೆಸರ್‌ಗಳ ಬಳಕೆಯ ದರವನ್ನು 100% ಗೆ ಹೆಚ್ಚಿಸಬಹುದು ಎಂದು ತಜ್ಞರು ಹೇಳುತ್ತಾರೆ. ಪರಿಣಾಮವಾಗಿ, ಡೇಟಾ ಸೆಂಟರ್ ಆಪರೇಟರ್‌ಗಳು ಸರ್ವರ್‌ಗಳ ಖರೀದಿ ಮತ್ತು ನಿರ್ವಹಣೆಯಲ್ಲಿ ಉಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

ಪರಿಹಾರದ ಸಾಮರ್ಥ್ಯ ಆಚರಿಸಿ ಮತ್ತು ಇತರ ವಿಶ್ವವಿದ್ಯಾಲಯಗಳ ತಜ್ಞರು. ಕೊರಿಯನ್ ಸಂಸ್ಥೆಯ ಪ್ರಾಧ್ಯಾಪಕರ ಪ್ರಕಾರ, ವೆಬ್ ಸೇವೆಗಳಲ್ಲಿನ ವಿಳಂಬವನ್ನು ಕಡಿಮೆ ಮಾಡಲು MIT ವ್ಯವಸ್ಥೆಯು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಇದು ಆನ್ಲೈನ್ ​​ಸ್ಟೋರ್ಗಳಲ್ಲಿ ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ. ಮಾರಾಟದ ದಿನಗಳಲ್ಲಿ ಪುಟ ಲೋಡಿಂಗ್‌ನಲ್ಲಿ ಎರಡನೇ ವಿಳಂಬವೂ ಇರುತ್ತದೆ приводит ಸೈಟ್ ವೀಕ್ಷಣೆಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ 11% ರಷ್ಟು ಇಳಿಕೆಗೆ. ತ್ವರಿತ ಲೋಡ್ ವಿತರಣೆಯು ಹೆಚ್ಚಿನ ಗ್ರಾಹಕರಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ತಂತ್ರಜ್ಞಾನವು ಇನ್ನೂ ನ್ಯೂನತೆಗಳನ್ನು ಹೊಂದಿದೆ - ಇದು ಮಲ್ಟಿಪ್ರೊಸೆಸರ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ ನುಮಾಚಿಪ್‌ಗಳು ವಿಭಿನ್ನ ಮೆಮೊರಿ ಮಾಡ್ಯೂಲ್‌ಗಳಿಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಮತ್ತು ಪರಸ್ಪರ "ಸಂವಹನ" ಮಾಡದಿರುವ ವ್ಯವಸ್ಥೆಗಳು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, IOKernel ಪ್ರತ್ಯೇಕ ಗುಂಪಿನ ಪ್ರೊಸೆಸರ್‌ಗಳ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು, ಆದರೆ ಎಲ್ಲಾ ಸರ್ವರ್ ಚಿಪ್‌ಗಳಲ್ಲ.

MITಯಿಂದ ಹೊಸ CPU ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್
/ ಫೋಟೋ ಟಿಮ್ ರೆಕ್ಮನ್ ಸಿಸಿ ಬೈ

ಇದೇ ರೀತಿಯ ತಂತ್ರಜ್ಞಾನಗಳು

ಇತರ ಪ್ರೊಸೆಸರ್ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ವ್ಯವಸ್ಥೆಗಳು ಅರಾಕ್ನೆಯನ್ನು ಒಳಗೊಂಡಿವೆ. ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭವಾದಾಗ ಎಷ್ಟು ಕೋರ್‌ಗಳು ಬೇಕಾಗುತ್ತವೆ ಎಂಬುದನ್ನು ಇದು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ ಮತ್ತು ಈ ಸೂಚಕದ ಪ್ರಕಾರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ವಿತರಿಸುತ್ತದೆ. ಲೇಖಕರ ಪ್ರಕಾರ, ಅರಾಕ್ನೆಯಲ್ಲಿನ ಅಪ್ಲಿಕೇಶನ್‌ನ ಗರಿಷ್ಠ ಸುಪ್ತತೆ ಸುಮಾರು 10 ಸಾವಿರ ಮೈಕ್ರೋಸೆಕೆಂಡ್‌ಗಳು.

ತಂತ್ರಜ್ಞಾನವನ್ನು ಲಿನಕ್ಸ್‌ಗಾಗಿ C++ ಲೈಬ್ರರಿಯಾಗಿ ಅಳವಡಿಸಲಾಗಿದೆ ಮತ್ತು ಅದರ ಮೂಲ ಕೋಡ್ ಇಲ್ಲಿ ಲಭ್ಯವಿದೆ GitHub.

ಮತ್ತೊಂದು ಸಮತೋಲನ ಸಾಧನವೆಂದರೆ ZygOS. ಶೆನಾಂಗೊದಂತೆಯೇ, ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಮರುಹಂಚಿಕೆ ಮಾಡಲು ತಂತ್ರಜ್ಞಾನವು ಕೆಲಸವನ್ನು ಕದಿಯುವ ವಿಧಾನವನ್ನು ಬಳಸುತ್ತದೆ. ZygOS ನ ಲೇಖಕರ ಪ್ರಕಾರ, ಉಪಕರಣವನ್ನು ಬಳಸುವಾಗ ಸರಾಸರಿ ಅಪ್ಲಿಕೇಶನ್ ಲೇಟೆನ್ಸಿ ಸುಮಾರು 150 ಮೈಕ್ರೋಸೆಕೆಂಡ್‌ಗಳು ಮತ್ತು ಗರಿಷ್ಠ 450 ಮೈಕ್ರೋಸೆಕೆಂಡ್‌ಗಳು. ಯೋಜನೆಯ ಕೋಡ್ ಕೂಡ ಆಗಿದೆ ಸಾರ್ವಜನಿಕ ಡೊಮೇನ್‌ನಲ್ಲಿದೆ.

ಸಂಶೋಧನೆಗಳು

ಆಧುನಿಕ ದತ್ತಾಂಶ ಕೇಂದ್ರಗಳು ವಿಸ್ತರಿಸುತ್ತಲೇ ಇವೆ.ಹೆಚ್ಚುತ್ತಿರುವ ಪ್ರವೃತ್ತಿಯು ವಿಶೇಷವಾಗಿ ಹೈಪರ್‌ಸ್ಕೇಲ್ ಡೇಟಾ ಸೆಂಟರ್‌ಗಳ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ ಗಮನಾರ್ಹವಾಗಿದೆ: ಈಗ ಪ್ರಪಂಚದಲ್ಲಿ ಇಲ್ಲ 430 ಹೈಪರ್‌ಸ್ಕೇಲ್ ಡೇಟಾ ಸೆಂಟರ್‌ಗಳು, ಆದರೆ ಮುಂಬರುವ ವರ್ಷಗಳಲ್ಲಿ ಅವುಗಳ ಸಂಖ್ಯೆ 30% ರಷ್ಟು ಹೆಚ್ಚಾಗಬಹುದು. ಈ ಕಾರಣಕ್ಕಾಗಿ, ಪ್ರೊಸೆಸರ್ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸಿಂಗ್ ತಂತ್ರಜ್ಞಾನಗಳು ಹೆಚ್ಚಿನ ಬೇಡಿಕೆಯಲ್ಲಿರುತ್ತವೆ. ಶೆಣಂಗೊ ರೀತಿಯ ವ್ಯವಸ್ಥೆಗಳು ಈಗಾಗಲೇ ಲಭ್ಯವಿದೆ ಕಾರ್ಯಗತಗೊಳಿಸಿ ದೊಡ್ಡ ನಿಗಮಗಳು, ಮತ್ತು ಅಂತಹ ಸಾಧನಗಳ ಸಂಖ್ಯೆಯು ಭವಿಷ್ಯದಲ್ಲಿ ಮಾತ್ರ ಬೆಳೆಯುತ್ತದೆ.

ಕಾರ್ಪೊರೇಟ್ IaaS ಕುರಿತು ಮೊದಲ ಬ್ಲಾಗ್‌ನಿಂದ ಪೋಸ್ಟ್‌ಗಳು:

ಮೂಲ: www.habr.com

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