Test de sarcină standard. Test de sarcină standard Cum se instalează testul de încărcare 1s

Pentru rolurile de server 1C, server MS SQL 2008 DBMS pentru 50 de utilizatori.

Potrivit unui expert în server, colectăm hardware:

Alegerea unei platforme: IBM x3650 M3
Selectați un procesor: Intel Xeon E5506 - 1 buc.
Alegerea memoriei RAM: 4 stick-uri de 4 GB fiecare
Selectarea unui hard disk: 3 SAS 146 GB RAID5

Software folosit:

OS MS Windows 2008 x64
DBMS MS SQL 2008 x64
Server 1C 8.2 x64

Mediu de testare: pentru efectuarea testelor de sarcină a fost utilizată configurația 1C 8.2: „Test de sarcină standard”.

Progresul testului:

O sesiune client 1C a fost lansată pe serverul local în modul agent și în modul de testare.
În configurația testului, numărul inițial de utilizatori standard 1C emulați care creează și șterg documente și rapoarte a fost specificat ca 20. Pasul de creștere a numărului de utilizatori după teste a fost setat la 20 de utilizatori.

Inițial (fără conexiuni de utilizator), DBMS ocupă 569 MB de RAM (au fost create 2 baze de date: configurație 1C 8.2: UPP și configurare de test), memoria ocupată de sistem este de 2,56 GB.
În timpul testării (până la 110 utilizatori), memoria pentru SGBD este alocată până la 12 GB, o sesiune de testare 1C ocupă 55 MB (55 MB x 200 = 11 GB). Pentru comparație, o sesiune de utilizator real (aplicație client 1C) durează aproximativ 300 - 500 MB. Mărimea memoriei alocată pentru aplicația client 1C este indicată pentru un utilizator care lucrează în configurația standard 1C: Trade sau 1C: UPP. Serviciul server 1C (rphost) practic nu folosește OP, deoarece traduce doar cererile din partea client în DBMS (conform standardului, portul TCP 1541 și TCP 475 sunt folosite pentru serverul de securitate 1C).

Utilizarea resurselor CPU a fost împărțită între serviciul server 1C (rphost) și serviciul DBMS (sqlservr). Cu o încărcătură de 40 de utilizatori, rphost a luat 37% din puterea procesorului, sqlservr a luat 30%. Cu o încărcătură de 60 de utilizatori, rphost a ocupat 47% din puterea procesorului, sqlservr a ocupat 29%.

În timpul ștergerii documentelor create, serviciul sqlsrvr a accesat subsistemul disc pentru înregistrare la viteze de până la 6,5 ​​MB/sec (aproximativ 52 MB/sec).

Sarcina de rețea dintre serverul 1C și DBMS (pe interfața locală de căutare) a fost de 10 Mb/s.
Rezultatul testului produs de configurația testului 1C:

Parametri: Run test 000000006 din 05/24/2012 12:44:16
Test de încărcare standard, versiunea 2.0.4.11
Începutul testării 23.05.2012 12:36:39. Durata: 57,1 minute.
Condiții de test
„Server 1C: Enterprise: test
Numele bazei de informații: testcenter_82
Utilizatori virtuali: TEST,"

Concluzii:

Este necesar să relaxați configurația serverului, deoarece cea actuală este 100% redundantă pentru 50 de utilizatori.
Este necesar să se efectueze testarea folosind un al doilea server pentru a lansa utilizatorii emulați și a verifica încărcarea rețelei, sarcina așteptată este de 10 Mb/sec.
Arhitectura 1C constă din 4 blocuri: 1C server, DBMS, 1C server de securitate și 1C client. În acest test, toate aceste funcții au fost lansate pe un singur server.

Când există o sarcină mare pe serverul 1C, există următoarele recomandări:

Separați rolurile serverului 1C, serverului DBMS, serverului de protecție 1C și aplicațiilor client 1C (pentru performanțe mai mari, este mai bine să rulați aplicații client 1C pe un server terminal).
Pe serverul DBMS, trebuie să utilizați următoarea structură pentru sistemele de stocare a datelor: sistemul de operare ar trebui să fie localizat pe RAID 1, fișierele de date DBMS (.mdf, .ndf) pe un RAID 0 separat, fișierele jurnal (.ldf) pe un separat RAID 0, fișiere temporare și un fișier swap pe un disc separat.

