1s măsurarea performanței ceea ce este timpul pur.

Funcționalitatea de măsurare a performanței este concepută pentru a analiza timpul de execuție al operațiunilor individuale. Pentru a-l inițializa, este suficient:

  1. rulați depanarea
  2. setați un punct de întrerupere (opțional)
  3. activați măsurarea (meniu Depanare -> Măsurarea performanței)
  4. inițializați execuția acestei linii de cod. În exemplu, pentru a plasa o comandă:

Platforma va afișa rezultatul ca masă rotativă, și de asemenea vizavi de liniile modulului se va indica de câte ori a fost executat linie dată, și care este procentul din timpul său de execuție în timpul total de măsurare:

Întrebarea 05.54 a examenului 1C: Platform Professional. Pentru a începe procesul de măsurare a performanței...

  1. porniți sistemul în modul de depanare, apoi setați un punct de întrerupere, rulați măsurarea performanței (Depanare - Măsurarea performanței)
  2. porniți sistemul în modul de depanare, rulați măsurarea performanței (Depanare - Măsurarea performanței)
  3. porniți sistemul în modul „Configurator”, rulați măsurarea performanței (Depanare - Măsurarea performanței)
  4. rulați sistemul în modul „Configurator”, rulați o măsurare a performanței (Debug - Măsurarea performanței), rulați sistemul în modul de depanare sau conectați-vă la sistem pentru depanare
  5. toate raspunsurile sunt corecte
  6. poate 1, sau 2 sau 4

Răspunsul corect este șase.

Întrebarea 05.55 a examenului 1C: Platform Professional. O procedură are o linie de cod care apelează o funcție. Este posibil să se măsoare performanța unei anumite proceduri incluzând timpul de execuție al liniei în sine, dar nu și timpul de execuție al funcției numite în linie?

  1. Nu, timpul de execuție al funcției apelate va fi întotdeauna inclus în măsurarea performanței
  2. Acest lucru se realizează în mod implicit, deoarece măsurătorile de performanță includ întotdeauna timpul de execuție al liniilor procedurii în sine, fără a lua în considerare timpul procedurilor și funcțiilor apelate din aceasta.
  3. Puteți activa sau dezactiva timpul de execuție al procedurilor și funcțiilor apelate înainte de a începe măsurătorile performanței
  4. Puteți activa sau dezactiva timpul de execuție al procedurilor și funcțiilor apelate deja în raportul de măsurare a performanței

Răspunsul corect este al patrulea, există o casetă de selectare pentru aceasta în raport Includeți runtime pentru apelarea procedurilor și funcțiilor:


Întrebarea 05.56 a examenului 1C: Platform Professional. Informațiile din coloana din stânga textului modulului afișează...

  1. numărul de apeluri către o linie de cod într-o măsurătoare de performanță și timpul de execuție a acesteia
  2. numărul de apeluri către o linie de cod într-o măsurare a performanței și procentul din timpul de execuție al acesteia față de timpul total de măsurare
  3. numărul de serie al măsurării performanței și timpul de execuție a unei linii de cod
  4. numărul de serie al măsurării performanței și procentul de timp de execuție al unei linii de cod în raport cu timpul total de măsurare

Răspunsul corect este al doilea.

Scopul principal al scrierii acestui articol este de a evita repetarea nuanțelor evidente pentru acei administratori (și programatori) care nu au câștigat încă experiență cu 1C.

Scopul secundar este ca, dacă am vreo deficiență, Infostart va fi cel mai rapid să-mi semnaleze acest lucru.

Testul lui V. Gilev a devenit deja un fel de standard „de facto”. Autorul de pe site-ul său a dat recomandări destul de clare, dar voi prezenta doar câteva rezultate și voi comenta cele mai probabile erori. Desigur, rezultatele testelor pe echipamentul dvs. pot diferi, acesta este doar un ghid pentru ceea ce ar trebui să fie și pentru ce vă puteți strădui. Aș dori să observ imediat că modificările trebuie făcute pas cu pas, iar după fiecare pas, verificați ce rezultat a dat.

Sunt articole similare pe Infostart, voi pune link-uri către ele în secțiunile relevante (dacă îmi lipsește ceva, vă rog să mă sugerați în comentarii, îl voi adăuga). Deci, să presupunem că 1C este lent. Cum se diagnostichează problema și cum se înțelege cine este de vină, administratorul sau programatorul?

Date inițiale:

Calculator testat, cobai principal: HP DL180G6, echipat cu 2*Xeon 5650, 32 Gb, Intel 362i, Win 2008 r2. Pentru comparație, Core i3-2100 arată rezultate comparabile în testul cu un singur thread. Echipamentul pe care l-am ales în mod deliberat nu a fost cel mai nou, cu echipamente moderne, rezultatele sunt vizibil mai bune.

Pentru testarea serverelor separate 1C și SQL, server SQL: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.

Pentru a testa o rețea de 10 Gbit, s-au folosit adaptoare Intel 520-DA2.

Versiunea fișierului. (baza de date este pe server într-un folder partajat, clienții se conectează prin rețea, protocol CIFS/SMB). Algoritmul pas cu pas:

0. Adăugați baza de date de testare a lui Gilev la serverul de fișiere în același folder ca bazele de date principale. CU computer client conectați, rulați testul. Ne amintim rezultatul.

Se înțelege că chiar și pentru computerele vechi de acum 10 ani (Pentium pe socket 775 ) timpul de la clic pe comanda rapidă 1C:Enterprise până la apariția ferestrei bazei de date ar trebui să treacă mai puțin de un minut. ( Celeron = lent).

