1s-ohjelma jäätyy. Kuinka sulkea jumiutunut ohjelma. Pyydä suoritusaika

Eston vaikutus 1C:Enterprise 8:n suorituskykyyn

Gilev-tiimi on työskennellyt suorituskysymysten parissa useiden vuosien ajan ja on ratkaissut menestyksekkäästi mm. lukkojen ja umpikujaan liittyvien odotusten poistamisen.

Alla kuvailemme kokemuksiamme näiden ongelmien ratkaisemisesta.

Tukiongelmien havaitseminen 1C:ssä

Suorituskykyongelmat moninpelitilassa eivät välttämättä liity huonoon koodiin tai huonoon laitteistoon. Ensinnäkin meidän on vastattava kysymykseen - mitä suorituskykyongelmia on olemassa ja mistä ne johtuvat?

On mahdotonta seurata manuaalisesti satojen käyttäjien toimintaa, tarvitset työkalun, joka automatisoi tällaisten tietojen keräämisen.

Työkaluja on monia, mutta melkein kaikilla niistä on yksi erittäin merkittävä haittapuoli - hinta.

Mutta ulospääsy on olemassa - me valitsemme

Tutkimme ongelmaa MS SQL Serverillä, joten tarvitsemme seuraavat palvelut tästä sarjasta:

1. Pitkien pyyntöjen seuranta ja analysointi(lue lisää perustamisesta täältä) - tarvitaan arvioitaessa, onko alaosastolla pitkäaikaista toimintaa.

Itse asiassa heidän läsnäolonsa perusteella voimme sanoa, että suorituskykyongelmia on, ja ongelmat ovat 1C-määrityskoodin riveissä, jotka palvelu luokittelee tärkeyden mukaan. Listan kärjessä olevat ongelmat on ratkaistava ensin. Tällaiset ratkaisut ongelmallisiin linjoihin tuovat suurimman vaikutuksen, ts. on eniten hyötyä ja hyötyä järjestelmän käyttäjille.

(lue lisää täältä) antaa meille mahdollisuuden arvioida, johtuuko pitkien (pitkien) pyyntöjen aika todella lukkojen odottamisesta vai onko siihen muita syitä (ei-optimaalinen koodi, ylikuormitettu laitteisto jne.) Palvelu näyttää syyn pyynnön odotus, eli resurssi, joka on estetty ja kuka esti hänet. Nuo. ymmärrämme esto-ongelmien olemassaolon ja niiden syyt.

3. Keskinäisten lukkojen analyysi 1C:ssä ja MS SQL -palvelimessa(lue lisää asennuksesta täältä) - antaa meille mahdollisuuden arvioida monimutkaisempia tilanteita resurssien odottamisessa, kun useat osallistujat ovat jo onnistuneet "otkamaan" osan resursseista estämällä ja joutuvat nyt odottamaan, pakko odottaa jokaista toinen johtuu siitä, että he eivät voi vapauttaa varattuja resursseja ennen kuin ovat saaneet päätökseen muiden naapureiden estämien resurssien kaappauksen.

Yleensä tällaista vaikeaa tilannetta ei voida ratkaista manuaalisesti. Tällaista palvelua tarvitaan.

4. Laitteen kuormituksen hallinta(lue lisää asennuksesta täältä) auttaa meitä vastaamaan kysymyksiin - kuinka monta käyttäjää järjestelmässä on, onko heillä lukkoja, kuinka monta lukkoa, kestääkö laitteisto kuormitusta?

Palvelut ovat erittäin helppoja perustaa, mutta vaikka sinulla olisi kysyttävää, niitä on!

Yllä lueteltujen työkalujen avulla meillä on objektiivista tietoa järjestelmän suorituskyvystä. Näin voimme arvioida tilanteen oikein ja ehdottaa asianmukaisia ​​toimenpiteitä.

Itse asiassa saamme tietoa kaikista suorituskykyongelmista ja voimme vastata tarkasti kysymyksiin, kuten "kuinka monta ongelmaa järjestelmässä on", "missä ne tarkalleen esiintyvät", "jokainen ongelma millä tarkkuudella esiintyy", "mitkä ongelmat ovat merkittäviä ja jotka ovat vähäisiä". Nuo. näemme kaikki edellytykset, jotka muodostivat ongelman syyn.

Palvelujen avulla voit parantaa merkittävästi ymmärrystäsi ongelmien syntymisolosuhteista ilman, että sinun on pakko syventyä manuaalisesti sellaisiin asioihin kuin tietokannan tallennusrakenne DBMS-tasolla, lukitusmekanismi jne.

Tuloksena saamme kuvan suorituskyvystä, joka mitataan