Implementarea infrastructurii 1C pe Linux este un subiect străvechi, dar încă relevant. Am publicat recent un articol 1C Application Server pe Linux, dar problema performanței reale în comparație cu o soluție pentru Windows a rămas deschisă. Testarea a fost efectuată și în modul manual, dar, de dragul obiectivității rezultatelor, voi publica rezultatele testului lui Gilev, care a fost efectuat pe aceeași platformă hardware folosind sisteme de operare diferite: Linux CentOS 7 și MS Windows Server 2012 .

Ca server a fost folosit un suport cu două procesoare Intel Xeon E5-2670, 8x4GB RAM și un SSD Intel.

Tabel rezumat al valorilor medii ale rezultatelor testului Gilev.

Exemple de rezultate







Rezultatele acceptabile ale testelor, ușurința de implementare și costurile scăzute de licențiere ne-au determinat să creăm un produs complet: Server 1C bazat pe Linux.

Fiecare model are un configurator convenabil în care poți alege configurația optimă pentru sarcinile tale. Iată puțin mai multe despre asta.

Crearea unui calculator de putere de calcul pentru server 1C nu este o sarcină banală. Și crearea unui configurator universal 1C pentru toate cazurile posibile este aproape imposibilă.

Cu siguranță există mulți administratori pe hub care au propria lor idee despre cerințele de încărcare și putere de calcul ale serverelor 1C (comentariile dvs. vor crește valoarea acestui articol). Există, de asemenea, recomandări oficiale 1C în care totul va funcționa la orice...

Dar există încă parametri de bază care pot fi calculați, aplicabili unei scheme de funcționare tipice. Știind câte resurse de procesor și RAM consumă o sesiune de terminal, câte IOPS SQL va necesita pentru un anumit număr de utilizatori și, pe baza rezultatelor a numeroase teste, am dezvoltat un configurator pentru o soluție standard pentru 1C.

Desigur, fiecare caz este unic și necesită o prevânzare detaliată, dar pentru un calcul aproximativ este suficient să se indice numărul de utilizatori, tipul bazei de date, volumul bazei de date curente și să selecteze licențele necesare.

Pentru a compara costul unei soluții gata făcute bazate pe Linux și Windows, voi da un exemplu din configurator cu prețuri de vânzare cu amănuntul.

Un server pentru 20 de utilizatori cu o bază de date SQL de până la 80 GB, o licență 1C: Accounting 8 PROF, bazată pe Linux CentOS, va costa 522.759,43 RUB. O configurație similară bazată pe Windows - 1.036.279,43 RUB.

Gama de servere pentru 1C STSS Flagman constă din 3 modele atât pentru Linux, cât și pentru Windows.


1C113.5-020UL- server 1C entry-level, suport pentru până la 20 de utilizatori cu o bază de date SQL. Cantitatea de spațiu pe disc este calculată ținând cont de creșterea bazei de date cu 20% pe an timp de 3 ani. Matricea RAID1 se bazează pe Intel Enterprise SSD. Este posibil să instalați o sursă de alimentare dublă și discuri suplimentare pentru date „reci”. Este disponibilă o gamă de servicii software: PostgreSQL, xrdp și httpd.

1C216.4-200UL- un model bazat pe o platformă cu 2 procesoare care asigură funcționarea infrastructurii 1C pentru până la 200 de conexiuni simultane. Stocarea este calculată după același principiu - dimensiunea bazei de date ținând cont de creștere, dar este construită pe baza unei matrice RAID10 de 4xSSD a volumului necesar.

1C217.2-050UL-REF- aceasta este o soluție pentru clienții cu buget limitat, construită pe baza unui server restaurat în producția noastră (după înlocuire în garanție, fond demo, etc.) Serverele sunt supuse la aceleași teste de încărcare înainte de expediere ca și modelele noi, dar au o scurtă durată. perioada de garantie (1 an). Serverul acceptă până la 50 de conexiuni și, cu excepția licențelor, costă doar 203.705,00 RUB, cu o matrice pentru o bază de date de 40 GB.