Dacă ai un computer mai rău decât un Pentium priza 775 cu 1 GB memorie cu acces aleator, atunci simpatizez cu tine și îți va fi dificil să obții o muncă confortabilă pe 1C 8.2 în versiunea fișierului. Gândiți-vă fie la o actualizare (este timpul) sau la trecerea la terminal (sau web, în ​​caz că clienti slabiși formulare gestionate) server.

Dacă computerul nu este mai rău, atunci îl puteți da cu piciorul pe administrator. Verificați cel puțin funcționarea rețelei, a antivirusului și a driverului de protecție HASP.

Dacă testul lui Gilev în această etapă a arătat 30 de „papagali” sau mai mult, dar baza de lucru 1C încă funcționează lent, întrebările ar trebui adresate programatorului.

1. Ca ghid pentru cât de mult poate „strânge” un computer client, verificăm doar funcționarea acestui computer, fără rețea. Am pus baza de testare calculator local(foarte disc rapid). Dacă computerul client nu are un SSD normal, atunci este creat un disc ram. Deocamdată, cel mai simplu și gratuit este Ramdisk enterprise.

Pentru a testa versiunea 8.2, este suficient un ramdisk de 256 MB și! Cel mai important. După repornirea computerului, cu discul ram în funcțiune, ar trebui să existe 100-200 MB liberi pe el. În consecință, fără un disc ram, pentru funcționarea normală ar trebui să existe 300-400 MB de memorie liberă.

Pentru a testa versiunea 8.3, un disc ram de 256 MB este suficient, dar aveți nevoie de mai multă RAM liberă.

Când testați, trebuie să vă uitați la sarcina procesorului. Într-un caz aproape de ideal (ramdisk), fișierul local 1c încarcă 1 nucleu de procesor atunci când rulează. În consecință, dacă în timpul testării miezul procesorului nu este complet încărcat, căutați punctele slabe. Puțin emoționantă, dar în general corectă, este descrisă influența procesorului asupra funcționării lui 1C. Doar pentru referință, chiar și pe Core i3-urile moderne cu frecvențe înalte, numerele 70-80 sunt destul de realiste.

Cele mai frecvente erori în această etapă.

a) Antivirus configurat incorect. Există multe antivirusuri, setările pentru fiecare sunt diferite, voi spune doar că cu o configurație corespunzătoare, nici web-ul și nici Kaspersky 1C nu interferează. Cu setările implicite, aproximativ 3-5 papagali (10-15%) pot fi luați.

b) Modul de performanță. Din anumite motive, puțini oameni acordă atenție acestui lucru, dar efectul este cel mai semnificativ. Dacă aveți nevoie de viteză, atunci trebuie să faceți acest lucru, atât pe computerele client, cât și pe server. ( Buna descriere la Gilev. Singurul avertisment este că pentru unii plăci de bază Dacă dezactivați Intel SpeedStep, nu puteți activa TurboBoost).

Pe scurt, în timp ce rulează 1C, se așteaptă mult un răspuns de la alte dispozitive (disc, rețea etc.). În așteptarea unui răspuns, dacă modul de performanță este activat, procesorul își scade frecvența. Un răspuns vine de la dispozitiv, 1C (procesorul) trebuie să funcționeze, dar primele cicluri de ceas sunt la o frecvență redusă, apoi frecvența crește - și 1C așteaptă din nou un răspuns de la dispozitiv. Și așa - de multe sute de ori pe secundă.

Puteți (și preferabil) să activați modul de performanță în două locuri:

Prin BIOS. Dezactivați modurile C1, C1E, Intel C-state (C2, C3, C4). În diferite bios ele sunt numite diferit, dar sensul este același. Este nevoie de mult timp pentru a căuta, este necesară o repornire, dar dacă o faci o dată, atunci o poți uita. Dacă faci totul corect în BIOS, viteza va crește. Pe unele plăci de bază, puteți configura setările BIOS, astfel încât modul de performanță Windows să nu joace un rol. (Exemple setări BIOS la Gilev). Aceste setări se referă în principal la procesoarele de server sau la BIOS-uri „avansate”, dacă nu ați găsit asta și NU aveți Xeon, este în regulă.

Panou de control - Alimentare - Performanta ridicata. Minus - dacă computerul nu a fost întreținut de mult timp, va face un zgomot mai puternic al ventilatorului, se va încălzi mai mult și va consuma mai multă energie. Aceasta este o taxă de performanță.

Cum să verificați dacă modul este activat. Lansați task manager - performanță - monitor resurse - CPU. Așteptăm până când procesorul este ocupat cu nimic.

Acestea sunt setările implicite.

În starea C BIOS inclus,

modul de consum echilibrat de energie


În starea C BIOS inclus, mod de înaltă performanță

Pentru Pentium și Core te poți opri acolo,

Încă puteți stoarce puțini „papagali” din Xeon


În starea C BIOS oprit, mod de înaltă performanță.

Dacă nu utilizați Turbo boost, așa ar trebui să arate

server reglat pentru performanță


Și acum numerele. Lasă-mă să-ți amintesc: Intel Xeon 5650, ramdisk. În primul caz, testul arată 23,26, în ultimul - 49,5. Diferența este aproape dublă. Cifrele pot varia, dar raportul rămâne în esență același pentru Intel Core.