— pyyntöaika (tietenkin ongelmallisten pyyntöjen järjestys painon mukaan (pyyntöaika tähän pyyntöön tehtyjen puheluiden lukumäärän mukaan);

— lukkojen odotusaika;

Joten lanseerasimme palvelun Analysis of Odds on esto

Ylimmässä taulukossa palvelu näyttää luettelon eston "uhreista", ottaen huomioon "odotusten vakavuuden" kokonaispainon.

Alemmassa taulukossa jokaista uhria kohden huomioidaan yksi tai useampi osallistuja "taistelussa erittäin kilpailukykyisen resurssin puolesta", jossa estämisen odotus nousi.

Avaa alemmassa taulukossa jonkin "aikakatkaisu"-tapahtuman tiedot. Kuten esimerkiksi kuvassa.

Korostamalla "syyllisen" riviä näemme, että pullonkaula oli _Reference64-taulukko, ja klusteroidussa indeksissä ilmeni ongelma "tuntemattoman" alueen kanssa. Ehkä tulevaisuudessa nimetään se uudelleen "taulukoksi", koska itse asiassa tämä käyttäytyminen on tyypillistä estoalueen lisäämiselle/laajentamiselle.

Rivi "uhri" näyttää, mikä koodi oli tilanteen panttivanki eikä voinut estää kaikkea, vain rivi "avaimella" (vähimmäistietojen estoalue tässä taulukossa).

Tämä ongelma voidaan ratkaista "oikein" ja "helposti".

On vaikeampaa seurata oikeaa polkua - itse asiassa sinun on kirjoitettava koodi uudelleen, mikä minimoi tällaisten tilanteiden todennäköisyyden.

Yksi tekijöistä, niin oudolta kuin se kuulostaakin, on keston lyhentyminen.

Voit lyhentää tapahtuman kestoa:

1. algoritmin uudelleenkirjoittaminen

2. kirjoittamalla kysely uudelleen (nopeampi kysely vähentää todennäköisyyttä lukkiutua monimutkaisiin tapahtumiin taulukoissa, jotka joskus eivät edes ole kyselyssä!)

2.1 puuttuvan peittoindeksin lisääminen (joskus indeksi ei vain nopeutta kyselyä, vaan myös pienentää tietojen lukualuetta, mikä vähentää eston todennäköisyyttä)

3. tapahtumassa käsiteltävän datan määrän vähentäminen (lineaarisen nopeuden lisäksi muistamme myös lukon eskaloinnin)

4. laitteiden tuottavuuden lisääminen kussakin virtauksessa

Pyydä suoritusaika

1) eri käyttäjät voivat työskennellä rinnakkain erilaisten tietojen kanssa
2) eri käyttäjien on työskenneltävä tiukasti peräkkäin samoilla tiedoilla

Lukkojen käyttöä on kuitenkin mahdollista optimoida, jolloin kokonais odotusaika lyhenee.

Kuinka esto toimii (sinun ei tarvitse lukea tätä kappaletta)

Erityinen SQL Server -moduuli, Lock Manager, käsittelee lukot. Hänen tehtäviinsä kuuluvat:

  • lukkojen luominen ja asentaminen;
  • lukituksen avaaminen;
  • eskaloituminen;
  • lukon yhteensopivuuden määrittäminen;
  • lukkiutumien poistaminen ja paljon muuta.

Kun käyttäjä pyytää päivittämään tai lukemaan tietoja, DBMS-tapahtumanhallinta siirtää ohjauksen DBMS-lukkojen hallintaan määrittääkseen, onko pyydetyt resurssit lukittu, ja jos on, onko pyydetty lukko yhteensopiva nykyisen kanssa. Jos lukot eivät ole yhteensopivia, nykyisen tapahtuman suorittamista viivästetään, kunnes tiedot avataan. Kun tiedot ovat saatavilla, lukkojen hallintaohjelma hankkii pyydetyn lukon ja palauttaa hallinnan tapahtumien hallintaan.

Suurin syy suorituskykyä heikentävälle on estäminen

Lukitus odotukset ovat suuri suorituskykyongelma moninpelitilassa. Ja tämä on ymmärrettävää, koska ne lisäävät toimintojen odotusaikaa ja siten vasteaikaa. Voidaanko sanoa, että lukkojen odottaminen ei ole oikein ja virhe monen käyttäjän järjestelmässä? Tätä ei voida sanoa, koska resurssien estomekanismi itsessään varmistaa tietojen eheyden. Lukitusmekanismin avulla samanaikaiset tiedot kirjoitetaan SEURANTAISESTI.

Ero välttämättömien ja tarpeettomien lukkojen välillä

Kun käyttäjä ilmoittaa lukossa odottavasta virheestä, niin hänen näkökulmastaan ​​tämä on aina virhe, koska se esimerkiksi häiritsee hänen työtä - työn suorittamiseen kuluva aika pitenee.

Kokemus ehdottaa yksinkertaista sääntöä: jos yli puolet pyynnön suoritusajasta todella odottaa estettyä resurssia, sinun on katsottava: ehkä osa lukituksesta voidaan optimoida ja resurssien estoaikaa voidaan lyhentää.

Tässä, kuin sattumalta, esitän määritelmän:

Odotetaan lohkoa on tilanne, jossa kaksi käyttäjää yrittää kaapata samaa dataa samanaikaisesti. Tässä tapauksessa yksi näistä käyttäjistä estetään, eli sen on odotettava, kunnes ensimmäisen käyttäjän tapahtuma on valmis.

Tapahtuma on joukko laskelmia ja operaatioita, joissa data (ilmein esimerkki on tositteen kirjaaminen) suoritetaan yhtenä kokonaisuutena. Jos mitään tapahtumatoimintoa ei suoriteta, koko tapahtuma peruuntuu.