1C113.5-020UW- server 1C entry-level, suport pentru până la 20 de utilizatori cu o bază de date SQL. Cantitatea de spațiu pe disc este calculată ținând cont de creșterea bazei de date cu 20% pe an timp de 3 ani. Matricea RAID1 se bazează pe Intel Enterprise SSD. Este posibil să instalați o sursă de alimentare dublă și discuri suplimentare pentru date „reci”.

1C216.4-200UW- Model bazat pe Windows care acceptă până la 200 de utilizatori. Spațiul de stocare este construit pe baza unei matrice RAID10 de 4xSSD din volumul necesar.

1C217.2-050UW-REF- aceeași platformă ca soluția bazată pe Linux. Opțiune bugetară pentru 50 de conexiuni, 1 an garanție.

Următoarele licențe pot fi selectate ca platformă 1C în toate modelele:

1C: Conducerea unei companii mici 8 PROF
1C: Managementul comerțului 8 PROF
1C: Contabilitate 8 PROF
1C: Contabilitate 8 CORP
1C: Salariul și managementul personalului 8 PROF
1C: Salariul și managementul personalului 8 CORP
1C: Fluxul documentelor 8 PROF
1C: Flux de documente 8 KORP

Dacă clientul are suficientă experiență pentru a selecta un server pentru 1C, el poate folosi modele clasice de echipamente server. Dar dacă nu există o astfel de expertiză, atunci, sper, configuratorul nostru de server pentru 1C vă va ajuta să faceți alegerea optimă a sistemului.

Vă mulțumim pentru atenție! Sper că utilizatorii habra apropiați de acest subiect își vor împărtăși experiența în selectarea echipamentelor pentru 1C în comentarii.

O operațiune obligatorie pentru orice implementare sau modificare a unui sistem informatic existent este evaluarea vitezei necesare a sistemului și planificarea resurselor de calcul necesare pentru implementarea acestuia. În prezent, nu există o soluție exactă la această problemă în formă generală și dacă, în ciuda complexității și costului său, un astfel de algoritm este propus de orice producător, atunci chiar și mici modificări ale hardware-ului, versiunii software, configurației sistemului sau cantității sau comportamentului standard al utilizatorului va duce la erori semnificative.

Cu toate acestea, există o mulțime de modalități de a evalua configurația software și hardware necesară pentru a obține performanța necesară. Toate aceste metode pot fi utilizate în procesul de selecție, dar consumatorul trebuie să-și înțeleagă aplicațiile și limitările.

Majoritatea metodelor existente de evaluare a performanței se bazează pe un anumit tip de testare.

Există două tipuri principale de testare: componentă și integrală.

Testarea componentelor implică testarea componentelor individuale ale unei soluții, variind de la performanța procesoarelor sau a subsistemelor de stocare până la testarea performanței serverului în ansamblu, dar fără sarcina utilă sub forma unei anumite aplicații de afaceri.

Abordarea integrată se caracterizează printr-o evaluare a performanței soluției în ansamblu, atât componentele software cât și hardware. În acest caz, se poate folosi atât o aplicație de business, care va fi folosită în soluția finală, cât și unele aplicații model care emulează unele procese și încărcări standard de afaceri.

Culoarea verde a graficului, împreună cu câțiva indicatori selectați condiționat din dreapta, ne permite să facem o evaluare generalizată multiplatformă a performanței „bune”.

Cum să fii mulțumit de rezultatele testelor tale

Ați primit ca rezultat un anumit indice de performanță (viteză). Nu contează dacă rezultatul este bun sau rău - acesta este rezultatul PLATFORMEI care rulează pe hardware-ul tău. În cazul versiunii client - server, acesta este rezultatul unui lanț complex de solicitări care trec prin diverse secțiuni. Obțineți rezultatul real total, care este determinat de blocajul din sistem. Există întotdeauna un blocaj.

Cu alte cuvinte, atât setările DBMS, setările sistemului de operare, cât și hardware-ul au un impact asupra rezultatului general al echipei.

Care server este mai bun

Acest test, efectuat pe un anumit server, dă rezultatul pe baza totalității setărilor hardware, sistem de operare, bază de date etc. Cu toate acestea, un rezultat ridicat pe un anumit hardware de server înseamnă că, în condiții normale, același rezultat va fi obținut pe un hardware de server identic. Acest test este un instrument gratuit care vă ajută să comparați instalarea 1C:Enterprise sub Windows și Linux, trei SGBD-uri diferite acceptate de platforma 1C:Enterprise 8.

