ಕದಿಯಿರಿ: ಯಾರು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಿಂದ CPU ಸಮಯವನ್ನು ಕದಿಯುತ್ತಾರೆ

ಕದಿಯಿರಿ: ಯಾರು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಿಂದ CPU ಸಮಯವನ್ನು ಕದಿಯುತ್ತಾರೆ

ನಮಸ್ಕಾರ! ವರ್ಚುವಲ್ ಯಂತ್ರಗಳ ಒಳಗೆ ಕದಿಯುವ ಯಂತ್ರಶಾಸ್ತ್ರದ ಬಗ್ಗೆ ಮತ್ತು ಅದರ ಸಂಶೋಧನೆಯ ಸಮಯದಲ್ಲಿ ನಾವು ಕಂಡುಕೊಂಡ ಕೆಲವು ಸ್ಪಷ್ಟವಲ್ಲದ ಕಲಾಕೃತಿಗಳ ಬಗ್ಗೆ ಸರಳವಾಗಿ ಹೇಳಲು ನಾನು ಬಯಸುತ್ತೇನೆ, ನಾನು ಕ್ಲೌಡ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ತಾಂತ್ರಿಕ ನಿರ್ದೇಶಕನಾಗಿ ಧುಮುಕಬೇಕಾಗಿತ್ತು. Mail.ru ಕ್ಲೌಡ್ ಪರಿಹಾರಗಳು. ವೇದಿಕೆಯು KVM ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ.

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

1. ಕಳ್ಳತನ ಎಂದರೇನು

ಆದ್ದರಿಂದ, ಸ್ಟೀಲ್ ಎನ್ನುವುದು ವರ್ಚುವಲ್ ಗಣಕದೊಳಗಿನ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಪ್ರೊಸೆಸರ್ ಸಮಯದ ಕೊರತೆಯನ್ನು ಸೂಚಿಸುವ ಮೆಟ್ರಿಕ್ ಆಗಿದೆ. ವಿವರಿಸಿದಂತೆ KVM ಕರ್ನಲ್ ಪ್ಯಾಚ್‌ನಲ್ಲಿಸ್ಟೆಲ್ತ್ ಎನ್ನುವುದು ಕಾರ್ಯಗತಗೊಳಿಸಲು ವರ್ಚುವಲ್ ಮೆಷಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸರದಿಯಲ್ಲಿಟ್ಟಿದ್ದರೂ ಸಹ ಹೈಪರ್ವೈಸರ್ ಹೋಸ್ಟ್ OS ನಲ್ಲಿ ಇತರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವಾಗಿದೆ. ಅಂದರೆ, ಕದಿಯುವಿಕೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಯು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಿದ್ಧವಾಗಿರುವ ಸಮಯ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯು ಪ್ರೊಸೆಸರ್ ಸಮಯವನ್ನು ನಿಗದಿಪಡಿಸಿದ ಸಮಯದ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೆಂದು ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ.

ವರ್ಚುವಲ್ ಮೆಷಿನ್ ಕರ್ನಲ್ ಹೈಪರ್ವೈಸರ್ನಿಂದ ಸ್ಟೀಲ್ ಮೆಟ್ರಿಕ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಹೈಪರ್ವೈಸರ್ ಇದು ಚಾಲನೆಯಲ್ಲಿರುವ ಇತರ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿಖರವಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದಿಲ್ಲ, ಅದು ಸರಳವಾಗಿ ಹೇಳುತ್ತದೆ "ನಾನು ಕಾರ್ಯನಿರತವಾಗಿರುವಾಗ, ನಾನು ನಿಮಗೆ ಸಮಯವನ್ನು ನೀಡಲು ಸಾಧ್ಯವಿಲ್ಲ." KVM ನಲ್ಲಿ, ಕದಿಯ ಲೆಕ್ಕಾಚಾರಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ ತೇಪೆಗಳು. ಇಲ್ಲಿ ಎರಡು ಪ್ರಮುಖ ಅಂಶಗಳಿವೆ:

  • ವರ್ಚುವಲ್ ಯಂತ್ರವು ಹೈಪರ್ವೈಸರ್ನಿಂದ ಕದಿಯುವ ಬಗ್ಗೆ ಕಲಿಯುತ್ತದೆ. ಅಂದರೆ, ನಷ್ಟದ ದೃಷ್ಟಿಕೋನದಿಂದ, ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿನ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಇದು ಪರೋಕ್ಷ ಮಾಪನವಾಗಿದ್ದು ಅದು ವಿವಿಧ ವಿರೂಪಗಳಿಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ.
  • ಹೈಪರ್ವೈಸರ್ ವರ್ಚುವಲ್ ಯಂತ್ರದೊಂದಿಗೆ ಅದು ಬೇರೆ ಏನು ಮಾಡುತ್ತಿದೆ ಎಂಬುದರ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದಿಲ್ಲ - ಮುಖ್ಯ ವಿಷಯವೆಂದರೆ ಅದು ಸಮಯವನ್ನು ವಿನಿಯೋಗಿಸುವುದಿಲ್ಲ. ಈ ಕಾರಣದಿಂದಾಗಿ, ವರ್ಚುವಲ್ ಯಂತ್ರವು ಸ್ವತಃ ಕದಿಯುವ ಸೂಚಕದಲ್ಲಿನ ವಿರೂಪಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಿಲ್ಲ, ಇದನ್ನು ಸ್ಪರ್ಧಾತ್ಮಕ ಪ್ರಕ್ರಿಯೆಗಳ ಸ್ವಭಾವದಿಂದ ನಿರ್ಣಯಿಸಬಹುದು.

2. ಕಳ್ಳತನದ ಮೇಲೆ ಏನು ಪರಿಣಾಮ ಬೀರುತ್ತದೆ

2.1. ಕದಿಯುವ ಲೆಕ್ಕಾಚಾರ