Usein usean käyttäjän tietokantojen käyttäjät voivat siis valittaa, että näiden lukkojen takia on mahdotonta toimia, kun taas koodissa voi itse asiassa olla lukkoja, joita ei tarvita tässä paikassa (redundantti).
Ja myös määrityskoodissa niitä ei välttämättä ole, voit lukea niistä esimerkiksi täältä http://kb.1c.ru/articleView.jsp?id=30 (artikkeli on osa kirjasta; kirjoittanut P.S. Belousov, A.V.Ostroverh "1C:Enterprise: 8.0 - 8.1."). Tarjoan yksinkertaistetun tavan selittää lukkojen ero yksinkertaisella esimerkillä:

Luo 1C:Enterprise-tilassa kaksi identtistä laskua, joilla on sama tavarakoostumus. Muista kuitenkin ilmoittaa eri vastaanottavat varastot.
Kirjauskäsittelykoodiin on lisättävä rivi, jossa on näytöllä näkyvä viesti (tai muu koodi, joka voi viivästyttää kirjauskäsittelyn suorittamista 21 sekuntia (eston aikakatkaisu tapahtuu 20 sekunnin kuluttua, jos parametrit ovat oletusarvoisesti)) .
Lähetä kaksi asiakirjaa.
Jos aikakatkaisu tapahtuu ja tavarat saapuvat loogisesti eri varastoihin, sovelluksessa on ylimääräisiä lukituksia. Liikelogiikka (harkitaan tervettä järkeä) tässä ei pitäisi olla esteitä.
Jos nyt tehdään identtiset varastot näissä kahdessa laskussa. Tällöin samanaikaisen suoritusyrityksen seurauksena luotu esto johtaa TARVITTAESSA estoon ja tämä on HYVÄ!

Nuo. Kun lasku tekee muutoksia varastosaldoihin, toisen on odotettava.

Tietenkin tämä yksinkertainen esimerkki jättää monia kysymyksiä. Entä esimerkiksi jos asiakirjat ovat yhdeltä toimittajalta ja sen velka "liikkuu". Ja jos ei liiku vain varaston saldot, vaan useita rekistereitä ja erityyppisiä asiakirjoja.
Mutta tärkein kysymys on: MILLÄ LIIKETOIMINTALOGIIKKA EI TULE ESTÄÄ. Kuka määrää tämän liikelogiikan ja missä eston yhteydessä? Mutta puhutaan kaikesta järjestyksessä.

Liialliset lukot ovat tarpeettomia lukkoja, joita ei tarvita tietojen eheyden varmistamisen kannalta ja samalla heikentävät järjestelmän kokonaissuorituskykyä, mikä lisää kokonaiskatkosaikaa - lukkojen odottamista.
Tarpeellinen lukitus tapahtuu, kun kaksi käyttäjää hankkii samat resurssit (tietoobjektit). Jos käyttäjät työskentelevät ei-päällekkäisten resurssien kanssa, mutta odottavat lukitusta, lukko katsotaan tarpeettomaksi.

Ymmärrettävimmät kriteerit redundanssin lukitsemiselle ovat:

1. Keskinäiset lukot;

2. Estotaso (alue) on tarpeettoman korkea (erityistapauksena eskalaation nostamisesta, ns. eskalaatiosta);

3. Lukitusaika on pidempi kuin lukitusobjektin "todellisen" käytön aika.

Saatuani tietoa ongelmien ryhmittelystä 1C:Enterprise-metadatan yhteydessä, suosittelen kiinnittämään huomiota ensinnäkin seuraaviin objekteihin:

  • Vakiot
  • Jakso
  • Kirjanpitorekisterit
  • Keräysrekisterit
  • Tietorekisterit
  • Laskentarekisterit

1) Viime aikoihin asti oli tunnettu suositus olla kirjoittamatta mitään vakioihin. Äärimmäisissä tapauksissa tee tämä yhden käyttäjän alta ja muista sitten, että kun käyttäjä "kirjoittaa" yhden vakion, ei vain tämän, vaan myös minkä tahansa muun vakion, muut käyttäjät "odottavat". Siksi on erityisen vaarallista käyttää vakioita tapahtumien käsittelyssä. Kaikkien vakioiden arvot tallennetaan V yksi resurssi.

Kuvassa näkyy SCP-kokoonpanovakioiden fyysinen sijoittelu MS SQL Server 2005 -tietokantataulukossa.

Tämä tarkoittaa, että yhden vakion lukitseminen lukitsee kaikki vakiot. DBMS asettaa lukon taulukon KOKO yhdelle RIVIlle, ts. kaikille vakioille.

Alustan uusimmissa julkaisuissa vakioiden tallennusta on kuitenkin muutettu. Nyt jokainen vakio on erillinen taulukko. Älä kuitenkaan innostu liikaa. Jos luot tuhansia pöytiä, voit saada lukon pääpohjaan.

Huomio, jos kokoonpanosi on ollut olemassa jo pitkään, voit muuttaa tallennusmuotoa "muokkamalla" sen konfiguraattorin testaamisessa ja korjaamisessa.

2) Lopeta Sequence-metatieto-objektin käyttö. Ainakin liikkeistä kirurgisten toimenpiteiden aikana, suoritettava ei-leikkauksen aikana (lisätoimenpiteet). Katso, kuinka se on toteutettu SCP:n uusimmissa versioissa.

3) Jos järjestelmä suorittaa online-tallentamisen kirjanpitorekisteriin monikäyttäjätilassa, on suositeltavaa:

  • ota käyttöön summaerotustila tälle rekisterille;
  • Älä käytä rekisteritasapainon hallintaa käyttötöiden aikana.