Testați siguranța

Testul este absolut sigur. Nu duce la o „crash” a serverului (nu există un algoritm de „stres”) și nu necesită măsuri preliminare chiar și pe un server de „combat”. De asemenea, datele confidențiale nu sunt înregistrate în rezultatele testelor. Sunt colectate informații despre parametrii CPU, RAM, HDD. Numerele de serie ale dispozitivului nu sunt colectate. Puteți verifica cu ușurință toate acestea - codul de testare este deschis 100%. Este imposibil să trimiți orice informație fără știrea ta.

Clasificare TPC-Debit A-local / TPC-1C-GILV-A

Testul aparține secțiunii de teste universale integrale multiplatforme. Mai mult, este aplicabil pentru opțiunile de fișier și client-server pentru utilizarea 1C:Enterprise. Testul funcționează pentru toate SGBD-urile suportate de 1C.

Universalitatea vă permite să faceți o evaluare generalizată a performanței fără a fi legat de o anumită configurație tipică a platformei.

Pe de altă parte, aceasta înseamnă că pentru calcule precise ale unui proiect personalizat, testul vă permite să faceți o evaluare preliminară înainte de testarea de sarcină specializată.

Descărcați testul

Acest test nu este comercial și poate fi descărcat gratuit pentru 8.2 și gratuit pentru 8.3.

Detalii tehnice

Ce se întâmplă în test în cadrul unui ciclu de operare „unul”?

Caracteristici de utilizare a testului pe o bază de date PostgreSQL

Setați parametrul standard_conforming_strings din fișierul de configurare postgresql.conf la „off”

Cum se măsoară sarcina de fier

Trebuie remarcat faptul că testul în sine efectuează deja parțial măsurarea. Pentru o imagine mai detaliată, vă recomand să utilizați utilitarul Process Explorer al lui Mark Rusinovich.

Figura prezintă un exemplu de măsurare pentru versiunea fișierului.

Pentru a înțelege încărcarea reală a echipamentului, a fost necesar să testez performanța unui server terminal 1C în producție, ceea ce am făcut destul de recent, iar acum vreau să prezint rezultatele pentru ca toată lumea să le vadă.

Citiți mai multe în articol.

Veți găsi alte articole despre 1C în secțiunea corespunzătoare -.

În mai multe articole anterioare despre 1C, am lucrat la calcularea configurațiilor de server pentru diverse încărcări generate de eforturile utilizatorilor principali ai 1C, respectiv angajații departamentelor de contabilitate și vânzări. Sarcinile contabililor depind nu numai de întocmirea rapoartelor și introducerea datelor în program și, prin urmare, este mai preferabil ca aceștia să aibă acces complet la terminal și să lucreze cu tot ce au nevoie de acolo (). Pentru manageri, totul este mult mai simplu și pentru ei, publicarea unei aplicații () este un caz de utilizare complet acceptabil.

Nu am riscat să pun serverul în producție fără a efectua teste reale, așa că au fost organizate teste pe scară largă. Avantajul său pentru mine personal a fost că puteam confirma (sau infirma) în practică calculele mele teoretice, pe baza cărora erau indicatori de performanță foarte subiectivi ai stațiilor de lucru ale angajaților.

Mediu de testare

Deci, pentru testare am luat un server cu un procesor Intel Xeon E5-1650 v3 @ 3,50 GHz, 128 GB RAM, 2*SSD în RAID 1. Pe acest server este instalată o mașină virtuală, care este doar un server terminal, cu aplicațiile 1C 8.2, 1C 8.3, MS Office 2013 Pro instalate pe el.

Voi spune imediat că natura încărcării a fost amestecată, adică au existat clienți care lucrau prin RemoteApp și au fost cei care s-au autentificat complet prin RDP și au folosit programele necesare muncii lor (nu doar 1C, ci și Office). ). Distribuția a fost aproximativ după cum urmează: 24 de sesiuni RemoteApp, 5 clienți RDP.