ಮೂಲಭೂತವಾಗಿ, ಕದಿಯುವಿಕೆಯನ್ನು ಸಾಮಾನ್ಯ CPU ಬಳಕೆಯ ಸಮಯದಂತೆಯೇ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ. ಮರುಬಳಕೆಯನ್ನು ಹೇಗೆ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿ ಇಲ್ಲ. ಬಹುಶಃ ಹೆಚ್ಚಿನ ಜನರು ಈ ಪ್ರಶ್ನೆಯನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಪರಿಗಣಿಸುತ್ತಾರೆ. ಆದರೆ ಇಲ್ಲಿ ಮೋಸಗಳೂ ಇವೆ. ಈ ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ನೀವೇ ಪರಿಚಿತರಾಗಲು, ನೀವು ಓದಬಹುದು ಬ್ರೆಂಡನ್ ಗ್ರೆಗ್ ಅವರ ಲೇಖನ: ಬಳಕೆಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವಾಗ ನೀವು ಬಹಳಷ್ಟು ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳ ಬಗ್ಗೆ ಮತ್ತು ಈ ಕೆಳಗಿನ ಕಾರಣಗಳಿಗಾಗಿ ಈ ಲೆಕ್ಕಾಚಾರವು ತಪ್ಪಾಗಿರುವ ಸಂದರ್ಭಗಳ ಬಗ್ಗೆ ಕಲಿಯುವಿರಿ:

  • ಪ್ರೊಸೆಸರ್ ಅತಿಯಾಗಿ ಬಿಸಿಯಾಗುತ್ತದೆ, ಚಕ್ರಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ.
  • ಟರ್ಬೊ ಬೂಸ್ಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ, ಇದು ಪ್ರೊಸೆಸರ್ ಗಡಿಯಾರದ ವೇಗವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ.
  • SpeedStep ನಂತಹ ಪ್ರೊಸೆಸರ್ ಪವರ್-ಉಳಿತಾಯ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಬಳಸುವಾಗ ಸಂಭವಿಸುವ ಸಮಯದ ಸ್ಲೈಸ್‌ನ ಉದ್ದದಲ್ಲಿನ ಬದಲಾವಣೆ.
  • ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ಸಮಸ್ಯೆ: ಒಂದು ನಿಮಿಷದ ಬಳಕೆಯನ್ನು 80% ಎಂದು ಅಂದಾಜು ಮಾಡುವುದರಿಂದ 100% ನಷ್ಟು ಅಲ್ಪಾವಧಿಯ ಸ್ಫೋಟವನ್ನು ಮರೆಮಾಡಬಹುದು.
  • ಸ್ಪಿನ್ ಲಾಕ್ ಪ್ರೊಸೆಸರ್ ಅನ್ನು ಮರುಪಡೆಯಲು ಕಾರಣವಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರ ಪ್ರಕ್ರಿಯೆಯು ಅದರ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯಲ್ಲಿ ಯಾವುದೇ ಪ್ರಗತಿಯನ್ನು ಕಾಣುವುದಿಲ್ಲ. ಪರಿಣಾಮವಾಗಿ, ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಲೆಕ್ಕಹಾಕಿದ ಪ್ರೊಸೆಸರ್ ಬಳಕೆಯು ನೂರು ಪ್ರತಿಶತದಷ್ಟು ಇರುತ್ತದೆ, ಆದಾಗ್ಯೂ ಪ್ರಕ್ರಿಯೆಯು ಭೌತಿಕವಾಗಿ ಪ್ರೊಸೆಸರ್ ಸಮಯವನ್ನು ಸೇವಿಸುವುದಿಲ್ಲ.

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

ಕದಿಯುವ ಎಣಿಕೆಯ ಪ್ರಕ್ರಿಯೆಯು ಸಾಮಾನ್ಯ ಮರುಬಳಕೆ ಎಣಿಕೆಯಂತೆಯೇ ಅದೇ ಸಮಸ್ಯೆಗಳಿಗೆ ಒಳಪಟ್ಟಿರುತ್ತದೆ. ಅಂತಹ ಸಮಸ್ಯೆಗಳು ಆಗಾಗ್ಗೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ ಎಂದು ಹೇಳಬಾರದು, ಆದರೆ ಅವು ನಿರುತ್ಸಾಹಗೊಳಿಸುತ್ತವೆ.

2.2 KVM ನಲ್ಲಿ ವರ್ಚುವಲೈಸೇಶನ್ ವಿಧಗಳು

ವಿಶಾಲವಾಗಿ ಹೇಳುವುದಾದರೆ, ವರ್ಚುವಲೈಸೇಶನ್‌ನಲ್ಲಿ ಮೂರು ವಿಧಗಳಿವೆ, ಇವೆಲ್ಲವೂ KVM ನಿಂದ ಬೆಂಬಲಿತವಾಗಿದೆ. ಕದಿಯುವಿಕೆಯ ಕಾರ್ಯವಿಧಾನವು ವರ್ಚುವಲೈಸೇಶನ್ ಪ್ರಕಾರವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ.

ಪ್ರಸಾರ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಭೌತಿಕ ಹೈಪರ್ವೈಸರ್ ಸಾಧನಗಳೊಂದಿಗೆ ವರ್ಚುವಲ್ ಮೆಷಿನ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ನ ಕಾರ್ಯಾಚರಣೆಯು ಈ ರೀತಿ ಸಂಭವಿಸುತ್ತದೆ:

  1. ಅತಿಥಿ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ತನ್ನ ಅತಿಥಿ ಸಾಧನಕ್ಕೆ ಆಜ್ಞೆಯನ್ನು ಕಳುಹಿಸುತ್ತದೆ.
  2. ಅತಿಥಿ ಸಾಧನ ಚಾಲಕವು ಆಜ್ಞೆಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ, ಸಾಧನ BIOS ಗಾಗಿ ವಿನಂತಿಯನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹೈಪರ್ವೈಸರ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ.
  3. ಹೈಪರ್ವೈಸರ್ ಪ್ರಕ್ರಿಯೆಯು ಭೌತಿಕ ಸಾಧನಕ್ಕಾಗಿ ಆಜ್ಞೆಗೆ ಆಜ್ಞೆಯನ್ನು ಭಾಷಾಂತರಿಸುತ್ತದೆ, ಇದು ಇತರ ವಿಷಯಗಳ ಜೊತೆಗೆ ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾಗಿದೆ.
  4. ಭೌತಿಕ ಸಾಧನ ಚಾಲಕವು ಮಾರ್ಪಡಿಸಿದ ಆಜ್ಞೆಯನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಭೌತಿಕ ಸಾಧನಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ.
  5. ಆಜ್ಞೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶಗಳು ಅದೇ ಹಾದಿಯಲ್ಲಿ ಹಿಂತಿರುಗುತ್ತವೆ.

ಅನುವಾದದ ಪ್ರಯೋಜನವೆಂದರೆ ಅದು ಯಾವುದೇ ಸಾಧನವನ್ನು ಅನುಕರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕರ್ನಲ್ನ ವಿಶೇಷ ತಯಾರಿಕೆಯ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ. ಆದರೆ ನೀವು ಇದಕ್ಕೆ ಪಾವತಿಸಬೇಕಾಗುತ್ತದೆ, ಮೊದಲನೆಯದಾಗಿ, ವೇಗದಲ್ಲಿ.

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