4) Keräysrekisterissä tapauksissa, joissa ei ole tarvetta saada ”operatiivisia” tietoja, voit ottaa käyttöön summien jaon, mikä lisää tiedonkeruun rinnakkaisuutta ja nopeuttaa työtä yleensä. Seuraa mittauksia huolellisesti, jotta "jäämät" saadaan mahdollisimman tarkasti mittauksissa.

5) Voit päästä eroon joistakin alustan luomista ylimääräisistä lukoista vain . Konfiguraatioiden automaattisessa toimintatilassa alusta "ottaa haltuunsa" estoresurssit. Automaattitilan huolettoman käytön hinta on mahdollinen: lukot indeksialueiden rajoilla, lukot tyhjään pöytään ja lukkojen eskalaatio.

Nämä lukot katoavat kokonaan tapahtuman tiedoista. Toisin sanoen tämä lukitus ei ole mahdollista ohjatussa tilassa.

Olen jo sanonut "hallitut lukot" ja "hallittu tila" useita kertoja. Sinun on ymmärrettävä, että lukkoja on kahdenlaisia:
DBMS-lukot asennetaan automaattisesti DBMS-tasolla kyselyitä suoritettaessa.
1C: Yrityslukot asennetaan automaattisesti, kun tietoja kirjoitetaan (muokataan) ja aina manuaalisesti, kun tietoja luetaan.

Huolellinen lukija sanoo, että 1C jakaantuu myös objekti- ja ei-objektilukkoihin, mutta nyt emme koske tähän lähestymistapaan.

Mutta huomaan, että se asettaa enemmän vaatimuksia 1C-asiantuntijan pätevyydelle ja kokemukselle.

6) Puuttuvat indeksit (etenkin monimutkaisissa kyselyissä) ovat yleensä pääasiallinen tekijä tarpeettoman korkeamman lukituksen esiintymisessä. Nuo. paradoksi, toisaalta sanoin, että ennen kyselyn optimointia sanoin, että sinun on ensin katsottava lukot, mutta nyt sanon, että lukkojen optimoimiseksi sinun on optimoitava kysely. Minulla on tekosyy, määritysten vaihtaminen hallittuihin lukoihin vähentää ylimääräisiä lukoja jopa epäoptimaalisessa kyselyssä. Tämä johtuu tapahtuman eristystason laskusta, mikä puolestaan ​​antaa DBMS-lukkojen hallintaohjelmalle vähemmän syitä asettaa liiallinen lukitus.

Tärkeimmät syyt liialliseen lukitsemiseen (yhteenveto yllä olevasta)

- suunnitteluvirheet
(rinnakkaisasteen määrää se "kuinka hienoksi data on pilkottu": rinnakkainen työskentely kahdella taulukon rivillä on mahdollista, yhden rivin työstö tapahtuu vain peräkkäin)
(virheet metatietojen käytössä: vakioiden, sekvenssien tallentaminen, operatiivinen laskenta kirjanpitorekistereihin)
— liiallinen esto automaattitilan viasta (alusta-DBMS-yhdistelmä).
- ei-optimaalinen kyselyn suorituskyky
(esimerkiksi taulukkoa skannattaessa koko taulukko lukitaan - redundantti alue
ja estoaika pitenee - liikaa aikaa, ylimääräinen estomäärä lisää eskaloitumisen todennäköisyyttä)

Kuten näette, lukkojen optimointitehtävä on "monipuolinen". Sinun on kerrottava mahdollisimman selkeästi ongelman aiheuttanut "konteksti". Millä resursseilla, millä koodilla. Kuinka paljon tämä esto on todella tarpeellista vai onko se tarpeetonta?

Lapsella ja aikuisella on kurkkukipu. Kun lääkäri kysyy "Mikä on vialla?", lapsi katsoo lääkäriin ja huutaa (luottakaa minuun, tiedän), kun taas aikuinen huomauttaa taudin oireista. Nämä ilmeiset erot ohjaavat lääkärin erilaisiin menetelmiin ongelman tunnistamiseksi.
Lapsen kanssa lääkärin on suoritettava paljon testaa, kerää dataa, yhdistä se, suorita analyyseja ja vasta sitten suosituksia. Aikuisen kanssa hän kysyy useita kysymyksiä ja koska lähtötietojen määrä on pieni, analyysiin ja ongelman määrittämiseen kuluu huomattavasti vähemmän aikaa. Tämän seurauksena suositukset annetaan paljon aikaisemmin.

Käytä palveluitamme ja sinulla on enemmän mahdollisuuksia analysoida ongelmaa ja löytää ratkaisu ilmaiseksi!


Tämä artikkeli auttaa sinua pääsemään eroon jäädytysohjelmista. Siinä kuvaan menetelmän, joka auttaa lopettaa jäädytetty ohjelma Oikein. Loppujen lopuksi ihmiset käyttävät usein ohjelman loppuun saattamiseksi tuntemiaan menetelmiä - tämä on kuumeisia näppäinpainalluksia alt + f4 tai vain nappia poistu ja useimmissa tapauksissa tämä ei tuota tuloksia. Sitten sinun on painettava ainoaa painiketta, joka varmasti auttaa - tämä on järjestelmäyksikön tai kannettavan tietokoneen painike sammuttaaksesi tai käynnistääksesi uudelleen. Tässä tapauksessa vaarana on, että menetät tietoja paitsi jäätyneestä ohjelmasta myös muista avoinna olevista.