Dragi administratori, puteți critica 1C cât de mult doriți, dar dacă utilizatorii finali au nevoie de viteză, trebuie să activați modul de înaltă performanță.

c) Turbo Boost. Mai întâi trebuie să înțelegeți dacă procesorul dvs. acceptă această funcție, de exemplu. Dacă este compatibil, atunci puteți obține încă o performanță destul de legală. (Nu vreau să abordez problemele de overclockare a frecvenței, în special serverele, fă-o pe riscul și riscul tău. Dar sunt de acord că creșterea vitezei Bus de la 133 la 166 dă o creștere foarte vizibilă atât a vitezei, cât și a disipării căldurii)

Cum să activați turbo boost este scris, de exemplu, . Dar! Pentru 1C există câteva nuanțe (nu cele mai evidente). Dificultatea este că efectul maxim al turbo boost are loc atunci când starea C este activată. Și obținem ceva de genul acesta:

Vă rugăm să rețineți că multiplicatorul este maxim, viteza Core este frumoasă și performanța este ridicată. Dar ce se va întâmpla ca rezultat cu 1s?

Factor

Viteza de bază (frecvență), GHz

CPU-Z Single Thread

Testul Gilev Ramdisk

versiunea fișierului

Testul Gilev Ramdisk

client server

Fără Turbo Boost

Stare C oprită, Turbo boost

53.19

40,32

Stare C activată, Turbo boost

1080

53,13

23,04

Dar până la urmă se dovedește că, conform testelor de performanță CPU, versiunea cu un multiplicator de 23 este înainte, conform testelor lui Gilev în versiunea de fișier performanța cu un multiplicator de 22 și 23 este aceeași, dar în client-server versiune - versiunea cu un multiplicator de 23 este groaznic teribil (chiar dacă starea C este setată la nivelul 7, este totuși mai lentă decât cu starea C dezactivată). Prin urmare, recomandarea este să verificați singur ambele opțiuni și să o alegeți pe cea mai bună. În orice caz, diferența dintre 49,5 și 53 de papagali este destul de semnificativă, mai ales fără prea mult efort.

Concluzie - turbo boost trebuie activat. Permiteți-mi să vă reamintesc că nu este suficient să activați elementul Turbo boost în BIOS, trebuie să vă uitați și la alte setări (BIOS: QPI L0s, L1 - dezactivare, scrubbing la cerere - dezactivare, Intel SpeedStep - activare, Turbo boost - activați Panou de control - Opțiuni de alimentare - Performanță ridicată). Și tot (chiar și pentru versiunea de fișier) aș alege opțiunea în care c-state este dezactivat, chiar dacă multiplicatorul este mai mic. Se va dovedi ceva de genul asta...

Un punct destul de controversat este frecvența memoriei. De exemplu, se arată că frecvența memoriei are o influență foarte puternică. Testele mele nu au relevat o asemenea dependență. Nu voi compara DDR 2/3/4, voi arăta rezultatele modificării frecvenței în cadrul aceleiași linii. Memoria este aceeași, dar în BIOS suntem nevoiți să setăm frecvențe mai mici.




Și rezultatele testelor. 1C 8.2.19.83, pt versiunea fișierului disc ram local, pentru client-server 1C și SQL pe un singur computer, memorie partajată. Turbo Boost este dezactivat în ambele versiuni. 8.3 arată rezultate comparabile.

Diferența este în cadrul erorii de măsurare. Am scos în mod special capturi de ecran ale CPU-Z pentru a arăta că, odată cu o schimbare a frecvenței, se schimbă și alți parametri, aceeași Latență CAS și Întârziere RAS la CAS, care neutralizează schimbarea frecvenței. Diferența va fi atunci când modulele de memorie sunt modificate fizic, de la mai lent la mai rapid, dar nici acolo cifrele nu sunt deosebit de semnificative.

2. După ce am sortat procesorul și memoria computerului client, trecem la următorul loc foarte important - rețeaua. S-au scris multe volume de cărți despre reglarea rețelei, există articole despre Infostart (, și altele), dar aici nu mă voi concentra pe acest subiect. Înainte de a începe testarea 1C, vă rugăm să vă asigurați că iperf între două computere arată întreaga lățime de bandă (pentru cardurile de 1 Gbit - ei bine, cel puțin 850 Mbit, sau mai bine 950-980), că sfatul lui Gilev a fost urmat. Apoi - cel mai simplu test de lucru va fi, în mod ciudat, copiarea unuia dosar mare(5-10 gigaocteți) prin rețea. Un semn indirect de funcționare normală pe o rețea de 1 Gbit va fi viteza medie de copiere de 100 MB/sec, funcționare bună - 120 MB/sec. Aș dori să vă atrag atenția asupra faptului că punctul slab (inclusiv) poate fi încărcarea procesorului. SMB Protocolul de pe Linux este destul de prost paralelizat, iar în timpul funcționării poate „mânca” destul de ușor un nucleu de procesor și nu mai consumă.

Și mai departe. Cu setări conform ferestre implicite clientul funcționează cel mai bine cu Windows Server (sau chiar windows functioneaza stație) și protocolul SMB/CIFS, client linux(debian, ubuntu nu s-a uitat la celelalte) funcționează mai bine cu Linux și NFS (funcționează și cu SMB, dar pe NFS papagalii sunt mai mari). Faptul că în timpul copierii liniare un server Windows Linux pe NFS este copiat într-un flux mai rapid nu înseamnă nimic. Tuningul Debian pentru 1C este un subiect pentru un articol separat, încă nu sunt pregătit pentru asta, deși pot spune că în versiunea de fișier am obținut performanțe chiar puțin mai bune decât versiunea Win pe același echipament, dar cu postgres cu peste 50 de utilizatori am încă totul foarte rău.

Cel mai important , pe care administratorii „arși” îl știu, dar începătorii nu țin cont. Există multe moduri de a seta calea către baza de date 1c. Puteți face \\server\share, puteți face \\192.168.0.1\share, puteți utiliza net z: \\192.168.0.1\share (și în unele cazuri această metodă va funcționa, dar nu întotdeauna) și apoi specificați unitatea Z Se pare că toate aceste căi indică același loc, dar pentru 1C există o singură cale care oferă performanțe normale destul de fiabile. Deci, iată ce trebuie să faceți corect:

ÎN Linie de comanda(sau în politici, sau după cum preferați) - utilizați net DriveLetter: \\server\share. Exemplu: net use m: \\server\baze. Subliniez în mod special NU adresa IP și anume Nume Server. Dacă numele serverului nu este vizibil, adăugați-l la dns de pe server sau local în fișierul hosts. Dar adresa trebuie să fie după nume. În consecință, în drum spre baza de date, accesați acest disc (vezi imaginea).

Și acum voi arăta cu cifre de ce acesta este sfatul. Date inițiale: Intel X520-DA2, Intel 362, Intel 350, Realtek 8169 OS Win 2008 R2, Win 7, Debian 8. Ultimele drivere, actualizări aplicate. Înainte de testare, m-am asigurat că Iperf oferă toată lățimea de bandă (cu excepția cardurilor de 10 Gbit, a reușit să stoarce doar 7,2 Gbit, voi vedea de ce mai târziu, serverul de testare nu este încă configurat corect). Discurile sunt diferite, dar peste tot există un SSD (am introdus special un singur disc pentru testare, nu este încărcat cu nimic altceva) sau un raid de la un SSD. Viteza de 100 Mbit a fost obținută prin limitarea setărilor adaptorului Intel 362 Nu a existat nicio diferență între Intel 350 de cupru de 1 Gbit și Intel X520-DA2 de 1 Gbit (obținut prin limitarea vitezei adaptorului). Performanță maximă, turbo boost este dezactivat (doar pentru comparabilitate a rezultatelor, turbo boost pentru rezultate bune adaugă puțin mai puțin de 10%, pentru rezultate proaste este posibil să nu aibă niciun efect). Versiunile 1C 8.2.19.86, 8.3.6.2076. Nu dau toate numerele, ci doar pe cele mai interesante, ca să ai cu ce să compari.

Win 2008 - Win 2008

contact prin adresa ip

Win 2008 - Win 2008

Sunând pe nume

Win 2008 - Win 2008

Contact prin adresa IP

Win 2008 - Win 2008

Sunând pe nume

Win 2008 - Win 7

Sunând pe nume

Win 2008 - Debian

Sunând pe nume

Win 2008 - Win 2008

Contact prin adresa IP

Win 2008 - Win 2008

Sunând pe nume

11,20 26,18 15,20 43,86 40,65 37,04 16,23 44,64
1C 8.2 11,29 26,18 15,29 43,10 40,65 36,76 15,11 44,10
8.2.19.83 12,15 25,77 15,15 43,10 14,97 42,74
6,13 34,25 14,98 43,10 39,37 37,59 15,53 42,74
1C 8.3 6,61 33,33 15,58 43,86 40,00 37,88 16,23 42,74
8.3.6.2076 33,78 15,53 43,48 39,37 37,59 42,74

Concluzii (din tabel și din experienta personala. Se aplică numai versiunii fișierului):

Prin intermediul rețelei, puteți obține numere destul de normale pentru lucru dacă această rețea este configurată corect și calea este introdusă corect în 1C. Chiar și primul Core i3 poate produce cu ușurință peste 40 de papagali, ceea ce este destul de bine, iar aceștia nu sunt doar papagali, în munca reală diferența este și ea vizibilă. Dar! Limitarea atunci când lucrați cu mai mulți (mai mult de 10) utilizatori nu va mai fi rețeaua, aici 1 Gbit este încă suficient, dar blocarea în timpul lucrului cu mai mulți utilizatori (Gilev).

Platforma 1C 8.3 este de multe ori mai solicitantă în ceea ce privește configurarea corectă a rețelei. Setări de bază- vezi Gilev, dar tine cont ca totul poate influenta. Am văzut o accelerare de la dezinstalarea (și nu doar de la oprirea) antivirusului, de la eliminarea protocoalelor precum FCoE, de la schimbarea driverelor la o versiune mai veche, dar certificată Microsoft (în special pentru carduri ieftine precum ASUS și DLC), de la scoaterea celei de-a doua plăci de rețea. de pe server. Există o mulțime de opțiuni, configurați-vă rețeaua cu atenție. S-ar putea să existe o situație în care platforma 8.2 oferă numere acceptabile, iar 8.3 - de două sau chiar de mai multe ori mai puțin. Încercați să jucați cu versiunile platformei 8.3, uneori obțineți un efect foarte mare.

1C 8.3.6.2076 (poate cele ulterioare, versiunea exacta Nu m-am uitat încă) este încă mai ușor de configurat prin rețea decât 8.3.7.2008. Am reușit să obțin o funcționare normală în rețea din 8.3.7.2008 (la papagalii comparabili) doar de câteva ori nu am putut să o repet pentru un caz mai general. Nu am înțeles mare lucru, dar judecând după învelișurile de la picioare Process Explorer Acolo înregistrarea nu funcționează la fel de bine ca în 8.3.6.

În ciuda faptului că atunci când lucrezi pe o rețea de 100 Mbit, graficul său de încărcare este mic (putem spune că rețeaua este liberă), viteza de operare este totuși mult mai mică decât pe 1 Gbit. Motivul este latența rețelei.

Toate celelalte lucruri fiind egale (o rețea care funcționează bine) pentru 1C 8.2, conexiunea Intel-Realtek este cu 10% mai lentă decât Intel-Intel. Dar realtek-realtek poate da, în general, o tasare bruscă din senin. Prin urmare, dacă aveți bani, este mai bine să păstrați cardurile de rețea Intel peste tot dacă nu aveți bani, atunci instalați Intel doar pe server (CO); Și există de multe ori mai multe instrucțiuni pentru reglarea plăcilor de rețea Intel.

Setările implicite antivirus (folosind drweb versiunea 10 ca exemplu) ocupă aproximativ 8-10% din papagali. Dacă îl configurați așa cum trebuie (permiteți procesului 1cv8 să facă totul, deși nu este sigur), viteza este aceeași ca și fără un antivirus.

NU citiți guru Linux. Un server cu samba este grozav și gratuit, dar dacă instalați Win XP sau Win7 (sau chiar mai bine - server OS) pe server, atunci versiunea de fișier a 1c va funcționa mai repede. Da, samba și stiva de protocoale și setările de rețea și multe, multe altele pot fi bine reglate în debian/ubuntu, dar acest lucru este recomandat specialiștilor. Nu are rost să instalezi Linux cu setările implicite și apoi să spui că este lent.

Este o idee destul de bună să verificați funcționarea discurilor conectate prin utilizarea rețelei folosind fio . Cel puțin va fi clar dacă acestea sunt probleme cu platforma 1C, sau cu rețea/disc.

Pentru versiunea pentru un singur utilizator, nu mă pot gândi la teste (sau la o situație) în care diferența dintre 1 Gbit și 10 Gbit ar fi vizibilă. Singurul lucru în care 10 Gbit pentru versiunea de fișier a dat rezultate mai bune este conectarea discurilor prin iSCSI, dar acesta este un subiect pentru un articol separat. Totuși, cred că pentru versiunea de fișier cardurile de 1 Gbit sunt suficiente.

Nu înțeleg de ce, cu o rețea de 100 Mbit, 8.3 funcționează considerabil mai repede decât 8.2, dar a fost un fapt. Toate celelalte echipamente, toate celelalte setări sunt absolut aceleași, doar că într-un caz este testat 8.2, iar în celălalt - 8.3.

NFS neajustat win-win sau win-lin dă 6 papagali, nu i-am inclus în tabel. După tuning am primit 25, dar a fost instabil (diferența de măsurători a fost mai mare de 2 unități). Nu pot da nicio recomandare încă folosind windowsși protocolul NFS.

După toate setările și verificările, rulăm din nou testul de pe computerul client și ne bucurăm de rezultatul îmbunătățit (dacă funcționează). Dacă rezultatul s-a îmbunătățit, există mai mult de 30 de papagali (și mai ales mai mult de 40), mai puțin de 10 utilizatori lucrează în același timp, iar baza de date de lucru este încă lentă - aproape sigur o problemă cu programatorul (sau aveți a atins deja capacitățile de vârf ale versiunii fișierului).

Server terminal. (baza de date este pe server, clienții se conectează prin rețea, protocol RDP). Algoritmul pas cu pas:

0. Adăugați baza de date de testare a lui Gilev la server în același folder ca bazele de date principale. Ne conectăm de pe același server și rulăm testul. Ne amintim rezultatul.

1. În același mod ca și în versiunea fișierului, am configurat lucrarea. În cazul unui server terminal, procesorul joacă, în general, rolul principal (se presupune că nu există puncte slabe, cum ar fi lipsa memoriei sau sumă uriașă software inutil).

2. Configurarea plăcilor de rețea în cazul unui server terminal nu are practic niciun efect asupra funcționării lui 1c. Pentru a asigura un confort „special”, dacă serverul tău produce mai mult de 50 de papagali, te poți juca cu versiuni noi ale protocolului RDP, doar pentru confortul utilizatorilor, răspuns mai rapid și derulare.

3. Dacă un număr mare de utilizatori lucrează activ (și aici puteți încerca deja să conectați 30 de persoane la o bază de date, dacă încercați), este foarte recomandabil să instalați o unitate SSD. Din anumite motive, se crede că discul nu afectează în mod deosebit funcționarea lui 1C, dar toate testele sunt efectuate cu cache-ul controlerului activat pentru scriere, ceea ce este incorect. Baza de testare este mică, se potrivește destul de bine în cache, de unde și numerele mari. Pe bazele de date reale (mari) totul va fi complet diferit, astfel încât memoria cache este dezactivată pentru teste.

De exemplu, am verificat funcționarea testului Gilev cu diferite opțiuni de disc. Am instalat discurile din ce era la îndemână, doar pentru a arăta tendința. Diferența dintre 8.3.6.2076 și 8.3.7.2008 este mică (în versiunea Ramdisk Turbo boost 8.3.6 produce 56.18 și 8.3.7.2008 produce 55.56, la alte teste diferența este și mai mică). Consum de energie - performanță maximă, turbo boost dezactivat (dacă nu se specifică altfel).

