Context switching और उच्च CPU
Context switches तब होते हैं जब CPU एक कार्य की स्थिति सहेजता है और दूसरे की स्थिति लोड करता है। कुछ switching सामान्य है, लेकिन अत्यधिक दरें CPU का समय बर्बाद करती हैं।
Evidence to look for
व्यस्त सर्वर पर प्रति सेकंड context switches 50,000+ से अधिक हो जाते हैं
CPU उपयोग उच्च है लेकिन थ्रूपुट स्थिर है
थ्रेड्स कम करने से प्रदर्शन में सुधार होता है
What it usually means
प्रत्येक context switch की एक लागत होती है: रजिस्टर सहेजना, कैश फ्लश करना, नई स्थिति लोड करना। उच्च दरों पर, यह ओवरहेड महत्वपूर्ण हो जाता है।
What to do next
- 1थ्रेड या प्रक्रिया की संख्या कम करें
- 2महत्वपूर्ण थ्रेड्स को विशिष्ट कोर पर पिन करें
- 3thread-per-connection के बजाय async IO का उपयोग करें
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai