hogyan és miért kell figyelni a szerver CPU használatát
amikor bármilyen alkalmazást használok, azt akarom, hogy gyors legyen. A gyors alkalmazások boldoggá tesznek. És biztos vagyok benne, hogy ez mindenkivel így van. Ha rendelkezik olyan alkalmazással, amely működik az interneten, elengedhetetlen, hogy a szerver teljesítményére összpontosítson. Van egy csomó dolog, hogy vigyázzon, hogy egy jól teljesítő szerver. De ahhoz, hogy javítson valamit, tudnia kell, hol áll az első helyen. Ezért a szerver figyelése az első lépés a szerver teljesítményének növeléséhez.
amikor arról beszélünk, hogy mit kell figyelni a szerver teljesítményének megértése érdekében, sok mutató jöhet létre. Majd összpontosítani csak egy ebben a bejegyzésben: szerver CPU használat. Kezdjük azzal, hogy elmagyarázzuk, mi a szerver CPU-használata, majd megbeszéljük, miért és hogyan kell figyelni.
mit jelent a szerver CPU használata?
minden, ami a szerveren történik, a rendszer feladata. Ez a feladat a szerver által végrehajtott folyamatokra bomlik. A folyamatok különböző összetettségűek lehetnek, és eltérőek lehetnek abban, hogy milyen gyorsan hajthatók végre. Ennek alapján a CPU egy kis időt vesz igénybe a folyamat végrehajtásához. Más szavakkal, a CPU-t használják a folyamat végrehajtására. A CPU-használat az az idő százalékos aránya, amelyet a CPU a feladatok elvégzéséhez használ.
Idle
amikor a CPU tétlen állapotban van, a CPU nem csinál semmit. Csak arra vár, hogy egy feladatot hozzárendeljenek hozzá. Nagyon valószínűtlen, hogy a CPU tétlen állapotban van, ha egyetlen processzoros rendszere van. Még akkor is, ha nem fut semmilyen alkalmazás vagy csinál semmit, a CPU lenne használni, hogy végre operációs rendszer feladatait. De ha a rendszer több processzorral rendelkezik, akkor az egyiket vagy néhányat tétlenül láthatja. Ennek oka lehet, hogy csak egy vagy néhány processzort használnak, a többinek pedig semmi köze.
foglalt
az üresjárati állapot ellentéte a foglalt állapot, amikor a CPU-t egy folyamat végrehajtására használják. A CPU felelős a különböző típusú feladatokért. A feladatok végrehajtása során a CPU négy dolgot tesz:
- Fetch: a feladat elvégzéséhez szükséges utasítások a memóriában tárolódnak. A CPU-nak meg kell szereznie ezeket az utasításokat a memóriából, hogy megértse, mit kell tennie.
- dekódolás: a CPU utasításai különböző formátumokban lehetnek, például programban. Tegyük fel például, hogy C, Java vagy Python programot írt. A CPU-k nem tudják közvetlenül megérteni ezeket a kódolási nyelveket. Olyan formába kell dekódolnia, amit meg tud érteni.
- végrehajtás: Ez az, amikor a CPU valóban elvégzi a feladatot.
- Tárolás: miután a CPU befejezte a feladatot, visszajelzést kell adnia a feladatról. A feladat végrehajtása utáni eredményeket a memória tárolja.
I/O műveletek
ez az az állapot, amikor a CPU nem teljesen tétlen, de nem foglalt sem. A folyamat végrehajtása során előfordulhat, hogy a CPU-nak ki kell adnia néhány adatot egy másik komponensnek vagy folyamatnak. Vagy előfordulhat, hogy a CPU-nak várnia kell, hogy adatokat szerezzen egy másik folyamatból vagy összetevőből. Ebben az esetben az I/O művelet befejezésére vár, hogy folytathassa a feladat végrehajtását.
a CPU használata a CPU mértéke, ha nem tétlen állapotban van. Bár a CPU-használatot százalékban mérik, láthatta, hogy a CPU-használati értékek meghaladják a 100% – ot. Ez nem azt jelenti, hogy a CPU túlterhelt. Például 100% – nál nagyobb CPU-használatot láthat a többprocesszoros rendszerekben. A rendszer CPU-használatának értéke az egyes CPU-k CPU-használatának százalékos összege. Tehát, ha két processzora van, és az egyik CPU-használata 60%, a másik pedig 50%, a teljes CPU-használati érték 110% lenne.
mi okozza a magas CPU-használatot?
a probléma magjának megtalálása segít jobb megoldások megvalósításában a magas CPU-használat érdekében. A CPU használatának különféle okai lehetnek a használati esetek alapján. Felsorolom a leggyakoribb okokat.
magas CPU-igényű folyamatok
egyes programok nagy CPU-erőforrásokat igényelnek. Ha alacsony specifikációjú rendszered van, és egy csúcskategóriás videojátékot próbálsz futtatni, akkor a CPU-használat nyilvánvalóan a tetőn megy keresztül. Hasonlóképpen lehetnek olyan folyamatok is, amelyek nagy CPU-erőforrásokat igényelnek a működéshez. Az ilyen folyamatok vagy számos olyan folyamat, amely részösszegként magas CPU-t használ, az egyik oka lehet. Szervereken több szolgáltatás futtatása a szerver futtatásához, szimulációk stb., magas CPU-felhasználást okozhat.
háttérfolyamatok
a folyamatok elsősorban 2 kategóriába sorolhatók: rendszerfolyamatok és alkalmazási folyamatok. A rendszerfolyamatok azok a folyamatok, amelyekre szükség van a rendszer működésének fenntartásához. Az alkalmazási folyamatok azok a folyamatok, amelyeket egy adott célra használna. Amikor ezek a folyamatok folyamatosan futnak a háttérben, elfogyasztják a CPU erőforrásait.
sok alkalmazásfolyamat fut a háttérben az alkalmazásablak bezárása után is. Ez kevésbé valószínű, hogy egy kiszolgálón történik, mert a kiszolgálót általában rendszeresen karbantartják és tisztítják, hogy csak a szükséges folyamatok legyenek, de ez még mindig lehetséges.
Malware
a Malware (rosszindulatú szoftver) olyan programok, amelyeket rosszindulatú szereplők használnak a rendszer megtámadására vagy a rendszer törvénytelen műveleteinek végrehajtására. Kezdetben a rosszindulatú programok nem használják a magas CPU-erőforrásokat, hogy rejtve maradjanak, de amikor rosszindulatú műveleteket kezdenek végrehajtani, magas CPU-felhasználást okoznak. Szemtanúja voltam ennek az esetnek, amikor egy héttel korábban rosszindulatú programokat indukáltak egy szerveren, és egy nap elkezdte az összes érzékeny adat átvitelét a szerverről a felhőtárolóba. Tehát ez a rosszindulatú program nem használt sok CPU erőforrást, miközben dolgokat állított fel és kritikus adatokat talált. De miután mindent megtalált, amire szüksége volt, az adatátvitel miatt hatalmas növekedés következett be a CPU használatában.
nem optimalizált kód
gyakori, hogy egyedi kód fut a szervereken bizonyos feladatokhoz. Ha az ilyen kódok nincsenek optimalizálva,akkor sok CPU-erőforrást használhatnak. A nem optimalizált ciklusok és a rekurzió a leggyakoribb oka a magas CPU-használatnak a nem optimalizált kód miatt.
gyakori javítások a magas CPU-használathoz
a korábban kezelt gyakori okok alapján nézzünk meg néhány gyakori javítást a magas CPU-használathoz.
Restart
a rendszer újraindítása a legtöbb számítógépes probléma megoldása. Hogyan segítene ez a CPU-használat csökkentésében? Az újraindítás bezárná az összes háttérfolyamatot, amely valamilyen művelet miatt elindulhatott, de már nincs rá szüksége. Ez megszüntetné a zombi folyamatokat vagy más folyamatokat is, amelyek a meghibásodás miatt határozatlan ideig futnak. Tehát a rendszer újraindítása megtisztítaná az összes (legalábbis a legtöbb) felesleges folyamatot, és csökkentené a CPU használatát.
háttérfolyamatok befejezése
előfordulhat, hogy a rendszer újraindítása nem lehetséges, különösen a szerverek esetében. Tehát a felesleges folyamatokat a rendszer újraindítása nélkül kell kezelnie. Ehhez felsorolhatja az összes futó folyamatot, azonosíthatja, hogy mely folyamatok feleslegesek, és befejezheti őket. Így nézne ki a windows Feladatkezelőben:
egy másik javítás az indítási folyamatok kezelése. Vannak olyan folyamatok, amelyek úgy vannak konfigurálva, hogy elinduljanak, amint a rendszer elindul. Ezek közül néhány szükséges, mások pedig nem. Azonosíthatja az ilyen folyamatokat, és letilthatja őket az automatikus indításból. A windows rendszerben megtalálhatja őket a Feladatkezelő “indítás” lapján:
Anti-Malware
a Malware veszélyes. Nem csak a CPU használat, hanem általában is. Egyes rosszindulatú programok magas CPU-használatot okoznak, és az anti-malware használata lehet a legjobb védelem az ilyen rosszindulatú programok ellen. A Modern anti-malware szoftverek okosak és fejlettek. Nem csak azonosítani tudják a rendszerben található rosszindulatú programokat, törölhetik vagy karanténba helyezhetik őket, hanem megakadályozhatják a rosszindulatú programok bejutását a rendszerbe. Tehát az anti-malware használatával nem csak a magas CPU-használatot rögzíti, hanem megakadályozza a rosszindulatú programok miatt a magas CPU-használatot is.
Kódoptimalizálás
ha megállapítja, hogy a magas CPU-használat oka a nem optimalizált kód, akkor optimalizálnia kell. Elemeznie kell a kódot, és meg kell találnia, hogy a kód mely része fogyaszt CPU erőforrásokat, és optimalizálnia kell azt.
CPU Upgrade
ha az összes többi problémát kijavította, mindent optimalizált, és továbbra is magas CPU-használatot lát, akkor ez azt jelenti, hogy a CPU-igénye magas. Ilyen esetekben nincs más lehetőség, mint a CPU erőforrásainak frissítése.
miért érdemes figyelni a szerver CPU használatát?
egy szervernek kétféle feladatot kell elvégeznie magas szinten: a felhasználótól kapott és a rendszeren belüli feladatokat. A felhasználó feladata az, amikor a felhasználó szolgáltatást vagy adatokat kért a kiszolgálótól. Tegyük fel, hogy a YouTube-on keres valamit. A YouTube szerverének le kell töltenie a keresés szempontjából releváns összes videót, és válaszként el kell küldenie a kérésére. Ez az adattranzakció CPU időt használ.
a kiszolgálónak más feladatai is vannak, mint a felhasználók megválaszolása. Magától értetődik, hogy a CPU-t az operációs rendszer és a webes szolgáltatások futtatására használják. De ettől eltekintve a kiszolgálók felhasználhatók néhány szkript futtatására az adatok feldolgozásához. Az egyik gyakori példa az Ansible playbooks futtatása. Ezek a playbookok a felhasználó beavatkozása nélkül is végrehajthatnak feladatokat.
erőforrások és feladatok kezelése
ha a CPU-használat alacsony, akkor pazarolja az erőforrásokat. És ha a CPU-használat nagyon magas, a rendszer lelassul, és elkezdhet lemaradni. Nem akarja, hogy ezek egyike megtörténjen, ezért fontos figyelni a szerver CPU-használatát. Monitoring server CPU használat segít megérteni, hogy mennyi a CPU használják. Ez segít annak eldöntésében, hogy a CPU-t több munkára tudja-e tenni, vagy növeli-e erőforrásait a szükségesség kielégítése érdekében.
optimalizáló programok
Monitoring szerver CPU használat nagyon előnyös volt az erőforrások kezelésére, valamint a feladatok optimalizálására. Vannak olyan esetek, amikor a programok több időt vesznek igénybe, mint ideális esetben. Amikor látja, hogy a CPU-használat még egy rövid, egyszerű program végrehajtása közben is magasabb, akkor tudja, hogy valami nincs rendben a programjával. Gyakran a programok nem hatékonyak a rossz programozási gyakorlat miatt. A CPU-használat figyelése segíthet megtalálni az ilyen példányokat és optimalizálni a kódot. Ezért a CPU-használat figyelése olyan, mintha két legyet ütne egyetlen kővel.
most, hogy végeztünk a CPU-használat “mi” és “miért” – jével, és megtanultuk, milyen hasznos lehet a felügyeleti szerver CPU-használata, térjünk át a “Hogyan” részre.
hogyan Monitor szerver CPU használat
CPU használat nem olyasmi, mint a pénz, hogy mentheti fel egy ideig, majd használja, ha azt szeretné, hogy. A fel nem használt CPU elpazarolt erőforrás. Ezért mindenki azt akarja, hogy a szerver CPU-használata közel 100% legyen. És ahhoz, hogy a legjobb legyen, előfordulhat, hogy meg kell tennie néhány csípést, és folyamatosan frissítenie kell a rendszert. Ahhoz, hogy tudja, mit kell tennie, ismernie kell a szerver CPU-használatának aktuális állapotát.
a szerver CPU használatát egyetlen paranccsal ellenőrizheti. Ha Windows operációs rendszerrel rendelkezik, nyissa meg a parancssort, és futtassa ezt a parancsot:
wmic cpu get loadpercentage
látnia kell a CPU használati százalékát, amint az a képernyőképen látható:
az Ön igényei alapján rendszeresen lekérdezheti a CPU használatát, tárolhatja az adatokat valahol, majd később megnézheti. Vagy streamelheti a CPU használatát egy irányítópultra, hogy bármikor figyelemmel kísérhesse.
a legtöbb operációs rendszer beépített eszközökkel és segédprogramokkal rendelkezik a CPU-használat felügyeletéhez. De ezeknek az eszközöknek vannak korlátai, és általában túl alapvetőek. A jelen korban fejlett képességekre van szükségünk a megfigyelési adatok kezeléséhez és az azokkal kapcsolatos munkához, és ez megköveteli a fejlett megfigyelési eszközök szükségességét. Szinte minden szolgáltatás online. A szerverek pedig fontos szerepet játszanak ezen szolgáltatások elérhetővé tételében. Nem engedheti meg magának, hogy várjon néhány órát, hogy tudja, hogy a szerver nem működik a magas CPU-használat miatt. Folyamatosan figyelemmel kell kísérnie a CPU-használatot és az egyéb kiszolgálói mutatókat.
Monitor folyamatosan
ellenőrzése szerver CPU használat egy ponton az időben nem sok haszna. Szüksége van egy megoldásra a szerver CPU-használatának folyamatos figyelemmel kísérésére. Szinte minden szerver operációs rendszerhez tartozik egy teljesítményfigyelő, ahol bármikor láthatja a CPU használatát. A szerver CPU-használatának figyelésekor tüskéket kell keresnie, mivel a CPU-használat hirtelen változásai azt jelezték, hogy valami szokatlan történt.
a CPU-használat valós idejű nyomon követése mellett ezeket az adatokat is tárolni szeretné, hogy különböző időközönként megjeleníthesse és elemezhesse azokat. Ahhoz, hogy a legtöbbet hozza ki a CPU-használati statisztikákból, rendszeres időközönként (lehetőleg valós időben) naplófájlok generálásával kell gyűjtenie a CPU-használati adatokat, és grafikonok formájában kell megjelenítenie azokat. Most beszéltünk egy mutatóról, de ne felejtsük el, hogy a szerver CPU-használatát nem csak figyelni kell. Ahhoz, hogy mindent, amire szüksége van egy helyen, használja Scalyr.