Raid 10 4x SATA 7200

ATA ST31500341AS

Raid 10 4x SAS 10k

Raid 10 4x SAS 15k

Un singur SSD

Ramdisk

Cache-ul activat

Controler RAID

21,74 28,09 32,47 49,02 50,51 53,76 49,02
1C 8.2 21,65 28,57 32,05 48,54 49,02 53,19
8.2.19.83 21,65 28,41 31,45 48,54 49,50 53,19
33,33 42,74 45,05 51,55 52,08 55,56 51,55
1C 8.3 33,46 42,02 45,05 51,02 52,08 54,95
8.3.7.2008 35,46 43,01 44,64 51,55 52,08 56,18

Cache-ul controlerului RAID activat elimină toate diferențele dintre discuri, numerele sunt aceleași atât pentru sat, cât și pentru cas. Testarea cu el pe o cantitate mică de date este inutilă și nu este indicativă de niciun fel.

Pentru platforma 8.2, diferența de performanță între opțiunile SATA și SSD este mai mult decât dublă. Aceasta nu este o greșeală de tipar. Dacă te uiți la monitorul de performanță în timpul testului pe unitățile SATA. atunci se vede clar acolo" Timp activ funcționarea discului (în%)" 80-95. Da, dacă activați memoria cache a discurilor în sine pentru înregistrare, viteza va crește la 35, dacă activați memoria cache a controlerului raid - până la 49 (indiferent de discurile testate în acest moment). Dar aceștia sunt papagali cache sintetici în munca reală, cu baze de date mari, nu va exista niciodată un raport de accesare în cache de scriere de 100%.

Viteza chiar și a SSD-urilor ieftine (am testat pe Agility 3) este suficientă pentru a rula versiunea fișierului. Resursa de înregistrare este o altă problemă, trebuie să o priviți în fiecare caz specific, este clar că Intel 3700 o va avea cu un ordin de mărime mai mare, dar prețul este corespunzător. Și da, înțeleg asta când testez unitate SSD De asemenea, testez cache-ul acestui disc într-o măsură mai mare, rezultatele reale vor fi mai puține.

Cea mai corectă soluție (din punctul meu de vedere) ar fi să selectezi 2 disc SSDîntr-un raid oglindă pentru o bază de date de fișiere (sau mai multe baze de date de fișiere) și nu plasați nimic altceva acolo. Da, cu o oglindă, SSD-urile se uzează la fel, iar acesta este un minus, dar cel puțin electronica controlerului este protejată cumva de erori.

Principalele avantaje ale unităților SSD pentru versiunea de fișiere vor apărea atunci când există multe baze de date, fiecare cu mai mulți utilizatori. Dacă există 1-2 baze de date și există aproximativ 10 utilizatori, atunci discuri SAS vor fi suficiente. (dar în orice caz, uită-te la încărcarea acestor discuri, cel puțin prin perfmon).

Principalele avantaje ale unui server terminal sunt că poate avea clienți foarte slabi, iar setările de rețea afectează mult mai puțin serverul terminal (din nou, K.O.).

Concluzii: dacă rulați testul Gilev pe un server terminal (de pe același disc pe care se află bazele de date de lucru) și în acele momente când baza de date de lucru încetinește, iar testul Gilev arată un rezultat bun (peste 30) - atunci muncă lentă Principala bază de lucrători este cel mai probabil programatorul de vină.

Dacă testul lui Gilev arată numere mici și aveți un procesor cu ceas mare și discuri rapide, atunci administratorul trebuie să ia cel puțin perfmon, înregistrând toate rezultatele undeva și să urmărească, să observe și să tragă concluzii. Nu va exista un sfat definitiv.

Opțiune client-server.

Testele au fost efectuate doar pe 8.2, deoarece pe 8.3 totul depinde destul de serios de versiune.

Pentru testare am ales diferite variante serverele și rețelele dintre ele pentru a arăta principalele tendințe.

SQL: Xeon E5-2630

SQL: Xeon E5-2630

Fibre Channel - SSD

SQL: Xeon E5-2630

Fibre Channel - SAS

SQL: Xeon E5-2630

SSD local

SQL: Xeon E5-2630

Fibre Channel - SSD

SQL: Xeon E5-2630

SSD local

1C: Xeon 5650 =

1C: Xeon 5650 =

Memorie partajată

1C: Xeon 5650 =

1C: Xeon 5650 =

1C: Xeon 5650 =

16,78 18,23 16,84 28,57 27,78 32,05 34,72 36,50 23,26 40,65 39.37
1C 8.2 17,12 17,06 14,53 29,41 28,41 31,45 34,97 36,23 23,81 40,32 39.06
16,72 16,89 13,44 29,76 28,57 32,05 34,97 36,23 23,26 40,32 39.06

Se pare că am luat în considerare toate opțiunile interesante, dacă mai este ceva care vă interesează, scrieți în comentarii, voi încerca să o fac.

SAS pe sistemele de stocare este mai lent decât SSD-urile locale, chiar dacă sistemele de stocare au dimensiuni mai mari de cache. SSD-urile, atât locale, cât și pe sistemele de stocare, funcționează la viteze comparabile pentru testul lui Gilev. Nu cunosc niciun test standard cu mai multe fire (nu doar înregistrarea, ci toate echipamentele), cu excepția testului de încărcare 1C de la MCC.