ಪ್ಯಾರಾವರ್ಚುವಲೈಸೇಶನ್. KVM ನಲ್ಲಿ ಸಾಧನ ವರ್ಚುವಲೈಸೇಶನ್‌ಗೆ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ ಆಯ್ಕೆ ಮತ್ತು ಅತಿಥಿ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಸಾಮಾನ್ಯ ವರ್ಚುವಲೈಸೇಶನ್ ಮೋಡ್. ಇದರ ವಿಶಿಷ್ಟತೆಯು ಕೆಲವು ಹೈಪರ್ವೈಸರ್ ಉಪವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ನೆಟ್ವರ್ಕ್ ಅಥವಾ ಡಿಸ್ಕ್ ಸ್ಟಾಕ್ನೊಂದಿಗೆ) ಅಥವಾ ಮೆಮೊರಿ ಪುಟಗಳ ಹಂಚಿಕೆಯು ಹೈಪರ್ವೈಸರ್ API ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಡಿಮೆ-ಮಟ್ಟದ ಆಜ್ಞೆಗಳನ್ನು ಭಾಷಾಂತರಿಸದೆ ಸಂಭವಿಸುತ್ತದೆ. ಈ ವರ್ಚುವಲೈಸೇಶನ್ ವಿಧಾನದ ಅನನುಕೂಲವೆಂದರೆ ಅತಿಥಿ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಕರ್ನಲ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಬೇಕು ಇದರಿಂದ ಅದು ಈ API ಅನ್ನು ಬಳಸಿಕೊಂಡು ಹೈಪರ್‌ವೈಸರ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಬಹುದು. ಆದರೆ ಅತಿಥಿ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ವಿಶೇಷ ಡ್ರೈವರ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸುವ ಮೂಲಕ ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಪರಿಹರಿಸಲಾಗುತ್ತದೆ. KVM ನಲ್ಲಿ ಈ API ಅನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ virtio API.

ಪ್ಯಾರಾವರ್ಚುವಲೈಸೇಶನ್‌ನೊಂದಿಗೆ, ಪ್ರಸಾರಕ್ಕೆ ಹೋಲಿಸಿದರೆ, ವರ್ಚುವಲ್ ಗಣಕದಿಂದ ನೇರವಾಗಿ ಹೋಸ್ಟ್‌ನಲ್ಲಿರುವ ಹೈಪರ್‌ವೈಸರ್ ಪ್ರಕ್ರಿಯೆಗೆ ಆಜ್ಞೆಗಳನ್ನು ಕಳುಹಿಸುವ ಮೂಲಕ ಭೌತಿಕ ಸಾಧನದ ಮಾರ್ಗವು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆಯಾಗುತ್ತದೆ. ವರ್ಚುವಲ್ ಗಣಕದೊಳಗಿನ ಎಲ್ಲಾ ಸೂಚನೆಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ವೇಗಗೊಳಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. KVM ನಲ್ಲಿ, ಇದನ್ನು virtio API ನಿಂದ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ನೆಟ್ವರ್ಕ್ ಅಥವಾ ಡಿಸ್ಕ್ ಅಡಾಪ್ಟರ್ನಂತಹ ಕೆಲವು ಸಾಧನಗಳಿಗೆ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದಕ್ಕಾಗಿಯೇ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಲ್ಲಿ ವರ್ಟಿಯೊ ಡ್ರೈವರ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ.

ವರ್ಚುವಲ್ ಗಣಕದೊಳಗೆ ನಡೆಯುವ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳು ಅದರೊಳಗೆ ಉಳಿಯುವುದಿಲ್ಲ ಎಂಬುದು ಈ ವೇಗವರ್ಧನೆಯ ತೊಂದರೆಯಾಗಿದೆ. ಇದು ಕಳ್ಳತನದ ಮೇಲೆ ಮೊಟ್ಟೆಯಿಡುವಿಕೆಗೆ ಕಾರಣವಾಗುವ ಕೆಲವು ವಿಶೇಷ ಪರಿಣಾಮಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ಈ ಸಮಸ್ಯೆಯ ವಿವರವಾದ ಅಧ್ಯಯನವನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ ವರ್ಚುವಲ್ I/O ಗಾಗಿ API: virtio.

2.3 "ನ್ಯಾಯಯುತ" ವೇಳಾಪಟ್ಟಿ

ಹೈಪರ್ವೈಸರ್ನಲ್ಲಿನ ವರ್ಚುವಲ್ ಯಂತ್ರವು, ವಾಸ್ತವವಾಗಿ, ಲಿನಕ್ಸ್ ಕರ್ನಲ್ನಲ್ಲಿ ವೇಳಾಪಟ್ಟಿ (ಪ್ರಕ್ರಿಯೆಗಳ ನಡುವೆ ಸಂಪನ್ಮೂಲ ವಿತರಣೆ) ನಿಯಮಗಳನ್ನು ಪಾಲಿಸುವ ಸಾಮಾನ್ಯ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ, ಆದ್ದರಿಂದ ನಾವು ಅದನ್ನು ಹತ್ತಿರದಿಂದ ನೋಡೋಣ.

Linux CFS ಎಂದು ಕರೆಯಲ್ಪಡುವ, ಸಂಪೂರ್ಣವಾಗಿ ಫೇರ್ ಶೆಡ್ಯೂಲರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಕರ್ನಲ್ 2.6.23 ರಿಂದ ಡೀಫಾಲ್ಟ್ ಶೆಡ್ಯೂಲರ್ ಆಗಿ ಮಾರ್ಪಟ್ಟಿದೆ. ಈ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ನೀವು ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅಥವಾ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಓದಬಹುದು. CFS ನ ಮೂಲತತ್ವವೆಂದರೆ ಅವುಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಅವಧಿಯನ್ನು ಅವಲಂಬಿಸಿ ಪ್ರಕ್ರಿಯೆಗಳ ನಡುವೆ ಪ್ರೊಸೆಸರ್ ಸಮಯವನ್ನು ವಿತರಿಸುವುದು. ಒಂದು ಪ್ರಕ್ರಿಯೆಗೆ ಹೆಚ್ಚು CPU ಸಮಯ ಬೇಕಾಗುತ್ತದೆ, ಅದು ಕಡಿಮೆ CPU ಸಮಯವನ್ನು ಪಡೆಯುತ್ತದೆ. ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳು "ತಕ್ಕಮಟ್ಟಿಗೆ" ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ - ಆದ್ದರಿಂದ ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ನಿರಂತರವಾಗಿ ಎಲ್ಲಾ ಪ್ರೊಸೆಸರ್ಗಳನ್ನು ಆಕ್ರಮಿಸುವುದಿಲ್ಲ ಮತ್ತು ಇತರ ಪ್ರಕ್ರಿಯೆಗಳು ಸಹ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು.

ಕೆಲವೊಮ್ಮೆ ಈ ಮಾದರಿಯು ಆಸಕ್ತಿದಾಯಕ ಕಲಾಕೃತಿಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಕಂಪೈಲರ್‌ನಂತಹ ಸಂಪನ್ಮೂಲ-ತೀವ್ರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವಾಗ ದೀರ್ಘಕಾಲೀನ ಲಿನಕ್ಸ್ ಬಳಕೆದಾರರು ಡೆಸ್ಕ್‌ಟಾಪ್‌ನಲ್ಲಿ ಸಾಮಾನ್ಯ ಪಠ್ಯ ಸಂಪಾದಕವನ್ನು ಫ್ರೀಜ್ ಮಾಡುವುದನ್ನು ಬಹುಶಃ ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತಾರೆ. ಡೆಸ್ಕ್‌ಟಾಪ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿನ ಸಂಪನ್ಮೂಲ-ತೀವ್ರವಲ್ಲದ ಕಾರ್ಯಗಳು ಕಂಪೈಲರ್‌ನಂತಹ ಸಂಪನ್ಮೂಲ-ತೀವ್ರ ಕಾರ್ಯಗಳೊಂದಿಗೆ ಸ್ಪರ್ಧಿಸುವುದರಿಂದ ಇದು ಸಂಭವಿಸಿದೆ. CFS ಇದು ಅನ್ಯಾಯವೆಂದು ಭಾವಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಇದು ನಿಯತಕಾಲಿಕವಾಗಿ ಪಠ್ಯ ಸಂಪಾದಕವನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ ಮತ್ತು ಕಂಪೈಲರ್‌ನ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಪ್ರೊಸೆಸರ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಯಾಂತ್ರಿಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಇದನ್ನು ಸರಿಪಡಿಸಲಾಗಿದೆ ನಿಗದಿತ_ಸ್ವಯಂ ಗುಂಪು, ಆದರೆ ಕಾರ್ಯಗಳ ನಡುವೆ ಪ್ರೊಸೆಸರ್ ಸಮಯದ ವಿತರಣೆಯ ಇತರ ಹಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಉಳಿದಿವೆ. ವಾಸ್ತವವಾಗಿ, ಇದು CFS ನಲ್ಲಿ ಎಲ್ಲವೂ ಎಷ್ಟು ಕೆಟ್ಟದಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ಒಂದು ಕಥೆಯಲ್ಲ, ಆದರೆ ಪ್ರೊಸೆಸರ್ ಸಮಯದ "ನ್ಯಾಯಯುತ" ವಿತರಣೆಯು ಅತ್ಯಂತ ಕ್ಷುಲ್ಲಕ ಕಾರ್ಯವಲ್ಲ ಎಂಬ ಅಂಶಕ್ಕೆ ಗಮನ ಸೆಳೆಯುವ ಪ್ರಯತ್ನವಾಗಿದೆ.

ಶೆಡ್ಯೂಲರ್‌ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ ಪೂರ್ವಭಾವಿ. ಪ್ರೊಸೆಸರ್‌ನಿಂದ ಸ್ನಿಕ್ಕರಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೊರಹಾಕಲು ಮತ್ತು ಇತರರು ಕೆಲಸ ಮಾಡಲು ಇದು ಅವಶ್ಯಕವಾಗಿದೆ. ಎಜೆಕ್ಷನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸಂದರ್ಭ ಸ್ವಿಚಿಂಗ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಕಾರ್ಯದ ಸಂಪೂರ್ಣ ಸಂದರ್ಭವನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ: ಸ್ಟಾಕ್, ರೆಜಿಸ್ಟರ್ಗಳು, ಇತ್ಯಾದಿಗಳ ಸ್ಥಿತಿ, ಅದರ ನಂತರ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕಾಯಲು ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಇನ್ನೊಂದು ಅದರ ಸ್ಥಾನವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಇದು OS ಗೆ ದುಬಾರಿ ಕಾರ್ಯಾಚರಣೆಯಾಗಿದೆ ಮತ್ತು ಇದನ್ನು ವಿರಳವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಅದರಲ್ಲಿ ಅಂತರ್ಗತವಾಗಿ ಏನೂ ತಪ್ಪಿಲ್ಲ. ಆಗಾಗ್ಗೆ ಸಂದರ್ಭ ಸ್ವಿಚಿಂಗ್ OS ನಲ್ಲಿ ಸಮಸ್ಯೆಯನ್ನು ಸೂಚಿಸಬಹುದು, ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಇದು ನಿರಂತರವಾಗಿರುತ್ತದೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟವಾಗಿ ಏನನ್ನೂ ಸೂಚಿಸುವುದಿಲ್ಲ.

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

2.4 ಕಳ್ಳತನವನ್ನು ಹೇಗೆ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದು?

ಯಾವುದೇ ಇತರ ಪ್ರೊಸೆಸರ್ ಮೆಟ್ರಿಕ್‌ನಂತೆ ವರ್ಚುವಲ್ ಯಂತ್ರದೊಳಗೆ ಕಳ್ಳತನವನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದು ಸರಳವಾಗಿದೆ: ನೀವು ಯಾವುದೇ ಪ್ರೊಸೆಸರ್ ಮೆಟ್ರಿಕ್ಸ್ ಉಪಕರಣವನ್ನು ಬಳಸಬಹುದು. ಮುಖ್ಯ ವಿಷಯವೆಂದರೆ ವರ್ಚುವಲ್ ಯಂತ್ರವು ಲಿನಕ್ಸ್‌ನಲ್ಲಿದೆ. ಕೆಲವು ಕಾರಣಗಳಿಗಾಗಿ ವಿಂಡೋಸ್ ತನ್ನ ಬಳಕೆದಾರರಿಗೆ ಈ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. 🙁

ಕದಿಯಿರಿ: ಯಾರು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಿಂದ CPU ಸಮಯವನ್ನು ಕದಿಯುತ್ತಾರೆ
ಟಾಪ್ ಕಮಾಂಡ್‌ನ ಔಟ್‌ಪುಟ್: ಪ್ರೊಸೆಸರ್ ಲೋಡ್‌ನ ವಿವರಗಳು, ಬಲಭಾಗದ ಕಾಲಮ್‌ನಲ್ಲಿ - ಕದಿಯಿರಿ

ಹೈಪರ್ವೈಸರ್ನಿಂದ ಈ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುವಾಗ ತೊಂದರೆ ಉಂಟಾಗುತ್ತದೆ. ನೀವು ಹೋಸ್ಟ್ ಗಣಕದಲ್ಲಿ ಕಳ್ಳತನವನ್ನು ಊಹಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ, ಲೋಡ್ ಸರಾಸರಿ (LA) ನಿಯತಾಂಕವನ್ನು ಬಳಸಿ - ಎಕ್ಸಿಕ್ಯೂಶನ್ ಕ್ಯೂನಲ್ಲಿ ಕಾಯುತ್ತಿರುವ ಪ್ರಕ್ರಿಯೆಗಳ ಸಂಖ್ಯೆಯ ಸರಾಸರಿ ಮೌಲ್ಯ. ಈ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ವಿಧಾನವು ಸರಳವಲ್ಲ, ಆದರೆ ಸಾಮಾನ್ಯವಾಗಿ, ಪ್ರೊಸೆಸರ್ ಥ್ರೆಡ್ಗಳ ಸಂಖ್ಯೆಯಿಂದ LA ಅನ್ನು ಸಾಮಾನ್ಯಗೊಳಿಸಿದರೆ 1 ಕ್ಕಿಂತ ಹೆಚ್ಚು, ಇದು Linux ಸರ್ವರ್ ಏನನ್ನಾದರೂ ಓವರ್ಲೋಡ್ ಆಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.

ಈ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳು ಯಾವುದಕ್ಕಾಗಿ ಕಾಯುತ್ತಿವೆ? ಸ್ಪಷ್ಟ ಉತ್ತರವೆಂದರೆ ಪ್ರೊಸೆಸರ್. ಆದರೆ ಉತ್ತರವು ಸಂಪೂರ್ಣವಾಗಿ ಸರಿಯಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ಕೆಲವೊಮ್ಮೆ ಪ್ರೊಸೆಸರ್ ಉಚಿತವಾಗಿದೆ, ಆದರೆ LA ಪ್ರಮಾಣದಿಂದ ಹೊರಗುಳಿಯುತ್ತದೆ. ನೆನಪಿರಲಿ NFS ಹೇಗೆ ಬೀಳುತ್ತದೆ ಮತ್ತು LA ಹೇಗೆ ಬೆಳೆಯುತ್ತದೆ. ಡಿಸ್ಕ್ ಮತ್ತು ಇತರ ಇನ್‌ಪುಟ್/ಔಟ್‌ಪುಟ್ ಸಾಧನಗಳಲ್ಲಿ ಅದೇ ಸಂಭವಿಸಬಹುದು. ಆದರೆ ವಾಸ್ತವವಾಗಿ, ಪ್ರಕ್ರಿಯೆಗಳು ಯಾವುದೇ ಲಾಕ್‌ನ ಅಂತ್ಯಕ್ಕಾಗಿ ಕಾಯಬಹುದು, ಭೌತಿಕ, I/O ಸಾಧನದೊಂದಿಗೆ ಅಥವಾ ತಾರ್ಕಿಕ, ಉದಾಹರಣೆಗೆ ಮ್ಯೂಟೆಕ್ಸ್. ಇದು ಹಾರ್ಡ್‌ವೇರ್ ಮಟ್ಟದಲ್ಲಿ ಲಾಕ್ ಮಾಡುವುದನ್ನು (ಡಿಸ್ಕ್‌ನಿಂದ ಅದೇ ಪ್ರತಿಕ್ರಿಯೆ) ಅಥವಾ ಲಾಜಿಕ್ (ಲಾಕಿಂಗ್ ಪ್ರೈಮಿಟಿವ್ಸ್ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ, ಇದು ಘಟಕಗಳ ಗುಂಪನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಮ್ಯೂಟೆಕ್ಸ್ ಅಡಾಪ್ಟಿವ್ ಮತ್ತು ಸ್ಪಿನ್, ಸೆಮಾಫೋರ್‌ಗಳು, ಸ್ಥಿತಿ ವೇರಿಯಬಲ್‌ಗಳು, ಆರ್‌ಡಬ್ಲ್ಯೂ ಲಾಕ್‌ಗಳು, ಐಪಿಸಿ ಲಾಕ್‌ಗಳು ...)

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

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

3. ವಿಶೇಷ ಪರಿಣಾಮಗಳು

ಈಗ ನಾವು ಎದುರಿಸಿದ ಕಳ್ಳತನದ ಪ್ರಮುಖ ಪ್ರಕರಣಗಳನ್ನು ನೋಡೋಣ. ಮೇಲಿನ ಎಲ್ಲದರಿಂದ ಅವರು ಹೇಗೆ ಅನುಸರಿಸುತ್ತಾರೆ ಮತ್ತು ಹೈಪರ್ವೈಸರ್ನಲ್ಲಿನ ಸೂಚಕಗಳಿಗೆ ಹೇಗೆ ಸಂಬಂಧಿಸಿರುತ್ತಾರೆ ಎಂದು ನಾನು ನಿಮಗೆ ಹೇಳುತ್ತೇನೆ.

ಮರುಬಳಕೆ. ಸರಳ ಮತ್ತು ಅತ್ಯಂತ ಸಾಮಾನ್ಯ: ಹೈಪರ್ವೈಸರ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಲಾಗಿದೆ. ವಾಸ್ತವವಾಗಿ, ಸಾಕಷ್ಟು ಚಾಲನೆಯಲ್ಲಿರುವ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು, ಅವುಗಳೊಳಗೆ ಹೆಚ್ಚಿನ ಪ್ರೊಸೆಸರ್ ಬಳಕೆ, ಸಾಕಷ್ಟು ಸ್ಪರ್ಧೆ, LA ಬಳಕೆ 1 ಕ್ಕಿಂತ ಹೆಚ್ಚು (ಪ್ರೊಸೆಸರ್ ಥ್ರೆಡ್‌ಗಳಿಂದ ಸಾಮಾನ್ಯವಾಗಿದೆ). ಎಲ್ಲಾ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳ ಒಳಗೆ ಎಲ್ಲವೂ ನಿಧಾನಗೊಳ್ಳುತ್ತದೆ. ಹೈಪರ್ವೈಸರ್ನಿಂದ ಹರಡುವ ಕದಿಯುವಿಕೆಯು ಸಹ ಬೆಳೆಯುತ್ತಿದೆ, ಲೋಡ್ ಅನ್ನು ಮರುಹಂಚಿಕೆ ಮಾಡುವುದು ಅಥವಾ ಯಾರನ್ನಾದರೂ ಆಫ್ ಮಾಡುವುದು ಅವಶ್ಯಕ. ಸಾಮಾನ್ಯವಾಗಿ, ಎಲ್ಲವೂ ತಾರ್ಕಿಕ ಮತ್ತು ಅರ್ಥವಾಗುವಂತಹದ್ದಾಗಿದೆ.

ಪ್ಯಾರಾವರ್ಚುವಲೈಸೇಶನ್ ವಿರುದ್ಧ ಏಕ ನಿದರ್ಶನಗಳು. ಹೈಪರ್ವೈಸರ್ನಲ್ಲಿ ಕೇವಲ ಒಂದು ವರ್ಚುವಲ್ ಗಣಕವಿದೆ; ಇದು ಅದರ ಒಂದು ಸಣ್ಣ ಭಾಗವನ್ನು ಬಳಸುತ್ತದೆ, ಆದರೆ ದೊಡ್ಡ I/O ಲೋಡ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಡಿಸ್ಕ್ನಲ್ಲಿ. ಮತ್ತು ಎಲ್ಲೋ ಒಂದು ಸಣ್ಣ ಕಳ್ಳತನವು ಅದರಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ, 10% ವರೆಗೆ (ಹಲವಾರು ಪ್ರಯೋಗಗಳಿಂದ ತೋರಿಸಲಾಗಿದೆ).