Utilizatorii s-au confruntat cu sarcina de a se conecta la aplicații la fiecare 30 de minute timp de două ore și de a efectua sarcini zilnice în ele - construirea de rapoarte, tipărirea datelor, postarea documentelor, exportarea datelor în alte formate etc. Principalul lucru este că nu a fost nici un scop pentru a pune serverul scopul a fost de a oferi o încărcătură zilnică medie reală.

Rezultatele testului

Totul a început ca de obicei - utilizatorii din a treia împingere, deja de la șefii de departament și mai sus, au început să se conecteze la 1C și să efectueze sarcini de rutină. Toate acestea nu au durat mult și am avut o singură șansă să iau indicatorii de performanță a serverului cât mai aproape de încărcarea reală. Asta am primit pana la urma:

RAM (memoria alocată dinamic a fost setată pe serverul virtual, deci, dacă este necesar, cantitatea actuală de RAM se schimba constant în sus):

Acum este necesar să analizăm rezultatele și să tragem concluzii.

Analiza datelor

Trebuie remarcat faptul că calculele pentru procesor s-au dovedit a fi extrem de precise.

În articol, am stabilit empiric că consumul de resurse CPU al unei sesiuni 1C RemoteApp este în medie de 122.775 de unități de performanță a procesorului (date de performanță preluate de pe site-ul web www.cpubenchmark.net). Într-un alt articol, am calculat resursele necesare pentru a rula o sesiune RDP completă și acestea s-au ridicat la 4% din Core i5 4460, adică 0,04 * 6622 (datele sunt tot cu www.cpubenchmark.net) = 264,88.

În total obținem:

  • o sesiune RDP completă mănâncă 264,88 Unități de performanță CPU;
  • sesiunea 1C RemoteApp consumă 122,775 unitati.

În partea de sus am menționat că erau 24 de utilizatori RemoteApp și 5 RDP. Numaram:

24 * 122,775 + 5 * 264,88 = 4271

Indicele de performanță relativ al Intel Xeon E5-1650 v3 este de 13477 de unități. Adică teoretic sarcina procesorului ar trebui să fie de aproximativ 32% (4271 / 13477 * 100).

Graficul de încărcare a CPU arată că în intervalul de timp 10:30 - 10:50 CPU este încărcat cu 25 - 40% (vârfurile nu contează). Desigur, nu veți obține o linie dreaptă de încărcare a procesorului de 32%; vor exista în continuare fluctuații de la minime la maxime relative, dar în general putem presupune că datele reale sunt de acord cu cele teoretice. Apropo, cu cât sunt mai mulți utilizatori pe serverul tău, cu atât sarcina va fi mai uniformă.

De fapt, datele RAM s-au dovedit a fi mai valoroase. Conform calculelor din articolele anterioare, am avut:

  • 2 GB per sesiune RDP;
  • 100 MB per sesiune RemoteApp.

Adică, cantitatea de memorie ocupată ar fi trebuit să fie de maximum 12,4 GB + puțin pentru OS. Dar, după cum s-a dovedit și, în principiu, am avut un presentiment, această valoare în practică era o cifră complet diferită. 1C s-a dovedit a fi foarte lacom de RAM, spre regretul meu. Mai mult, aplicația se comportă în așa fel încât odată ce a ocupat ceva spațiu, să nu considere necesar să o elibereze în momentul în care nu mai este necesară:

Ei bine, este normal să consumi 2 GB de RAM și să stai și să nu faci nimic (încărcarea procesorului de sesiune este de 0%). Programatorilor moderni nu le pasă deloc de utilizarea optimă a resurselor. Personal, când eram la universitate, eram obligat să rescriu codul aplicației dacă era scris irațional în ceea ce privește utilizarea resurselor de calcul. Aparent, calificările programatorilor moderni au scăzut sub soclu, sau poate aceasta este doar o abordare - de ce să optimizați codul deja scris, când este mai bine să dezvoltați noi funcționalități. În general, nu este ideea, a bombardat și e în regulă.