Schimbarea serverului 1C de la 5520 la 5650 aproape a dublat performanța. Da, configurațiile serverului nu se potrivesc complet, dar arată o tendință (nicio surpriză).

Creșterea frecvenței pe serverul SQL dă cu siguranță un efect, dar nu același ca pe serverul 1C MS SQL este excelent (dacă o cereți) pentru a folosi multi-core și memorie liberă;

Schimbarea rețelei între 1C și SQL de la 1 Gbit la 10 Gbit dă aproximativ 10% papagali. ma asteptam la mai mult.

Activarea memoriei partajate dă în continuare un efect, deși nu de 15%, așa cum este descris. Asigurați-vă că o faceți, din fericire, este rapid și ușor. Dacă în timpul instalării cineva a dat serverului SQL o instanță numită, atunci pentru ca 1C să funcționeze, numele serverului trebuie specificat nu prin FQDN (tcp/ip va funcționa), nu prin localhost sau doar ServerName, ci prin ServerName\InstanceName, de exemplu zz-test\zztest. (În caz contrar, va apărea o eroare DBMS: Microsoft SQL Server Native Client 10.0: Furnizor de memorie partajată: Biblioteca de memorie partajată utilizată pentru a stabili o conexiune la SQL Server 2000 nu a fost găsită. HRESULT=80004005, HRESULT=80004005, HRESULT=80004005, SQLSrvr: SQLSTATE=08001, stare=1, Severitate=10, nativ=126, linie=0).

Pentru mai puțin de 100 de utilizatori, singurul punct în care îl împărțim în două servere separate este o licență Win 2008 Std (și mai veche), care acceptă doar 32 GB de RAM. În toate celelalte cazuri, 1C și SQL trebuie să fie instalate pe un singur server și să li se ofere mai multă memorie (cel puțin 64 GB). A oferi MS SQL mai puțin de 24-28 GB de RAM este o lăcomie nejustificată (dacă crezi că ai suficientă memorie și totul funcționează bine, poate că versiunea de fișier a 1C ar fi suficientă pentru tine?)

Cât de rău funcționează combinația dintre 1C și SQL mașină virtuală- subiectul unui articol separat (hint - vizibil mai rău). Chiar și în Hyper-V totul nu este atât de clar...

Modul de performanță echilibrat este rău. Rezultatele sunt destul de conforme cu versiunea fișierului.

Multe surse spun că modul de depanare (ragent.exe -debug) determină o scădere semnificativă a performanței. Ei bine, se reduce, da, dar nu aș numi 2-3% un efect semnificativ.

Măsurarea performanței - funcționalitatea încorporată a platformei 1C 8 pentru evaluarea performanței codului programului în modul de depanare 1C.

Folosind acest mecanism, este posibil să se evalueze performanța în termeni de linii de cod de program. Să ne uităm la utilizarea acestui mecanism mai detaliat folosind un exemplu specific.

Un exemplu de utilizare a măsurării performanței 1C

Lansăm 1C 8.2 sau 8.3 in, setăm un punct de întrerupere, pornim modul de măsurare din meniu (Depanare - Măsurare performanță).

După aceasta, trebuie să activați execuția acestei linii de cod de program. Ce primim:

Obțineți 267 de lecții video pe 1C gratuit:

Vizavi de liniile de cod de program, sistemul arată de câte ori a fost executată această linie de cod. În dreapta este indicat procentul de execuție pe timp din timpul total de execuție. Modul aplicație gestionată va indica unde codul programului- pe client sau server.

În acest articol vom învăța cum să măsuram performanța 1C: Enterprise. Evaluarea performanței poate fi efectuată atât pentru întreaga aplicație, din momentul lansării până când este închisă, cât și pentru o bucată separată de cod, dacă doriți să măsurați un anumit blocaj. Voi arăta toate exemplele de măsurători de performanță pe configurația demo „”.

Să învățăm cum să măsurăm performanța întregii aplicații ca întreg de la început până la sfârșit. Pentru a face acest lucru, trebuie să porniți 1C: Enterprise în modul, iar în meniul Depanare selectați „Măsurarea performanței”

După aceasta, va apărea un mesaj care spune că trebuie să activați măsurarea performanței, care va începe imediat după depanare

Suntem de acord, începem depanarea (tasta F5) și lucrăm. trebuie să fie pornit în acest moment!

Citiți mai multe despre lucrul cu depanarea în acest articol:

După ce faceți totul și închideți 1C: Enterprise în modul utilizator, se va deschide o fereastră de măsurare a performanței.

Ne vom ocupa de această fereastră mai târziu.
Dar cel mai interesant este că măsurarea continuă să funcționeze, ne vom convinge de asta dacă vom intra din nou în depanare

Pentru a-l elimina, trebuie să faceți din nou clic pe acest element de meniu.
Să învățăm cum să măsuram performanța într-un anumit loc din cod. Pentru a face acest lucru, deschideți modulul de document „Încasare de bani” și setați punctele de întrerupere la începutul procedurii de tranzacție și la sfârșit.

După aceea, să începem depanarea și să încercăm să rulăm documentul de plată, iar când este declanșat primul punct de întrerupere, mergem la meniul „Depanare”, unde facem clic pe butonul deja familiar „Măsurarea performanței”.

După ce ați început să măsurați performanța, trebuie să continuați depanarea utilizând butonul corespunzător sau tasta F5. Odată declanșat al doilea punct de întrerupere, reveniți la meniul de depanare și faceți clic din nou pe butonul „Măsurarea performanței”.