ಪ್ರಕರಣ ಕುತೂಹಲಕಾರಿಯಾಗಿದೆ. ಪ್ಯಾರಾವರ್ಚುವಲೈಸ್ಡ್ ಡ್ರೈವರ್‌ಗಳ ಮಟ್ಟದಲ್ಲಿ ನಿರ್ಬಂಧಿಸುವುದರಿಂದ ಸ್ಟೀಲ್ ಇಲ್ಲಿ ನಿಖರವಾಗಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ವರ್ಚುವಲ್ ಗಣಕದೊಳಗೆ ಒಂದು ಅಡಚಣೆಯನ್ನು ರಚಿಸಲಾಗಿದೆ, ಡ್ರೈವರ್ನಿಂದ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹೈಪರ್ವೈಸರ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಹೈಪರ್‌ವೈಸರ್‌ನಲ್ಲಿನ ಅಡಚಣೆಯ ನಿರ್ವಹಣೆಯಿಂದಾಗಿ, ವರ್ಚುವಲ್ ಗಣಕಕ್ಕೆ ಇದು ಕಳುಹಿಸಿದ ವಿನಂತಿಯಂತೆ ಕಾಣುತ್ತದೆ, ಇದು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಿದ್ಧವಾಗಿದೆ ಮತ್ತು ಪ್ರೊಸೆಸರ್‌ಗಾಗಿ ಕಾಯುತ್ತಿದೆ, ಆದರೆ ಅದಕ್ಕೆ ಪ್ರೊಸೆಸರ್ ಸಮಯವನ್ನು ನೀಡಲಾಗಿಲ್ಲ. ವರ್ಚುವಲ್ ಹುಡುಗಿ ಈ ಸಮಯವನ್ನು ಕಳವು ಮಾಡಲಾಗಿದೆ ಎಂದು ಭಾವಿಸುತ್ತಾಳೆ.

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

ಶೆಡ್ಯೂಲರ್ ವರ್ಸಸ್ ಹೆಚ್ಚು ಲೋಡ್ ಮಾಡಲಾದ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು. ಒಂದು ವರ್ಚುವಲ್ ಯಂತ್ರವು ಇತರರಿಗಿಂತ ಹೆಚ್ಚು ಕದಿಯುವಿಕೆಯಿಂದ ಬಳಲುತ್ತಿದ್ದರೆ, ಇದು ಶೆಡ್ಯೂಲರ್‌ನಿಂದ ಉಂಟಾಗುತ್ತದೆ. ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ಪ್ರೊಸೆಸರ್ ಅನ್ನು ಎಷ್ಟು ಹೆಚ್ಚು ಲೋಡ್ ಮಾಡುತ್ತದೆಯೋ ಅಷ್ಟು ಬೇಗ ಶೆಡ್ಯೂಲರ್ ಅದನ್ನು ಹೊರಹಾಕುತ್ತದೆ ಇದರಿಂದ ಇತರರು ಸಹ ಕೆಲಸ ಮಾಡಬಹುದು. ವರ್ಚುವಲ್ ಯಂತ್ರವು ಕಡಿಮೆ ಸೇವಿಸಿದರೆ, ಅದು ಕದಿಯುವುದನ್ನು ನೋಡುವುದಿಲ್ಲ: ಅದರ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾಮಾಣಿಕವಾಗಿ ಕುಳಿತು ಕಾಯುತ್ತಿದೆ, ನಾವು ಅದಕ್ಕೆ ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ನೀಡಬೇಕಾಗಿದೆ. ಒಂದು ವರ್ಚುವಲ್ ಯಂತ್ರವು ಅದರ ಎಲ್ಲಾ ಕೋರ್‌ಗಳಲ್ಲಿ ಗರಿಷ್ಠ ಲೋಡ್ ಅನ್ನು ಉತ್ಪಾದಿಸಿದರೆ, ಅದನ್ನು ಹೆಚ್ಚಾಗಿ ಪ್ರೊಸೆಸರ್‌ನಿಂದ ಹೊರಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಅವರು ಅದಕ್ಕೆ ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ನೀಡದಿರಲು ಪ್ರಯತ್ನಿಸುತ್ತಾರೆ.

ವರ್ಚುವಲ್ ಯಂತ್ರದೊಳಗಿನ ಪ್ರಕ್ರಿಯೆಗಳು ಹೆಚ್ಚಿನ ಪ್ರೊಸೆಸರ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಅದು ಇನ್ನೂ ಕೆಟ್ಟದಾಗಿದೆ ಏಕೆಂದರೆ ಅವುಗಳು ಡೇಟಾ ಸಂಸ್ಕರಣೆಯನ್ನು ನಿಭಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಂತರ ಹೈಪರ್ವೈಸರ್ನಲ್ಲಿನ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್, ಪ್ರಾಮಾಣಿಕ ಆಪ್ಟಿಮೈಸೇಶನ್ ಕಾರಣದಿಂದಾಗಿ, ಕಡಿಮೆ ಮತ್ತು ಕಡಿಮೆ ಪ್ರೊಸೆಸರ್ ಸಮಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ಪ್ರಕ್ರಿಯೆಯು ಹಿಮಕುಸಿತದಂತೆ ಸಂಭವಿಸುತ್ತದೆ ಮತ್ತು ಕದಿಯುವಿಕೆಯು ಆಕಾಶಕ್ಕೆ ಹಾರುತ್ತದೆ, ಆದಾಗ್ಯೂ ಇತರ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು ಅದನ್ನು ಗಮನಿಸುವುದಿಲ್ಲ. ಮತ್ತು ಹೆಚ್ಚು ಕೋರ್ಗಳು, ಪೀಡಿತ ಯಂತ್ರವು ಕೆಟ್ಟದಾಗಿದೆ. ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಅನೇಕ ಕೋರ್‌ಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಲೋಡ್ ಮಾಡಲಾದ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು ಹೆಚ್ಚು ಬಳಲುತ್ತವೆ.

ಕಡಿಮೆ LA, ಆದರೆ ಕಳ್ಳತನವಿದೆ. LA ಸರಿಸುಮಾರು 0,7 ಆಗಿದ್ದರೆ (ಅಂದರೆ, ಹೈಪರ್‌ವೈಸರ್ ಅಂಡರ್‌ಲೋಡ್ ಆಗಿರುವಂತೆ ತೋರುತ್ತದೆ), ಆದರೆ ಪ್ರತ್ಯೇಕ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳಲ್ಲಿ ಕಳ್ಳತನವನ್ನು ಗಮನಿಸಬಹುದು:

  • ಪ್ಯಾರಾವರ್ಚುವಲೈಸೇಶನ್‌ನ ಆಯ್ಕೆಯನ್ನು ಈಗಾಗಲೇ ಮೇಲೆ ವಿವರಿಸಲಾಗಿದೆ. ಹೈಪರ್ವೈಸರ್ ಉತ್ತಮವಾಗಿದ್ದರೂ ವರ್ಚುವಲ್ ಯಂತ್ರವು ಕಳ್ಳತನವನ್ನು ಸೂಚಿಸುವ ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಪಡೆಯಬಹುದು. ನಮ್ಮ ಪ್ರಯೋಗಗಳ ಫಲಿತಾಂಶಗಳ ಪ್ರಕಾರ, ಈ ಕದಿಯುವ ಆಯ್ಕೆಯು 10% ಅನ್ನು ಮೀರುವುದಿಲ್ಲ ಮತ್ತು ವರ್ಚುವಲ್ ಗಣಕದೊಳಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಗಮನಾರ್ಹ ಪರಿಣಾಮ ಬೀರಬಾರದು.
  • LA ನಿಯತಾಂಕವನ್ನು ತಪ್ಪಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗಿದೆ. ಹೆಚ್ಚು ನಿಖರವಾಗಿ, ಪ್ರತಿ ನಿರ್ದಿಷ್ಟ ಕ್ಷಣದಲ್ಲಿ ಅದನ್ನು ಸರಿಯಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ, ಆದರೆ ಸರಾಸರಿ ಒಂದು ನಿಮಿಷದಲ್ಲಿ ಅದು ಕಡಿಮೆ ಅಂದಾಜು ಮಾಡಲ್ಪಟ್ಟಿದೆ. ಉದಾಹರಣೆಗೆ, ಹೈಪರ್ವೈಸರ್ನ ಮೂರನೇ ಪ್ರತಿ ಒಂದು ವರ್ಚುವಲ್ ಯಂತ್ರವು ಅದರ ಎಲ್ಲಾ ಪ್ರೊಸೆಸರ್ಗಳನ್ನು ನಿಖರವಾಗಿ ಅರ್ಧ ನಿಮಿಷಕ್ಕೆ ಬಳಸಿದರೆ, ಹೈಪರ್ವೈಸರ್ನಲ್ಲಿ ಪ್ರತಿ ನಿಮಿಷಕ್ಕೆ LA 0,15 ಆಗಿರುತ್ತದೆ; ಅಂತಹ ನಾಲ್ಕು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು ಏಕಕಾಲದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದರಿಂದ 0,6 ನೀಡುತ್ತದೆ. ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದರಲ್ಲೂ ಅರ್ಧ ನಿಮಿಷದವರೆಗೆ LA ಸೂಚಕದ ಪ್ರಕಾರ 25% ನಷ್ಟು ಕಾಡು ಕಳ್ಳತನವಾಗಿದೆ ಎಂಬ ಅಂಶವನ್ನು ಇನ್ನು ಮುಂದೆ ಹೊರತೆಗೆಯಲಾಗುವುದಿಲ್ಲ.
  • ಮತ್ತೆ, ಯಾರೋ ಒಬ್ಬರು ಹೆಚ್ಚು ತಿನ್ನುತ್ತಿದ್ದಾರೆ ಮತ್ತು ಯಾರಾದರೂ ಕಾಯಲಿ ಎಂದು ನಿರ್ಧರಿಸಿದ ವೇಳಾಪಟ್ಟಿಯ ಕಾರಣದಿಂದಾಗಿ. ಈ ಮಧ್ಯೆ, ನಾನು ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸುತ್ತೇನೆ, ಅಡಚಣೆಗಳನ್ನು ನಿಭಾಯಿಸುತ್ತೇನೆ ಮತ್ತು ಇತರ ಪ್ರಮುಖ ಸಿಸ್ಟಮ್ ವಿಷಯಗಳನ್ನು ನೋಡಿಕೊಳ್ಳುತ್ತೇನೆ. ಪರಿಣಾಮವಾಗಿ, ಕೆಲವು ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು ಯಾವುದೇ ಸಮಸ್ಯೆಗಳನ್ನು ಕಾಣುವುದಿಲ್ಲ, ಆದರೆ ಇತರರು ಗಂಭೀರವಾದ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅವನತಿಯನ್ನು ಅನುಭವಿಸುತ್ತಾರೆ.

4. ಇತರ ವಿರೂಪಗಳು

ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ ಪ್ರೊಸೆಸರ್ ಸಮಯದ ನ್ಯಾಯೋಚಿತ ರಿಟರ್ನ್ ಅನ್ನು ವಿರೂಪಗೊಳಿಸಲು ಇನ್ನೂ ಒಂದು ಮಿಲಿಯನ್ ಕಾರಣಗಳಿವೆ. ಉದಾಹರಣೆಗೆ, ಹೈಪರ್‌ಥ್ರೆಡಿಂಗ್ ಮತ್ತು NUMA ಗಳು ಲೆಕ್ಕಾಚಾರದಲ್ಲಿ ತೊಂದರೆಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತವೆ. ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅವರು ಕರ್ನಲ್ ಆಯ್ಕೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಗೊಂದಲಗೊಳಿಸುತ್ತಾರೆ, ಏಕೆಂದರೆ ಶೆಡ್ಯೂಲರ್ ಗುಣಾಂಕಗಳನ್ನು ಬಳಸುತ್ತಾರೆ - ತೂಕಗಳು, ಸಂದರ್ಭವನ್ನು ಬದಲಾಯಿಸುವಾಗ ಲೆಕ್ಕಾಚಾರವನ್ನು ಇನ್ನಷ್ಟು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ.