Ohjelman jumiutumiseen voi olla useita syitä:

  • Jos sinulla on 64-bittinen järjestelmä () ja käytät 32-bittisille järjestelmille suunniteltua ohjelmaa, ohjelma ei yksinkertaisesti käynnisty, pahimmillaan se jäätyy. Vaikka tässä on vivahde - tapahtuu, että tällaiset ohjelmat toimivat, mutta joko väärin tai jäätyvät ajan myötä.
  • Sinulla on liian vähän RAM-muistia ajamiseen.
  • Käynnissä on liian monta ohjelmaa ja prosesseja, jotka jo lataavat järjestelmää.
  • Sinulla on taustalla käynnissä ohjelmia, jotka vievät paljon järjestelmäresursseja
  • Virukset
  • Tekniset ongelmat (prosessorin lämpötahna on kuivunut, paljon pölyä on tukossa, "heikko" laitteisto jne.)

    Ja nyt olet käynnistänyt ohjelman ja odotat sen käynnistymistä. Ja hän pysähtyi latausprosessiin ja oli "hiljainen". On hyvä, jos taustamusiikki soi (lähinnä peleihin), se voi antaa vihjeen silmukan muodossa. Voit tietysti odottaa muutaman minuutin (enintään 5) odottaen "ihmettä" ja ohjelman pysähtymistä, mutta jos et halua odottaa ja tiedät varmasti, että ohjelma on jäätynyt, sitten pitää aloittaa jäädytettyjen ohjelmien sulkeminen.

    Jotta lopettaa ohjelman, joka ei vastaa(tätä kutsutaan myös jäädyttämiseksi) sinun on soitettava Tehtävienhallintaan. Voit toki käyttää ctrl+siirtää+poistu, mutta suosittelen käyttämään tunnetumpaa ja tehokkaampaa pikanäppäintä ctrl+alt+del.

    Windows 7:ssä, kun painat näitä näppäimiä, viiden vaihtoehdon ikkuna avautuu, josta sinun on valittava viimeinen.


    Välilehdellä Sovellukset Etsimme jumiutunutta ohjelmaa (yleensä sen tila on Ei vastaa), napsauta sitä hiiren kakkospainikkeella ja valitse valikosta Siirry prosessiin:


    Välilehti avautuu Prosessit erityisellä ripustusprosessilla. Täällä vain klikataan Lopeta prosessi


    ja hyväksyt järjestelmävaroituksen

    Huomautus:
    Voit tietysti valita Task Manager -valikosta ei Siirry prosessiin, A Peruuta tehtävä ja tämä on "hellävaraisempi" menetelmä, mutta joskus se ei auta. Ja olen jotenkin tottunut ratkaisemaan tällaiset ongelmat tehokkaasti.

    Näin voit "poistaa" jäätyneen ohjelman käynnistämättä tietokonetta uudelleen ja pitää muut käynnissä olevat ohjelmat ennallaan.

    Sitä tapahtuu Explorer ei vastaa. Tällä tarkoitan, että esimerkiksi avasit kansion tietokoneellasi tai jopa vain Oma tietokone ja järjestelmä jumiutui (se alkaa ajatella pitkään). Tämä on tapahtunut minulle itselleni.
    Tässä tapauksessa Task Manager ja yllä kuvattu menetelmä voivat myös auttaa.

    Mutta täällä tärkeää muistaa Yksi yksityiskohta: Explorer-prosessin nimi on explorer.exe, ja kun se päättyy, kaikki tietokoneesi kansiot suljetaan. Mutta se on puolet vaivasta. Kun olet "taponut" tutkijan, myös ohjauspaneeli, jossa on Käynnistä-valikko, katoaa. Siksi Älä sulje Tehtävienhallintaa heti! Jos haluat palauttaa puuttuvan (avoimia kansioita lukuun ottamatta), napsauta Tiedosto -> Suorita


    ja kirjoita riville explorer.exe


    Tietysti napsauta OK ja kaikki palaa paikoilleen.

    Tässä on yksinkertainen tapa korjata ongelma Mitä tehdä, jos ohjelma ei vastaa tai jumiutuu.

  • Kuinka sulkea ohjelma, jos se jumiutuu ja lakkaa vastaamasta. Miksi ohjelmat jäätyvät? Kuka on syyllinen ja mitä tehdä? Tässä artikkelissa yritämme analysoida tämän ongelman tärkeimpiä syitä ja ratkaisuja.

    Avoin ohjelma on lakannut vastaamasta toimintoihisi, kohdistin on jäätynyt tai muuttunut tiimalasiksi, itse ohjelmaikkunassa näkyy viesti "Ei vastaa", napsautatko kaikkea, oletko hermostunut ja et tiedä mitä tehdä?

    Ensinnäkin rauhoitu ja lue artikkeli loppuun. Ehdottomasti jokainen on joutunut tähän tilanteeseen, kaikki ohjelmat ovat ihmisten kirjoittamia, joten ne eivät ole ihanteellisia. Tärkein asia, joka meidän on ymmärrettävä, on kuinka toimia oikein tällaisissa tapauksissa ja miksi näin tapahtuu.

    Ensin sinun on selvitettävä, onko ohjelma todella jumiutunut ja havaittuko kaikki yllä kuvatut oireet vai käynnistitkö vain resurssiintensiivisen sovelluksen tai ohjelman, josta järjestelmäsi ei jumiudu, vaan yksinkertaisesti hidastuu.

    Mitä ei tehdä, jos ohjelma jumiutuu

    Katsotaanpa yleisimpiä virheitä, joita monet aloittelevat käyttäjät tekevät, tuhlaten siten aikaansa.

    - Huutaminen, näppäimistön lyöminen (se ei todellakaan ole hänen vikansa).
    - Sinun ei tarvitse yrittää ajaa samaa ohjelmaa uudelleen tai varsinkaan muita ohjelmia - tämä vain pahentaa tilannetta.
    — Irrota virta, sammuta se, käynnistä uudelleen (tämä on viimeinen keino).

    Mitä tehdä, jos ohjelma jumiutuu

    1. Ennen kuin siirryt radikaalimpiin menetelmiin, yritä sulkea se tehtäväpalkissa napsauttamalla jäädytettyä ohjelmaa hiiren kakkospainikkeella ja valitsemalla sopiva kohde.
    2. Jos se ei auta, siirry hyväksi havaittuun menetelmään, jotta meidän on käynnistettävä tehtävähallinta. Voit soittaa tehtävänhallintaan näppäinyhdistelmällä Ctrl + Shift + Esc (Windows 7) Ctrl + Alt + Del (Windows XP).

    Olemme kiinnostuneita "Sovellukset"-välilehdestä, jotka näkyvät tässä. Etsimme jäädytettyä sovellusta (esimerkissäni se on ohjelma) ja napsauta → Lopeta tehtävä. Yleensä tämä riittää!! Ei auttanut → kohta 3.
    3. Mitä tehdä, jos ohjelma jumiutuu edelleen? Siirry seuraavaan välilehteen → "Prosessit". Tosiasia on, että kaikkiin tietokoneellasi käyttämiin ohjelmiin liittyy jokin prosessi tai prosesseja. Ja tällä hetkellä jäädytetyllä ohjelmalla on myös oma prosessinsa, jonka saat selville napsauttamalla hiiren oikealla painikkeella ohjelman pikakuvaketta ja valitsemalla → "Ominaisuudet". Esimerkissäni tämä on prosessi → VideoConverter.exe

    Valitsemalla Prosessit-välilehden → etsi prosessisi (minun tapauksessani se on "VideoConverter.exe") ja napsauta → "lopeta prosessi" tai varmuuden vuoksi → napsauta hiiren kakkospainikkeella prosessia → "Lopeta prosessipuu".

    Näin voit ratkaista ongelman jäädytetyllä ohjelmalla käyttämällä Windowsin tavallisia työkaluja. Voit myös sulkea jäädytetyn ohjelman käyttämällä kolmannen osapuolen ohjelmia, esimerkiksi ohjelmaa

    Jos jokin ohjelma on lakannut vastaamasta, se ei vastaa hiirelle tai näppäimistölle, ja ehkä jopa viesti "ohjelma ei vastaa", sitä kutsutaan jumiutuneeksi ohjelmaksi.

    Joskus käy niin, että jäätynyt ohjelma ei häiritse työtäsi, mutta joskus päinvastoin, yhden jäätyneen ohjelman takia koko käyttöjärjestelmän työ voi hidastua, joka tapauksessa ongelma on ratkaistava, jotain on tehtävä. tehty.

    Mitä ei saa tehdä:

    1) Irrota pistoke pistorasiasta- Tämä on suurin virhe, jonka voit tehdä tässä tilanteessa. Äkillinen sähkökatkos on erittäin stressaava tietokoneellesi. Tämä kohta sisältää myös tietokoneen sammuttamisen järjestelmäyksikön käynnistyspainikkeella ja sen sammuttamisen painamalla virtalähdekytkintä. Näiden menetelmien ydin on sama, lopetat sähkön toimituksen.

    2) Paina nollauspainiketta– Tämä painike sijaitsee järjestelmäyksikön etuosassa ja pakottaa uudelleenkäynnistyksen. Sitä tulisi painaa vain kaikkein toivottomimmissa tilanteissa, kun muut menetelmät eivät auta.

    3) Tee tarpeettomia liikkeitä– jos käyttöjärjestelmäsi on alkanut hidastua ohjelman jäätymisen vuoksi, kaikki turhat toimet vain pahentavat tilannetta. Tarpeettomilla toimilla tarkoitan jumiutuneen ohjelman uudelleenkäynnistämistä (älä missään tapauksessa saa tehdä niin), muiden ohjelmien käynnistämistä, käynnistysvalikon tai muun valikon avaamista. Jos tilanne on erityisen kriittinen, sinun ei pitäisi vain liikuttaa hiirtä, koska osoitin voi jäätyä ja ongelman ratkaiseminen on vaikeampaa.

    4) Odota hyvin kauan– yleensä riittää, että odotat viisi minuuttia, jotta ymmärrät, että ohjelma on jähmettynyt, anna sille 15–20 minuuttia.

    5) Ole hermostunut– järjestelmäyksikön potkiminen tai näppäimistön lyöminen pöytään ei auta asiaa. Kirjoitin nimenomaan tämän kohdan, koska tuntemattomista syistä ihmiset tekevät joskus näin (luultavasti menneisyydestämme johtuen, kun putkitelevisio ei halunnut toimia, he yleensä lyövät sitä kädellä ja tämä auttoi). Tietokone ei ole putkitelevisio, joten älä lyö sitä.

    Mitä pitäisi tehdä

    Sinun on yritettävä sulkea ohjelma, jos oikeassa yläkulmassa olevan ristin napsauttaminen ja alt + f4 -yhdistelmä eivät auta, sinun on tehtävä seuraava:

    Avaa tehtävähallinta painamalla näppäinyhdistelmää:

    Windows xp:lle "Ctrl + Alt + Del".

    Windows 7:lle "Ctrl + Shift + Esc".

    Siirry tehtävänhallinnassa "Sovellukset" -välilehteen, jos ohjelmasi näkyy tehtäväosiossa, valitse se ja napsauta "Lopeta tehtävä" -painiketta. Jos reaktiota ei tule välittömästi, sinun ei tarvitse painaa tätä painiketta uudelleen, sinun on vain odotettava vähän. Hetken kuluttua näkyviin tulee ikkuna, joka varoittaa, että tiedot voivat kadota, sinun on napsautettava "Valmis nyt" -painiketta. Katso esimerkiksi kuvakaappaus (suin työohjelman valmiiksi, joten tekstisi on erilainen, mutta periaate on sama).

    Jos et voi lopettaa ohjelmaa tällä tavalla, napsauta jäädytettyä ohjelmaa hiiren kakkospainikkeella ja valitse avattavasta valikosta "Siirry prosessiin". Sinut viedään automaattisesti "Prosessit" -välilehteen, vaadittu prosessi on jo korostettuna, sinun tarvitsee vain napsauttaa "Lopeta prosessi" -painiketta.

    Jos jäädytettyä ohjelmaa ei näy "Sovellukset" -välilehdessä, sinun on siirryttävä "Prosessit" -välilehteen, etsittävä jäädytetyn ohjelman prosessi ja lopetettava se. Helpoin tapa etsiä prosessia on myös prosessorin kuormituksen mukaan. Tämä prosenttiosuus on yleensä suuri.

    IT-asiantuntijoiden hyvin tuntemalla käyttäjän valituksella "1C hangs" on monia syitä. Oikean "diagnoosin" tekeminen - ongelman tunnistaminen ja analysointi - vaatii sen toistamista, koska ongelma, jota ei voida toistaa, on yleensä lähes mahdotonta ratkaista. Ymmärtettyämme 1C-jäätymisen oireet otamme ensimmäisen askeleen kohti tehokkaasti toimivaa järjestelmää.

    Erittäin pitkä järjestelmän käynnistys

    Raskaan kokoonpanon pitkä käynnistäminen yhden käyttäjän alaisuudessa ensimmäistä kertaa tietoturvan lisäämisen jälkeen tietokoneen tietokantaluetteloon on normaali ilmiö. Ensimmäisen käynnistyksen aikana kokoonpano tallennetaan välimuistiin. Toisen ja sitä seuraavien ajojen tulisi olla nopeampia.

    Järjestelmän pitkäaikainen käynnistys voi viitata ongelmiin kokoonpanon arkkitehtonisessa toteutuksessa. Alusta lukee suurimman osan määrityksistä vain, kun haluttua metatietoobjektia käytetään ensimmäisen kerran. Pitkä käynnistys osoittaa, että on todennäköistä, että käytetään suurta määrää metatieto-objekteja (useita kutsuja useisiin yleisiin moduuleihin, käsittelyyn jne.).

    On syytä ottaa huomioon, että kun minkä tahansa moduulin tekstiä tarkastellaan ensimmäisen kerran, se käännetään. Tämä prosessi vie myös aikaa, mikä on erityisen havaittavissa, jos moduuleja on useita. Siten hitaan käynnistyksen ongelma ratkaistaan ​​muokkaamalla (optimoimalla) konfiguraatiota, jonka tarkoituksena on estää kaikkien valinnaisten algoritmien suoritus, jotka suoritetaan järjestelmän käynnistyksen yhteydessä.

    On mahdollista, että kokoonpano yrittää lukea tietoja Internetistä käynnistyessään. Tämä myös pidentää järjestelmän käynnistysaikaa.

    Erittäin pitkä lomakkeiden avaus

    Lomakkeiden pitkä avaaminen voi johtua seuraavista syistä:

    1. Suuri määrä lomakkeen säätimiä - aikaa käytetään lomakkeen luomiseen ja lomakeelementtien järjestelyn yhdistämiseen;
    2. Algoritmien suorittaminen lomakkeen alustuksen aikana. On mahdollista, että lomaketta luotaessa jotkin ehdot tarkistetaan ja/tai niihin liittyvät objektit luetaan tietokannasta.

    Ensimmäinen ongelma "käsitellään" yksinkertaistamalla lomaketta. Esimerkiksi jotkin säätimet voidaan sijoittaa erillisiin muotoihin, mikä saattaa olla jopa kätevämpää käyttäjälle. Jos lomakkeessa on esimerkiksi osoitekenttä "Kaupunki", "Katu", "Talo" jne., niin osoite on parempi muokata erillisellä lomakkeella.

    Toinen ongelma ratkaistaan ​​analysoimalla lomakkeen luomisen ja avaamisen yhteydessä suoritetut toiminnot ja optimoimalla nämä algoritmit. Ehkä jotkut algoritmeista ovat jo vanhentuneita, kun taas toisia voidaan yksinkertaistaa ja optimoida esimerkiksi poistamalla tai minimoimalla pääsy tietokannassa oleviin tietoihin.

    Vuorovaikutteisena toimintona harkitse käyttäjää, joka yrittää valita arvon lomakeelementistä. Vastauksena siihen, järjestelmä "ajattelee jotain". Tämä voi tapahtua seuraavista syistä:

    1. Tässä toiminnossa suoritettavat algoritmit tutkivat tai laskevat liittyvää dataa, joka vaikuttaa arvon valintatilaan;
    2. Tämän arvon valitsemiseksi avautuva valintalomake lukee kaikki tietokannan objektit alustuksen yhteydessä.

    Ensimmäisen ongelman ratkaisemiseksi sinun tulee käyttää "Suorituskyvyn mittaamista", löytää resurssiintensiivisiä algoritmeja ja optimoida ne.


    Toinen ongelma voidaan usein ratkaista yksinkertaisesti analysoimalla valintalomakkeen toteutusta. Varmista esimerkiksi, että dynaamisen luettelon ominaisuus "Dynaaminen tietojen lukeminen" on asetettu, että "Päätaulukko" -ominaisuus on asetettu oikein ja että luettelon toteutus ei käytä ilmeisen resurssiintensiivisiä algoritmeja.

    On myös tilanteita, joissa valintalomaketta avattaessa luetaan tietokannasta joitakin asiaan liittyviä tietoja (esimerkiksi "Tuote" -valintalomaketta avattaessa luetaan varastojen tavarasaldot. Yleensä tämä ei ole paras ratkaisu. Asiaan liittyvät tiedot on parempi lukea asynkronisesti lomakkeen avaamisen jälkeen. Tämä aiheuttaa vähemmän epämukavuutta käyttäjälle, koska Kun lomake on näytetty, käyttäjä viettää jonkin aikaa lomakkeen omaksumiseen, ja tämä aika voidaan käyttää siihen liittyvien tietojen lataamiseen.

    Erittäin pitkä vastaus päivityksiin

    Yksi triviaalisista oireista voi kuitenkin kertoa joistakin järjestelmäongelmista: 1C-päivitys jäätyy varmuuskopiointia käynnistettäessä. Tämä tapahtuu pääasiassa Internetin kautta päivitettäessä ja todennäköisesti osoittaa, että kokoonpanoa ei ole päivitetty pitkään aikaan ja julkaisut, jotka rullaavat peräkkäin, aiheuttivat jäätymisen. Voit estää tällaisen ongelman asentamalla päivitykset ajoissa, ja jos kohtaat sen, voit yksinkertaisesti keskeyttää varmuuskopiointiprosessin. Kun konfiguraattori on käynnistetty, tietokanta käynnistyy normaalitilassa tehdyillä muutoksilla.

    On huomattava, että 1C 8.3 jäätyy useimmiten päivitysten aikana myös siksi, että se vaatii enemmän resursseja vaativaa laitteistoa kuin alustan aiemmat versiot. On syytä kiinnittää huomiota RAM-muistin määrään ja tarvittaessa lisätä sitä - tämän periaatteessa pitäisi auttaa ratkaisemaan ongelma "1C jäätyy konfiguraatiota päivitettäessä."

    Pitkä prosessi esineiden tallentamiseen/asiakirjojen suorittamiseen

    Tässä tapauksessa "valokuvaukseen perustuva hoito" on käytännössä poissuljettu, koska syyt voivat olla hyvin erilaisia, kohteen suuresta tietomäärästä lukkojen takana odottamiseen.

    Mutta myös TÄSSÄ tapauksessa on mahdollista hahmotella analyysin suunta.

    Kellonajasta tai käyttäjien määrästä johtuvien merkittävien muutosten puuttuminen tallennusajassa (karkeana, subjektiivisena arviona) viittaa ongelmaan kohteen koodissa tai datamäärässä. Analyysissä on järkevää käyttää "Performance Measurement" -työkalua.

    Dramaattinen muutos tallennusajassa epäselvien riippuvuuksien kanssa edellyttää tilastollisen analyysin suorittamista ongelman esiintymisestä, ts. suorituskykyanalyysi. Helpoin tapa on analysoida lokikirjan käyttöä. Lisäetuna tässä on, että 1C:Enterprise 8 -alusta tukee lokitietojen tallentamista tiedostoon SQLite-muodossa. Tämän avulla voit käyttää SQL-kyselyitä lokitietojen analysointiin. Lokitiedoista on täysin mahdollista saada objektin kirjoitusaika, kun otetaan huomioon, että jokainen objektin kirjoitus suoritetaan tapahtumassa ja jokaisella tapahtumalla on oma tunnistenumeronsa.


    Jos tilastollisen analyysin tulos osoitti, että objektin tallennusaika riippuu vuorokaudenajasta, ei käyttäjien lukumäärästä, on tarpeen analysoida 1C-palvelimen ja tietokantapalvelimen kuormitus. On mahdollista, että palvelin suorittaa rutiiniprosesseja, jotka vievät tarpeettomia resursseja.

    Jos objektien kirjoittamiseen kuluva aika riippuu käyttäjien määrästä, ongelma on todennäköisimmin koodissa (mahdollisesti odottamassa lukkoja) tai laitteiston suorituskyvyssä. Niiden ratkaisemiseksi sinun tulee houkutella asiantuntija, jolla on pätevyys "1C: Teknologisten asioiden asiantuntija", koska tällaisen ongelman ratkaisemiseksi ei ole yhtenäisiä sääntöjä.