După aceasta, se va deschide fereastra cu rezultatele măsurătorii, iar formularul va lua următoarea formă.


Să ne uităm la această fereastră pentru o mai mare claritate, să măsurăm performanța de înlocuire a produsului în tabelul documentului „Sosirea mărfurilor”;

Uitați-vă la ultima cifră, după cum puteți vedea, există mai multe rânduri în tabelul de măsurare decât sunt rânduri în procesorul însuși pe care le-am măsurat. Acest lucru se datorează faptului că tabelul de măsurare include nu numai liniile fragmentului de cod selectat, ci și liniile de proceduri și funcții care sunt numite în acest cod. În cazul nostru, acestea sunt două funcții GetCurrentLineItems și GetPriceItems.
Rândurile 16,17, 20, 22 se referă la funcția GetProductPrice, iar liniile 33,34 se referă la GetCurrentProductLine. Dacă facem clic pe linia dorită cu mouse-ul, vom merge la această linie din modul.
Să ne uităm la câteva coloane:
„Număr” - această coloană indică de câte ori a fost executată această linie
„Timp pur” este timpul în secunde petrecut pentru executarea acestei linii, în acest caz, se ia timpul total; tot timpul în care a fost apelată linia.
„% din timp” este raportul dintre „timpul net” și timpul total de măsurare. Mai mult, 100% este considerată a fi executarea codului pe client. Acestea. Această coloană funcționează corect când am început pe client și am terminat pe client, dar dacă am început pe server și am terminat pe client, rezultatul poate să nu fie întotdeauna corect.
Afișarea în coloanele „Timp net” și „% timp” este afectată de indicatorul „Includeți timpul de execuție pentru procedurile și funcțiile de apelare”. Acest flag trebuie să fie activat atunci când dorim să arătăm timpul necesar pentru a apela o procedură sau o funcție.


După ce am setat acest steag, valorile din coloanele „Timp” și „% din timp” s-au schimbat. Acestea. am văzut cât timp relativ și absolut se petrece pe această linie în general

PagePrice = GetProductPrice(Object.Date, PageProduct);

Să ne dăm seama de unde a venit numărul 98,64% – timpul de executare a acestei linii.

Dacă adunăm procentul de timp pentru executarea codului în procedura GetProductPrice, care este rândurile 16, 17, 20 și 22, acesta va fi - 86,41 % , dar în figură vedem că executarea procedurii durează 98,64% din timpul total. Unde altundeva este 98,64 – 86,41 = 12,23 la sută? Uită-te la cifra anterioară, 12,23% este exact timpul pentru a apela procedura serverului.
Astfel, dacă este setat indicatorul „Includeți timpul de execuție pentru apelurile de proceduri și funcții”, atunci acesta arată timpul relativ și absolut de execuție și apelul unei proceduri sau funcție. În același timp, dacă acest steag este șters, atunci este afișat doar timpul pentru apelarea metodei. Deoarece apelarea oricărei proceduri sau funcție de server (fie că este într-o formă sau în afara contextului) necesită anumite costuri, informațiile despre durata unui apel de metodă pot fi foarte utile.
Cu restul coloanelor totul este mai mult sau mai puțin clar. Coloana „Client”, folosind o pictogramă specială, indică faptul că linia este executată pe client. Și coloana „Server” indică faptul că linia este executată pe server. Coloana „Rev. server" indică faptul că această linie transferă controlul către server.
De asemenea, rețineți că unele informații din tabelul de măsurători sunt duplicate în modul. Numerele procentuale în acest caz sunt identice cu numerele când indicatorul „Includeți timpul de execuție pentru procedurile și funcțiile de apelare” este șters.

Și, în sfârșit, voi reține că atunci când faceți măsurători ale anumitor procese, rețineți că viteza de execuție depinde de mulți factori (încărcarea procesorului, RAM). Prin urmare, este recomandabil să se efectueze mai multe măsurători diferite pentru a calcula valoarea medie și a elimina salturile aleatorii.

Încerc să lansez diverse articole gratuite interesante și tutoriale video cât mai des posibil. Prin urmare, voi fi foarte bucuros dacă îmi susțineți proiectul transferând orice sumă:

  • Învață să înțelegi arhitectura 1C;
  • Veți începe să scrieți cod în limbajul 1C;
  • Stăpânește tehnici de bază de programare;
  • Consolidează-ți cunoștințele cu ajutorul unei cărți de probleme;
  • Un ghid excelent pentru dezvoltarea într-o aplicație gestionată 1C, atât pentru dezvoltatori începători, cât și pentru programatori experimentați.

    1. Limbajul de prezentare foarte accesibil și ușor de înțeles
    2. Cartea este trimisă către e-mail V format PDF. Poate fi deschis pe orice dispozitiv!
    3. Înțelegeți ideologia unei aplicații gestionate 1C
    4. Aflați cum să dezvoltați o aplicație gestionată;
    5. Învață să te dezvolți formulare gestionate 1C;
    6. Veți putea lucra cu elementele de bază și necesare ale formularelor gestionate
    7. Programare pentru condus de aplicații va deveni clar

    Cod promoțional pentru o reducere de 15% - 48PVXHeYu


    Dacă această lecție te-a ajutat să rezolvi vreo problemă, ți-a plăcut sau ti s-a părut utilă, atunci poți susține proiectul meu donând orice sumă:

    Puteți plăti manual:

    Yandex.Bani - 410012882996301
    Web Money - R955262494655

    Alăturați-vă grupurilor mele.

    Acțiune