ಟರ್ಬೊ ಬೂಸ್ಟ್ ಅಥವಾ ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ ಶಕ್ತಿ ಉಳಿತಾಯ ಮೋಡ್‌ನಂತಹ ತಂತ್ರಜ್ಞಾನಗಳಿಂದಾಗಿ ವಿರೂಪಗಳು ಇವೆ, ಇದು ಬಳಕೆಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವಾಗ, ಕೃತಕವಾಗಿ ಆವರ್ತನವನ್ನು ಹೆಚ್ಚಿಸಬಹುದು ಅಥವಾ ಕಡಿಮೆ ಮಾಡಬಹುದು ಅಥವಾ ಸರ್ವರ್‌ನಲ್ಲಿ ಸಮಯದ ಸ್ಲೈಸ್ ಅನ್ನು ಸಹ ಮಾಡಬಹುದು. ಟರ್ಬೊ ಬೂಸ್ಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಒಂದು ಪ್ರೊಸೆಸರ್ ಥ್ರೆಡ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆಯು ಇನ್ನೊಂದರ ಕಾರ್ಯಕ್ಷಮತೆಯ ಹೆಚ್ಚಳದಿಂದಾಗಿ ಕಡಿಮೆಯಾಗುತ್ತದೆ. ಈ ಕ್ಷಣದಲ್ಲಿ, ಪ್ರಸ್ತುತ ಪ್ರೊಸೆಸರ್ ಆವರ್ತನದ ಬಗ್ಗೆ ಮಾಹಿತಿಯು ವರ್ಚುವಲ್ ಯಂತ್ರಕ್ಕೆ ರವಾನೆಯಾಗುವುದಿಲ್ಲ, ಮತ್ತು ಯಾರಾದರೂ ಅದರ ಸಮಯವನ್ನು ಕದಿಯುತ್ತಿದ್ದಾರೆ ಎಂದು ಅದು ನಂಬುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಇದು 2 GHz ಅನ್ನು ವಿನಂತಿಸಿದೆ, ಆದರೆ ಅರ್ಧದಷ್ಟು ಸ್ವೀಕರಿಸಿದೆ).

ಸಾಮಾನ್ಯವಾಗಿ, ವಿರೂಪಕ್ಕೆ ಹಲವು ಕಾರಣಗಳಿರಬಹುದು. ನಿರ್ದಿಷ್ಟ ಸಿಸ್ಟಂನಲ್ಲಿ ನೀವು ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಕಾಣಬಹುದು. ನಾನು ಮೇಲಿನ ಲಿಂಕ್‌ಗಳನ್ನು ನೀಡಿದ ಪುಸ್ತಕಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು ಉತ್ತಮವಾಗಿದೆ ಮತ್ತು ಹೈಪರ್‌ವೈಸರ್‌ನಿಂದ ಅಂಕಿಅಂಶಗಳನ್ನು ಹಿಂಪಡೆಯುವುದು perf, sysdig, systemtap ನಂತಹ ಉಪಯುಕ್ತತೆಗಳನ್ನು ಬಳಸಿ ಡಜನ್ಗಟ್ಟಲೆ.

5. ತೀರ್ಮಾನಗಳು

  1. ಪ್ಯಾರಾವರ್ಚುವಲೈಸೇಶನ್‌ನಿಂದಾಗಿ ಕೆಲವು ಪ್ರಮಾಣದ ಕದಿಯುವಿಕೆ ಸಂಭವಿಸಬಹುದು ಮತ್ತು ಇದನ್ನು ಸಾಮಾನ್ಯವೆಂದು ಪರಿಗಣಿಸಬಹುದು. ಈ ಮೌಲ್ಯವು 5-10% ಆಗಿರಬಹುದು ಎಂದು ಅವರು ಅಂತರ್ಜಾಲದಲ್ಲಿ ಬರೆಯುತ್ತಾರೆ. ವರ್ಚುವಲ್ ಗಣಕದ ಒಳಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಅದರ ಭೌತಿಕ ಸಾಧನಗಳಲ್ಲಿ ಅದು ಹಾಕುವ ಲೋಡ್ ಅನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ವರ್ಚುವಲ್ ಯಂತ್ರಗಳ ಒಳಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಹೇಗೆ ಭಾವಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ಇಲ್ಲಿ ಗಮನಿಸುವುದು ಮುಖ್ಯ.
  2. ವರ್ಚುವಲ್ ಯಂತ್ರದೊಳಗಿನ ಹೈಪರ್ವೈಸರ್ ಮತ್ತು ಕದಿಯುವಿಕೆಯ ಮೇಲಿನ ಹೊರೆಯ ಅನುಪಾತವು ಯಾವಾಗಲೂ ಸ್ಪಷ್ಟವಾಗಿ ಪರಸ್ಪರ ಸಂಬಂಧ ಹೊಂದಿರುವುದಿಲ್ಲ; ವಿಭಿನ್ನ ಲೋಡ್‌ಗಳ ಅಡಿಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಸಂದರ್ಭಗಳಲ್ಲಿ ಕದಿಯುವಿಕೆಯ ಎರಡೂ ಅಂದಾಜುಗಳು ತಪ್ಪಾಗಿರಬಹುದು.
  3. ಶೆಡ್ಯೂಲರ್ ಬಹಳಷ್ಟು ಕೇಳುವ ಪ್ರಕ್ರಿಯೆಗಳ ಬಗ್ಗೆ ಕೆಟ್ಟ ಮನೋಭಾವವನ್ನು ಹೊಂದಿದ್ದಾನೆ. ಹೆಚ್ಚು ಕೇಳುವವರಿಗೆ ಕಡಿಮೆ ಕೊಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಾನೆ. ದೊಡ್ಡ ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು ದುಷ್ಟ.
  4. ಪ್ಯಾರಾವರ್ಚುವಲೈಸೇಶನ್ ಇಲ್ಲದೆಯೂ ಸ್ವಲ್ಪ ಕದಿಯುವುದು ರೂಢಿಯಾಗಿರಬಹುದು (ವರ್ಚುವಲ್ ಯಂತ್ರದೊಳಗಿನ ಲೋಡ್ ಅನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು, ನೆರೆಹೊರೆಯವರ ಹೊರೆಯ ಗುಣಲಕ್ಷಣಗಳು, ಎಳೆಗಳಾದ್ಯಂತ ಲೋಡ್ ವಿತರಣೆ ಮತ್ತು ಇತರ ಅಂಶಗಳು).
  5. ನಿರ್ದಿಷ್ಟ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಕದಿಯುವುದನ್ನು ನೀವು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಬಯಸಿದರೆ, ನೀವು ವಿವಿಧ ಆಯ್ಕೆಗಳನ್ನು ಅನ್ವೇಷಿಸಬೇಕು, ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಬೇಕು, ಅವುಗಳನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ವಿಶ್ಲೇಷಿಸಬೇಕು ಮತ್ತು ಲೋಡ್ ಅನ್ನು ಸಮವಾಗಿ ವಿತರಿಸುವುದು ಹೇಗೆ ಎಂದು ಯೋಚಿಸಬೇಕು. ಯಾವುದೇ ಪ್ರಕರಣಗಳಿಂದ ವಿಚಲನಗಳು ಸಾಧ್ಯ, ಇದನ್ನು ಪ್ರಾಯೋಗಿಕವಾಗಿ ದೃಢೀಕರಿಸಬೇಕು ಅಥವಾ ಕರ್ನಲ್ ಡೀಬಗರ್‌ನಲ್ಲಿ ನೋಡಬೇಕು.

ಮೂಲ: www.habr.com

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