Din cei 16 GB de „difuzoare” alocați serverului, le-a mâncat pe toate și, cel mai probabil, a cerut mai mult. În teorie, dacă există o lipsă de RAM, sistemul de operare va trece pe disc și, în acest caz, începe o scădere severă a performanței. În cazul meu, nu a fost cazul și cel mai probabil acest lucru s-a datorat SSD-ului, care nu a arătat practic nicio încărcare - doar două vârfuri pe termen scurt pe toată perioada de testare (de la 10:00 la 12:00). Cu toate acestea, după cum arată practica, nu recomand să salvați pe RAM serverul terminal.

1C Test Center 8 este un produs software specializat de la 1C care vă permite să evaluați performanța sistemului și să studiați blocajele sistemului informațional.

Anterior, ne-am uitat la o configurație personalizată. Acum vom învăța cum să creăm scenarii pentru testarea configurației multi-utilizator de către utilizatori și să rulăm testarea în sine.

Scriptul de testare din 1C Test Center este scris într-o procesare special creată. Acest șablon se află în interiorul configurației, are numele „TCTestProcessingTemplate”. Pentru a vă crea propriul script de testare, trebuie să copiați acest șablon și, pe baza acestuia, să creați propriul dvs., unul nou, să-l numim „Re-încărcarea recepției de mărfuri”:

Să adăugăm un nou atribut la procesare și să îl afișăm pe formular - „DocumentForCopying”, acesta este documentul pe care îl vom copia.

Să aruncăm o privire mai atentă la modulul formular. Puteți utiliza trei proceduri în el - TCIinitialize(), TTSExecute(), Delete().

  • TCIinitialize - folosit pentru a completa inițial setările bazei de informații, de exemplu, completarea politicii contabile.
  • TCExecute este modulul principal în care scriptul de testare este scris direct.
  • TCUDeleteData este un modul care descrie ștergerea obiectelor create în timpul procesului de testare.

Să scriem cel mai simplu cod în procedura TCExecute(), care va copia documentul selectat de 5 ori la rând și va măsura copierea și postarea fiecărui document:

Pentru th=1 până la 5 ciclu

Instrumente = KipExternalComponent.GetTools();
StartTime = KipExternalComponent.TimerValue(Tools);

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

CreareDocumente();

EndTime = KipExternalComponent.TimerValue(Tools);
Durata de execuție = (Ora de încheiere - Ora de începere) / 1000;

TCWriteIndicator(„Timp de execuție”, Durata de execuție);

EndCycle;

Returnează TCExecutionResultSuccessfully();

Procedura CreateDocuments() va fi executată pe server:

Procedura CreateDocuments()

NewDocument = TCObject.DocumentForCopying.Copy();
NewDocument.Date = CurrentDate();
NewDocument.Write(DocumentWriteMode.Post);

Sfârșitul procedurii

Aceasta completează pregătirea scriptului, să trecem la Centrul de testare pentru a efectua testarea de încărcare.

Configurarea Centrului de testare 1C 8.3

După ce scriem testarea, vom începe configurarea Centrului de testare în sine. Pentru a configura, trebuie să completați o serie de cărți de referință:

  • Tratamente— un director care conține o listă de procese conectate la testare. Prelucrarea poate fi atât internă, cât și externă.
  • Roluri— un director pentru stocarea link-ului setărilor de procesare-procesare. Setările sunt date individuale pentru fiecare test (număr de iterații, document copiat etc.).
  • Utilizatori— lista de utilizatori și parolele acestora.
  • Calculatoare— o listă de calculatoare pe care va fi efectuat testul.
  • Clienti - stabilirea unde, de la cine și în ce mod va fi lansată testarea de încărcare.

Scenarii de testare

Principala carte de referință, care consolidează toate setările: de câte ori, de ce utilizator, sub ce nume se va efectua testarea la încărcare.

De asemenea, în fila „Parametri” puteți configura un scenariu de testare tehnică:

După configurarea scriptului, tot ce rămâne este să-l lansați.

Începe testarea în 1C: Centrul de testare

Când totul este gata, tot ce rămâne este să începeți munca de testare.

Pentru a face acest lucru, trebuie să lansați cel puțin două sesiuni ale programului: prima - în rolul așa-numitului. „agent”, iar al doilea ca inițiator al lansării scriptului.

Lansarea agentului:

Rularea scriptului:

Pentru a rula, trebuie doar să selectați scriptul dorit din listă și să faceți clic pe butonul Run.