Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 26139|Vastaus: 0

[Lähde] [Harjoitusta] Vianmääritys Java-sovelluksen ajamisesta Linux-palvelimella ja puhelun katkaisemiseen

[Kopioi linkki]
Julkaistu 9.9.2021 10.52.50 | | | |
Avasin kehitysympäristön verkkosivun aamulla, valikkolistan tiedot eivät latautuneet, ja huomaan, että käyttöliittymässä on todellakin ongelma.

Kirjaudu palvelimelle nähdäksesi Java-sovelluksenOhjaa ulostulotiedostot ja lokitiedostot, havaittiin, että viimeinen lokiaika pysyi 21:15, kuten alla olevassa kuvassa näkyy:



Tarkista järjestelmälokit

8. syyskuuta 21:30:05 centos7-dev04 kernel: Muistin ulkopuolella: Kill process 32452 (java) pisteet 84 tai uhraa lapsi
8. syyskuuta 21:30:05 centos7-dev04 kernel: Tapettu prosessi 32452 (java), UID 0, total-vm:7016412kB, anon-rss:1421400kB, file-rss:0kB, shmem-rss:0kB



Jos epäilet, että sovellus on tuhoutunut Linuxin toimesta, voit myös nopeasti selvittää ongelman käyttämällä seuraavaa komentoa:



Muistin käytön tarkistamiseksi komento on seuraava:



Kuluayläkomento, ja sitten tyyppi mavaimet, jotka on lajiteltu prosessin käyttämän muistin mukaan, kuten alla olevassa kuvassa näkyy:

PID: Prosessin tunniste
KÄYTTÄJÄ: Prosessin omistaja
PR: Prosessin prioriteetti, mitä pienempi prioriteetti, sitä suurempi prioriteetti on toteutettava
Ninice: Arvo
VIRT: Prosessin täyttämä virtuaalimuisti
RES: Fyysinen muisti, jonka prosessi vie
SHR: Prosessissa käytetty jaettu muisti
S: Prosessin tila. S tarkoittaa horrosta, R suoritusta, Z tarkoittaa kuolleisuutta ja N tarkoittaa, että prosessin prioriteettiarvo on negatiivinen
%CPU: Prosessor käyttää prosessorin käyttöastetta, jota prosessi käyttää
%MEM: Fyysisen muistin ja kokonaismuistin prosenttiosuus, jonka prosessi käyttää
TIME+: Prosessoriajan kokonaisaika, jonka prosessi kuluttaa sen alkamisen jälkeen, eli prosessorin käyttöajan kumulatiivinen arvo.
KOMENTO: Prosessin käynnistyskomennon nimi



Syynä siihen, miksi sovellus jumittui, oli se, että palvelimelta loppui muisti, ja Linux tappoi Java-sovelluksen automaattisesti joidenkin sääntöjen mukaan, sillä Java-sovellus vie hyvin suuren määrän muistia.

Voit tarkistaa, mikä Java-sovellus on spesifinen käyttämällä seuraavaa komentoa:



ratkaisu

1. Lisää palvelinmuistia
2. Rajoita muistin käyttöä Java-sovelluksille
3. Siirrä joitakin Java-sovelluksia muille palvelimille





Edellinen:Linux Overlay-tiedostojärjestelmä Dockerissa
Seuraava:Docker-kuvakerroksen analysointiin suositellaan kahta työkalua
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com