LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Progettazione di server per le esigenze di "1C: Enterprise 8" per medie e grandi imprese

Il materiale è destinato agli specialisti tecnici che progettano soluzioni server per le esigenze di 1C: Enterprise 8 con un carico di 25-250 utenti e oltre. Vengono presi in considerazione i problemi di valutazione delle prestazioni richieste da parte dei componenti del server, tenendo conto dei casi di carico estremo, dell'impatto della virtualizzazione. Le questioni relative alla costruzione di un'infrastruttura aziendale a tolleranza d'errore per le grandi imprese saranno discusse nel prossimo articolo.

Stima delle prestazioni dell'attrezzatura richiesta.

Per la selezione delle apparecchiature, è necessaria almeno una stima preliminare della necessità di risorse di CPU, RAM, sottosistema di dischi e interfacce di rete.
Esistono due modi per considerare qui:
a) Sperimentale, che consente di ottenere dati oggettivi sul carico sull'attrezzatura corrente e di identificare i colli di bottiglia;
b) Calcolato, che consente di effettuare una stima basata su dati medi ottenuti empiricamente.
Il più efficace è l'uso combinato di entrambe le metodologie.

  1. Monitoraggio del carico, valutazione dei risultati, individuazione di strozzature e formazione dei requisiti

Perché è importante eseguire un'analisi del carico quando si dispone di un sistema funzionante?
Qui sarebbe più corretto confrontarsi con la medicina. Quando il paziente viene dal medico, prima viene eseguito un esame, vengono prescritti i test, quindi viene valutato l'intero complesso di informazioni disponibili e viene prescritto il trattamento. La situazione è esattamente la stessa quando si progetta un server.
Avendo compiuto sforzi per misurare i parametri di carico e analizzare i risultati, come ricompensa, otterremo la migliore corrispondenza del server proiettato ai nostri compiti. Il risultato finale sarà: risparmi significativi, sia in termini di costi iniziali che di costi operativi in \u200b\u200bfuturo.

Valuteremo le prestazioni del server in termini di sottosistemi principali: processori centrali, RAM, sottosistema I / O del disco e interfacce di rete. In ambiente Windows, esiste uno strumento standard di valutazione del carico computazionale di Windows Performance Monitor (perfmon). Altri sistemi hanno strumenti di valutazione simili.
In generale, il carico su ciascun sottosistema dipende fortemente dalle applicazioni e dai tipi di dati con cui lavorano. Per il blocco di applicazioni relative a 1C, le più critiche sono CPU, RAM e, per il server SQL, anche il sottosistema del disco. Se distribuito su più server, anche l'interfaccia di rete è fondamentale. Lavoreremo solo con quei parametri che sono importanti per noi dal punto di vista del problema applicato.
I dati per l'analisi devono essere raccolti con almeno un giorno di anticipo in una tipica giornata lavorativa. Idealmente, raccogliere i dati in tre giorni lavorativi tipici. Per trovare i colli di bottiglia, è consigliabile acquisire i dati nel giorno del carico più elevato.
Tutto quanto descritto di seguito sarà utile, sia nella fase di preparazione per la progettazione di un nuovo server (per l'impostazione di un compito per il fornitore), sia durante il funzionamento, per una valutazione obiettiva delle modifiche ai parametri dell'apparecchiatura e un'ulteriore "ottimizzazione" del complesso hardware e software in "1C: Enterprise 8" generalmente.

PROCESSORE. Siamo maggiormente interessati a un parametro - " Processore:% tempo processore» (« Processore:% di utilizzo del processore "). Microsoft afferma quanto segue su questo parametro: “Questo contatore tiene traccia del tempo che la CPU impiega per eseguire un thread mentre è in esecuzione. Un tasso di utilizzo della CPU costante tra l'80% e il 90% può indicare un aggiornamento della CPU o aggiunte multiple della CPU. " Pertanto, se il carico della CPU è in media al 70-80%, questo è il rapporto ottimale tra l'efficienza dell'uso delle risorse della CPU e il margine di prestazione per i periodi di punta. Meno: il sistema è sottocarico. Oltre l'80% è a rischio, il 90%: il sistema è sovraccarico, è necessario distribuire il carico ad altri host o passare a un nuovo server più produttivo.

Analisi della CPU . Per i processori moderni, ha senso capire quanti core sono necessari in primo luogo. Windows stesso distribuisce in modo abbastanza efficace il carico tra i core e, ad eccezione di rari casi in cui esiste un chiaro legame ai core a livello software, tutti i core del processore verranno caricati in modo più o meno uniforme. In generale, se si dispone di un parametro "% Utilizzo CPU"È compreso tra il 50 e il 70% - va tutto bene, c'è una riserva. Se inferiore al 50%, il sistema ha già un numero eccessivo di core, il loro numero può essere ridotto o il server può essere caricato con altre attività. Carico medio pari o superiore all'80%: il sistema richiede più core.

RAM . Ha senso tenere traccia di due parametri qui:
« Memoria: Mbyte disponibili» (« Memoria: MB disponibili "). Su un sistema normalmente operativo, questo contatore deve essere almeno il 10% della memoria fisica installata sul server. Se la quantità di memoria disponibile è troppo piccola, il sistema dovrà utilizzare il file di paging per i processi attivi. Di conseguenza, ci sono notevoli ritardi fino all'effetto del "congelamento" del sistema.
« Memoria:% Impegnato byte Nel Uso», « Memoria:% di utilizzo della memoria allocata ". Un valore elevato per questo contatore indica che il sistema sta riscontrando un carico pesante sulla RAM. È altamente auspicabile che questo parametro sia inferiore al 90%, perché al 95% c'è la possibilità di un errore OutOfMemory.

Analisi RAM . Il parametro chiave è la disponibilità della RAM disponibile sul server, che è abbastanza efficace per monitorare i contatori di cui sopra.

Sottosistema disco. Molto spesso, le domande sulle prestazioni di "1C: Enterprise 8" sono correlate alle prestazioni insufficienti del sottosistema del disco. Ed è qui che abbiamo opportunità abbastanza grandi per ottimizzare le attrezzature per l'attività. Pertanto, presteremo la massima attenzione all'analisi dei contatori del sottosistema del disco.

  1. « % Spazio libero"È la percentuale di spazio libero sul disco logico. Se meno del 15% della capacità del disco è libero, viene considerato sovraccarico e molto probabilmente la sua ulteriore analisi non sarà del tutto corretta - sarà fortemente influenzata dalla frammentazione dei dati sul disco. La quantità consigliata di spazio libero sul disco del server è almeno del 20%, è auspicabile una quantità maggiore di SSD.
  2. « Avg. Disk sec / Transfer"Tempo medio di accesso al disco. Il contatore mostra il tempo medio, in millisecondi, richiesto per uno scambio di dati su un disco. Per sistemi leggermente caricati (ad esempio, archivi di file, archivi di macchine virtuali), si consiglia di mantenere il suo valore entro 25-30 ms. Per server con carico elevato (SQL) - si consiglia di non superare i 10 ms. Valori elevati del contatore indicano un sovraccarico del sottosistema del disco. Questo è un indicatore integrale che necessita di analisi più dettagliate. Quali operazioni, letture o scritture e in quale proporzione sono mostrate dai contatori Avg. Disco sec / Leggi (tempo medio di lettura del disco in secondi) e Avg. Disk sec / Write (tempo medio di accesso al disco per scrittura).
    Indicatore integrale Disk sec / Transfer in RAID5 / RAID6 con una predominanza significativa delle operazioni di lettura può rientrare nell'intervallo normale e le operazioni di scrittura verranno eseguite con ritardi significativi.
    3. Avg. Lunghezza coda disco (lunghezza media della coda del disco), infatti, è un indicatore integrale ed è costituito da Avg. Lunghezza coda lettura disco(lunghezza media della coda di lettura sul disco) e Avg. Lunghezza coda scrittura disco (lunghezza media della coda di scrittura del disco). Indica quante operazioni di I / O, in media, sono in attesa della disponibilità del disco rigido. Questo non è un indicatore misurabile, ma calcolato secondo la legge di Little dalla teoria delle code come N \u003d A * Sr, dove N è il numero di richieste in sospeso nel sistema, A è il tasso di ricezione delle richieste, Sr è il tempo di risposta. Per un sottosistema di dischi normalmente funzionante, questa cifra non deve superare di 1 il numero di dischi nel gruppo RAID. Nelle applicazioni di classe SQL Server, è preferibile mantenere la sua media a meno di 0,2.
    4. Lunghezza corrente della coda del disco (lunghezza della coda del disco corrente) mostra il numero di richieste in sospeso e in sospeso per il disco selezionato. È un valore corrente, un'istantanea, non una media in un intervallo di tempo. Il tempo di latenza per l'elaborazione delle richieste nel sottosistema del disco è proporzionale alla lunghezza della coda. Per un funzionamento confortevole in stato stazionario, il numero di richieste in sospeso non deve superare il numero di dischi fisici nell'array di oltre 1,5-2 volte (supponiamo che in un array di più dischi, ciascun disco possa selezionare contemporaneamente una richiesta dalla coda).
    5. Trasferimenti disco / sec (accessi al disco / sec) - il numero di richieste di I / O su disco individuali completate entro un secondo. Mostra le reali esigenze delle applicazioni per la lettura e la scrittura casuali sul sottosistema del disco. Come indicatore che riassume diversi contatori individuali, consente di valutare rapidamente la situazione generale.
    6. Letture disco / sec - il numero di letture al secondo, ovvero la frequenza delle operazioni di lettura dal disco. Il parametro più importante per le applicazioni della classe SQL Server, che determina le prestazioni reali del sottosistema del disco.
    Nella normale modalità di stato stazionario, la velocità di accesso non deve superare le capacità fisiche dei dischi: i loro limiti individuali moltiplicati per il numero di dischi nell'array.

100-120 IOPS per disco SAS SATA o NL;

200-240 IOPS per disco SAS 15000 rpm;

65.000 IOPS per unità SSD Intel SSD serie s3500 (SATA);

7. Scritture disco / sec - il numero di accessi in scrittura al secondo, ovvero la frequenza di esecuzione delle scritture su disco. Parametro estremamente importante per le applicazioni di classe di SQL Server. Quando si opera in modalità normale, la velocità di accesso non deve superare i limiti del disco fisico moltiplicati per il numero nell'array e tenendo conto della penalità di scrittura per il tipo RAID selezionato.

80-100 IOPS per disco SAS SATA o NL;

180-220 IOPS per disco SAS;

2 , 20 GHz

DDR4
1600/1866/2133

3 , 50 GHz

DDR4 1600/1866/2133/2400

Tabella 1 - Parametri per lavorare con la RAM

RAM ... Le prestazioni dell'intero server saranno influenzate dal tipo di memoria installata. Ad esempio, DIR LR, grazie alla sua architettura, avrà sempre una latenza superiore rispetto alla memoria RDIMM DDR4 convenzionale. Soprattutto su query relativamente brevi tipiche di SQL quando si lavora con 1C. Considerando la latenza più elevata e il prezzo significativamente più elevato, ha senso installare DIR LR solo se non è possibile ottenere la quantità di RAM richiesta a causa di RDIMM.
Allo stesso modo, DDR4 2400 funzionerà leggermente più velocemente di DDR4 2133 - se le alte frequenze sono supportate dalla CPU.

Interfaccia di rete. Qui è consigliabile aderire a semplici regole:
a) Il server deve avere almeno tre interfacce di rete Ethernet da 1 Gb o superiore (10 Gb, 40 Gb) e almeno due di esse su chip di rete del server. Ovviamente, a parità di altre condizioni, dovresti privilegiare l'infrastruttura Ethernet da 10 Gb, in particolare tenendo conto della piccola differenza che sta scomparendo nel prezzo delle apparecchiature (schede di rete da 10 Gb e porte da 10 Gb su switch da 1 GB / 10 Gb).
b) Il server deve supportare l'una o l'altra tecnologia KVM-over-IP per il controllo remoto.
Tra le sottigliezze, è possibile individuare un ottimo supporto da parte di tutti i chip di rete del server Intel per gli strumenti di virtualizzazione e la capacità di distribuire in modo efficiente il carico tra i core della CPU per 10 Gb +.

Sottosistema disco :

Il sottosistema del disco è costituito da due componenti:
- sottosistema I / O sotto forma di controller SAS HBA e controller RAID;
- dispositivi di archiviazione dei dati, o nel nostro caso - dischi SSD e HDD.

RAID.
Per le attività di archiviazione del sistema operativo e del database, di norma vengono utilizzati RAID 1 o RAID 10, nonché le loro varie controparti software.

1. Il RAID software completo (Soft RAID) che utilizza Windows Server non può essere utilizzato per il disco di avvio, ma è abbastanza adatto per la memorizzazione di DB, tempDB e log SQL. La tecnologia Spazi di archiviazione di Windows offre prestazioni piuttosto elevate in termini di affidabilità e prestazioni dello spazio di archiviazione e offre anche una serie di funzioni aggiuntive, la più interessante delle quali, conciliante con le attività 1C, è lo "storage su più livelli". Il vantaggio di questa tecnologia è che parte dei dati richiesti più frequentemente viene automaticamente posizionata sull'SSD dal sistema.
In relazione alle attività 1C, di solito usano un array All-Flash da un SSD o per database di dimensioni molto grandi (1 TB e superiori) e pluriennali - Archiviazione a livelli.
Uno dei vantaggi della tecnologia Windows Storage Spaces è la sua capacità di creare RAID su unità NVMe.

2. Hardware e software RAID1 basato su chipset Intel e Intel® Rapid Storage Technology ( Intel RST).
In esso, le operazioni di I / O a livello hardware vengono eseguite dal chipset della scheda madre, quasi senza utilizzare le risorse della CPU. E l'array è controllato a livello di software tramite i driver di Windows.
Come ogni soluzione di compromesso, Intel RST presenta alcuni inconvenienti.
a) Intel RST dipende dai driver caricati nel sistema operativo. E questo comporta alcuni potenziali rischi che quando i driver o il sistema operativo vengono aggiornati, potrebbe sorgere una situazione in cui il disco RAID sarà inaccessibile. È estremamente improbabile perché Intel e Microsoft sono molto amichevoli e testano il loro software molto bene, ma è possibile.
b) Sulla base dei risultati sperimentali, per indicazioni indirette, si può presumere che il modello di driver Intel RST utilizzi risorse RAM per la cache di scrittura. Ciò fornisce un aumento delle prestazioni, ma comporta anche alcuni rischi di perdita di dati a causa di un'interruzione dell'alimentazione non pianificata per il server.
Questa soluzione ha anche dei vantaggi.
Uno di questi è sempre prestazioni molto elevate, a livello, e talvolta persino superiori a quelle dei controller RAID completamente hardware.
Il secondo è il supporto RAID1 hardware-software per le unità NVMe (al momento della stesura di questo documento, non per le unità avviabili). E qui sta una caratteristica interessante per coloro che usano sottosistemi di dischi molto caricati. A differenza di Windows Storage Spaces, che "sovraccarica" \u200b\u200bil kernel occupato dall'I / O a quasi il 100%, Intel RST, quando raggiunge circa il 70% del carico del kernel, collega il kernel successivo al processo di I / O. Il risultato è un carico più uniforme sui core della CPU e prestazioni leggermente più elevate con carichi elevati.

Figura 4 - Utilizzo della CPU Spazi di archiviazione di Windows vs. Intel RST

3. RAID completamente hardware in un server con 2-6 SSD in RAID 1 è del tutto possibile a causa dell'HBA SAS sul chipset LSI SAS 3008, ad esempio sul controller RAID Intel® RS3WC080. Per questo, nell'HBA SAS è installato uno speciale firmware "IR". Inoltre, questo HBA SAS supporta lo standard SAS 3.0 (12 Gb / s), al prezzo di circa $ 300. Una scelta eccellente qui sarebbe il controller RAID Intel® RS3WC080, che viene fornito immediatamente con il firmware richiesto.
L'essenza di questa soluzione è che gli SSD del server non necessitano di una cache di scrittura. Inoltre, i controller RAID più avanzati disabilitano anche la cache di scrittura integrata quando si utilizzano SSD. Pertanto, l'HBA che non ha una cache SAS in modalità controller RAID affronta con successo i compiti di scrittura e lettura ad alta velocità direttamente da un SSD, fornendo prestazioni abbastanza decenti.

4. Per server con carico elevato con un numero elevato di SSD SAS o SATA, è consigliabile installare un controller RAID completo del controller RAID Intel® RS3MC044 o Adaptec RAID 8805 class. Hanno processori I / O più efficienti e algoritmi avanzati per lavorare con HDD e SSD, incluso consentire un assemblaggio più veloce dell'array dopo la sostituzione di un disco guasto.

Dispositivi di archiviazione (SSD e HDD).
e) Affidabilità SSD e HDD .
In genere, l'affidabilità teorica dei dischi viene valutata dal parametro "Errori di lettura non recuperabili per bit letti", che può essere tradotto come "La probabilità di un errore di lettura irreversibile sul numero di bit letti". Mostra, dopo aver letto quanti dati dal disco, secondo le statistiche, dovrebbe essere previsto un errore non recuperabile.
Un altro parametro importante mostra la probabilità di un guasto del disco: AFR (tasso di guasto annuale) o "Tasso di guasto annuale".
La tabella seguente mostra i dati per il tipico SATA Enterprise HDD 7200 prm (SATA Raid Edition), SAS HDD Enterprise 15.000 prm, SATA SSD Enterprise.

Parametro

Tipo di disco

Enterprise SATA \\ SAS NL 7200 prm

Enterprise SAS 15.000 prm
(10.000 prm)

SSD Enterprise SATA

Errori di lettura non recuperabili per bit letti

Il volume a cui si prevede che statisticamente si leggerà un errore irrecuperabile

Tab. 2 - affidabilità teorica di HDD e SSD

La probabilità di errori irrecuperabili nell'unità SSD Enterprise SATA della serie Intel® SSD DC S3510 Series è 10 volte inferiore a quella dell'HDD SAS Enterprise 15.000 prm e 100 volte inferiore a quella dell'HDD SATA Enterprise 7200 prm. Pertanto, gli SSD Enterprise sono teoricamente più affidabili di qualsiasi HDD.

b) Successivamente, stimiamo prestazione SSD e HDD .
Dal punto di vista del database, che in realtà è 1C, i più importanti sono solo tre parametri del disco:
- La latenza, o tempo di risposta del disco, è misurata in microsecondi (meno è meglio);
- il numero di operazioni di lettura al secondo (Lettura disco / sec), misurato in IOPS (più è meglio);
- il numero di operazioni di scrittura al secondo (Scritture disco / sec), misurato in IOPS.
Riassumiamo questi tre parametri in una tabella:

Parametro

Tipo di disco

Enterprise SATA / SAS NL 7200 prm

Enterprise SAS 15.000 prm
(10.000 prm)

SSD Enterprise SATA

SSD Enterprise NVMe

Latenza (tempo di risposta lettura / scrittura disco), microsecondi

Lettura disco / sec (numero di operazioni di lettura al secondo), IOPS

Scritture disco / sec (numero di scritture al secondo), IOPS

Tab. 3 - Prestazioni HDD e SSD.

Come puoi vedere chiaramente dalla tabella, NVMe SSD (ad esempio, Intel® SSD DC P3600 Series) latenze supera l'HDD SAS aziendale 100 voltee di il numero di operazioni I / O al secondo - in 200 volte per la registrazione e in 1500 volte per leggere.
È ragionevole utilizzare le tecnologie HDD per ospitare database?

nel) Riscrivi il volume al giorno per le sale server SSD .
Oltre a tutti i "panini" nel modulo supercondensatore in caso di mancanza di corrente e moduli di crittografia hardware, gli SSD del server hanno il parametro più importante: la quantità stimata di riscrittura al giorno dalla capacità totale del disco SSD. Se parliamo di SSD per server Intel, intendiamo riscrivere quotidianamente questo volume per 5 anni, che è incluso nella garanzia. Questa opzione ti consente di ordinare i tuoi SSD in "prevalentemente lettura", "orientata alla lettura / lettura" e "carichi di lavoro con riscrittura pesante". In forma tabulare, si presenta così:

Disco SSD Intel

Sovrascrivi al giorno (dalla capacità)

Tabella 4. - La quantità di riscrittura SSD al giorno.

Di conseguenza, è possibile selezionare correttamente i dischi per l'attività nel server.
Ad esempio, un SSD Intel s3510 è sufficiente per l'archiviazione del registro OS e SQL.
Per l'archiviazione di DB e tempDB, Intel SSD s3610 o Intel SSD s3710 sono più adatti.

Esempi di progettazione di sottosistemi di dischi.
Grazie a quanto sopra, mettiamo insieme alcuni sottosistemi di dischi per requisiti diversi.
a) Server per 45 utenti, DB - 15 GB, crescita annuale - 4 GB, tempDB - 0,5 GB, registro SQL - 2 GB.
È economicamente possibile installare RAID1 da due dischi Intel SSD s3510 da 240 GB per le esigenze di OS e SQL Log, e RAID1 da due dischi Intel SSD s3510 da 120 GB per le esigenze di DB e tempDB. La scheda Intel® RAPID integrata è adatta come controller RAID.
b) Server per 100 utenti, DB - 55 GB, crescita all'anno - 15 GB, tempDB - 4 GB, registro SQL - 8 GB.
Per tale server, è possibile offrire RAID1 di due dischi Intel SSD s3510 da 240 GB per le esigenze del sistema operativo e del registro SQL e RAID1 di due dischi Intel SSD s3610 da 200 GB per le esigenze di DB e tempDB. Come controller RAID, il controller RAID Intel® RS3WC080 (hardware semplice, nessuna cache) è ottimale.
c) Server per 200 utenti, DB - 360 GB, crescita all'anno - 70 GB, tempDB - 24 GB, registro SQL - 17 GB.
Questo server è già abbastanza caricato. Per il sistema operativo, prendiamo ancora RAID1 da due unità Intel SSD s3510 da 240 GB. SQL Log e tempDB possono essere posizionati su un RAID1 dedicato di due unità Intel SSD s3510 da 120 GB. E per le tabelle DB, raccogliere RAID10 da quattro dischi Intel SSD s3610 da 400 GB. È opportuno utilizzare il controller RAID Intel® "avanzato" RS3MC044 come controller RAID.

virtualizzazione
Le prestazioni dei server moderni spesso consentono di posizionarli su uno fisico - un numero di quelli virtuali. Per un posizionamento ottimale, è consigliabile ricordare in che modo la virtualizzazione influisce su ciascuno dei componenti del server.
CPU e RAM sono le aree che subiscono la minor perdita di prestazioni in un ambiente virtuale. Di conseguenza, i componenti software che li utilizzano principalmente possono essere inseriti indolore in una macchina virtuale (VM). Questi includono 1C: Enterprise 8. Application Server x64, servizio Desktop remoto e IIS.
I sottosistemi I / O subiscono perdite notevolmente maggiori durante la virtualizzazione: 5-15% - l'interfaccia di rete e fino al 25% - il sottosistema del disco. Abbiamo un componente software SQL Serve che è sensibile alle prestazioni del sottosistema disco - è abbastanza logico posizionarlo non nella "VM", ma nell' "hardware" fisico.
Questo di solito viene fatto con server autonomi o un gruppo di server con 1C:
- Sistema operativo Windows e MS SQL Server sono installati sull'hardware;
- "1C: Enterprise 8. Application Server x64" viene avviato nella VM e "Licensing Server" nella stessa VM;
- in una macchina virtuale separata, il desktop remoto o il servizio IIS.
Quando si utilizzano più componenti software su un server, incl. su macchine virtuali diverse, è necessario fornire spazio aggiuntivo a livello di sottosistema del disco per il loro posizionamento. Di norma, si tratta di dischi di sistema con sistema operativo: vengono aumentati a 480 GB o più.

di riserva
Una pratica abbastanza comune è quella di installare due HDD di grande capacità (4-8 TB) in un server RAID1 in un server per archiviare copie locali di database, nonché nel ruolo di archiviazione dei file. Tale archiviazione non ha requisiti elevati per la velocità di accesso casuale. E la velocità lineare di lettura e scrittura è abbastanza sufficiente per archiviare backup giornalieri e file utente su di esso. Tale volume può essere assemblato su qualsiasi controller RAID disponibile e funzionerà ancora abbastanza rapidamente su Intel® RAPID.

E, per favore, non dimenticare che deve avere un server separato per le attività responsabili eccesso di nutrizione .

Per molti anni, ci sono stati dibattiti nei forum su ciò che può accelerare il lavoro del file 1C.

Certo, ci sono molte ricette, tra cui alcune che condivido sul corso.

Ma chiunque dica cosa, per il file 1C, il collo di bottiglia numero 1 è ovviamente il sottosistema del disco!

In realtà "File".

Le chiamate multiple al disco possono davvero rallentare tutto il lavoro in 1C Enterprise.

E se stiamo parlando dell'accesso multiutente, allora questo è ovvio qui.

Come si può risolvere questo problema?

Ovviamente, passando a HDD più veloci, dischi SAS, RAID, SSD o persino un modo per persone estreme di posizionare il database su un disco RAM, cioè nella RAM di un PC o server.

In realtà in questo articolo toccheremo tutti i metodi, ma presteremo particolare attenzione, ovviamente, a questi ultimi.

Dato che non ci sono articoli adeguati sulla rete che potrebbero rivelare molte delle sfumature sia dell'uso del disco 1C e RAM, sia dei test sensibili su tutti gli altri sottosistemi di dischi, tenendo conto del lavoro quotidiano in 1C-ke.

Ma ci sono molte domande qui:

Chi può usarlo e quando?

In quali situazioni?

Affidabilità?

Area di applicazione?

Test di velocità reali in varie operazioni 1C?

Cominciamo con i normali HDD.

Naturalmente, l'essenza del problema sta nella meccanica dell'HDD, che non fornisce le velocità richieste per il lavoro dei file in 1C (in particolare l'accesso multiutente).

Le prestazioni dell'HDD possono essere accelerate solo sostituendo l'HDD 5400 rpm con 7200 rpm.

Sì, la velocità di rotazione è importante e 7200 rpm è sicuramente più veloce di 5400.

Questo se vogliamo sentire la differenza. (Ma vale la pena notare che praticamente tutti gli HDD di oggi funzionano a 7200 velocità.)

I dischi a 7200 giri / min mostrano approssimativamente lo stesso risultato.

E che si tratti di SATA 2 o SATA 3.

SATA (Serial ATA) è un'interfaccia seriale per lo scambio di dati con dispositivi di memorizzazione delle informazioni.

Se insegui l'interfaccia SATA III (per HDD), allora non ci sarà velocità tangibile, solo numeri molto piccoli. (in seguito testeremo la velocità di un HDD con solo supporto SATA II e SATA III).

A proposito, puoi scoprire su quale interfaccia sta funzionando il tuo disco (e quale interfaccia supporta) usando il programma "CrystalDiskInfo".

SATA / 300MB / s - SATA 2

SATA / 600MB / s - SATA 3

- | SATA / 300 (vedere la Figura 1): la prima è la modalità operativa corrente del disco e la seconda SATA / 300 è la modalità operativa supportata. (A volte il primo non viene visualizzato, su dischi più vecchi).

Nella seconda figura, vediamo che sia il lavoro che il supporto HDD sono SATA 3, ovvero 600 MB / s. -la larghezza di banda dell'interfaccia.

(Torneremo alla questione delle interfacce più tardi).

È un'altra cosa se mettiamo i normali HDD in RAID - 0 (Stripe).

Con due o quattro dischi, RAID 0 offre un miglioramento significativo della velocità di trasferimento dei dati, ma non fornisce affatto affidabilità. Qualsiasi controller RAID economico e persino software è adatto per la sua costruzione. Adatto a coloro che hanno bisogno di ottenere le massime prestazioni dal file system su HDD convenzionali al minor costo.

La velocità è paragonabile anche ad alcuni vecchi SSD, ma purtroppo qui paghiamo per la velocità con affidabilità. Se almeno un disco si guasta, tutte le informazioni su entrambi i dischi vanno perse!

Pertanto, sono richiesti backup frequenti di database 1C con tale RAID.

Cosa rende la velocità?

I dati in RAID - 0 sono distribuiti uniformemente sui dischi dell'array, i dischi sono combinati in uno, che può essere suddiviso in più. Le operazioni di lettura e scrittura distribuite possono aumentare significativamente la velocità di lavoro, poiché diversi dischi leggono / scrivono simultaneamente la loro porzione di dati.

In altre parole, RAID 0 ignora abilmente la meccanica, a causa di questa velocità.

Questo è RAID-10

Ma il numero minimo di dischi richiesti per organizzare questo sistema è 4.

Naturalmente, in questo articolo stiamo parlando di un semplice 1C basato su file, quindi analizziamo solo le soluzioni di budget per le piccole aziende, dove i server entry-level non sono affatto disponibili.

Per lo stesso motivo, non analizzeremo dischi SAS più veloci e più costosi, protocolli iSCSI.

Solo le unità SSD sono più veloci del server SAS.

Qualche anno fa, non avrei consigliato di acquistare quelli "a stato solido" per lavorare in 1C.

Ma la mia opinione è cambiata sulla scia delle attuali unità SSD affidabili e relativamente economiche.

Ad esempio, SAMSUNG offre oggi una garanzia di 10 anni su alcune delle sue unità!

Intel, SanDisk, Corsair e altri 5 anni di garanzia SSD!

Gli SSD hanno iniziato a funzionare in modo molto più affidabile, più veloce e i controller sono diventati molto più intelligenti, quindi tali garanzie.

A proposito di prezzi

Naturalmente, le unità SSD a livello aziendale di INTEL ci costeranno un centesimo.

Ma ci sono anche buone alternative di bilancio.

Ad esempio, lo "stato solido" X400 da 256 GB di SanDisk ci costerà solo $ 95!

In realtà, lo testeremo anche in 1C, già nella prossima parte dell'articolo.

Il disco SanDisk X400 è buono, affidabile (5 anni di garanzia), veloce (lettura / scrittura fino a - 540/520 MB / s).

E poiché stiamo parlando di velocità, qui dovremmo prendere in considerazione un momento come SATA 3.

L'interfaccia SATA III (versione 3.x), ufficialmente nota come SATA 6Gb / s, è la terza generazione di interfacce SATA che funzionano a 6.0Gb / s. La larghezza di banda supportata dall'interfaccia è di 600 MB / s. Questa interfaccia è retrocompatibile con l'interfaccia SATA II -3 Gb / s.

La larghezza di banda SATA II è solo di 300 MB / s, il che è abbastanza per gli HDD, ma assolutamente non per gli SSD di oggi.

Per liberare il potenziale di un SSD, è necessaria un'interfaccia con almeno 600 MB / s di larghezza di banda, ovvero SATA III.

Ma non preoccuparti, se hai acquistato un PC o un server dopo il 2010, molto probabilmente lo avrai in stock. (Altrimenti, è necessario cambiare la scheda madre).

A proposito, vorrei attirare la vostra attenzione sui controller SATA III di diversi produttori (in una scheda madre), ad esempio Intel e Marvell, dove i primi possono trarre notevoli vantaggi in termini di velocità. (In realtà, l'altro giorno ne ero convinto anch'io. Intel era più veloce del 35% per cento).

Naturalmente, SATA III non è l'unica interfaccia per comunicare con un SSD.

Gli sviluppatori di quelli "a stato solido" si sono imbattuti nel throughput SATA III - 600 MB / s, e hanno lanciato sul mercato nuovi dispositivi con interfacce SATA Express, M.2, mSATA, PCI Express.

Esistono già velocità completamente diverse:

PCI Express x2 2.0 8Gb / s (800 MB / s)

SATA Express 10 Gb / s (1000 MB / s)

PCI Express x4 2.0 16Gb / s (1600MB / s)

PCI Express x4 3.0 32Gb / s (3200MB / s)

Sfortunatamente, questi dispositivi ora costano molti soldi ed è difficile chiamare una soluzione di questo tipo.

Per accelerare ulteriormente le prestazioni del tuo SSD, puoi creare RAID 0 da due unità, che raddoppierà anche la velocità del tuo SSD.

Ma cosa potrebbe esserci di più veloce di un SSD?

Ovviamente la RAM!

Le velocità qui non sono paragonabili a HDD, RAID o SSD.

Ci sono modi (software speciale) con cui puoi prendere una parte della RAM e creare un disco da essa.

Ora "RAM" è molto più economica di 5 anni fa e molti hanno 8-16 o anche più GB di RAM a bordo.

Il trucco è selezionare la dimensione richiesta (per la base 1C, il ritmo e se la dimensione lo consente, quindi spingere l'intera piattaforma su questo disco.).

L'ho già detto "Estremo" non è difficile indovinare il perché.

Se si verifica un errore improvviso nel sistema, perderai immediatamente il database e tutto ciò che sarà su questo disco!

Naturalmente, per funzionare davvero in 1C, che si trova su un disco RAM, sono necessarie apparecchiature server, RAM server, gruppi di continuità e hardware affidabile. (scheda madre, processore e così via).

+ backup frequenti.

Quindi, ovviamente, puoi lavorare in questo modo in 1C.

Ma cosa succede se non esiste un tale "hardware", perché siamo interessati alle soluzioni di budget?

Perché quindi smontare il lavoro di 1C su un disco RAM?

Ci sono amici! Naturalmente, non per il costante lavoro degli utenti in 1C, ma piuttosto per eseguire varie operazioni di routine.

Chiudere il mese, ripubblicare, eliminare, "tagliare la base" (qualsiasi altro lavoro simile) associato a un gran numero di documenti, libri di consultazione e tutto il resto.

Molte di queste operazioni possono richiedere giorni! Mentre ci sono diverse ore nella RAM!

Se, ad esempio, i tuoi utenti lavorano in 1C tramite un browser Web, allora possono essere inseriti interamente nella RAM, questo velocizzerà notevolmente il lavoro dell'utente in 1C tramite il web.

In altre parole, è possibile utilizzare temporaneamente un disco RAM per eseguire varie operazioni pesanti in 1C per accelerare il processo, quindi restituire il database a un SSD o HDD.

Questo è un buon trucco, puoi usarlo!

Al fine di avviare il vero file di test 1C sui sistemi di dischi sopra elencati, quasi tutto è pronto, ad eccezione del disco RAM.

Creiamolo!

Il programma gratuito "Dataram RAMDisk" ci aiuterà

La sua versione gratuita sarà sufficiente per creare un disco da 4 GB. (Altro - pagato ~ $ 21).

Il problema delle prestazioni 1C in modalità file è piuttosto acuto, soprattutto per le piccole aziende che non possono permettersi investimenti significativi in \u200b\u200battrezzature. Tuttavia, l'appetito dell'applicazione da una versione all'altra aumenta e il compito di aumentare le prestazioni a un costo di bilancio moderato sta diventando sempre più urgente. In questo caso, acquistare e posizionare database su un SSD sarebbe una buona soluzione.

Uno dei nostri clienti, una piccola società di contabilità, ha iniziato a lamentarsi del lento funzionamento di 1C: Enterprise. In realtà, il lavoro non molto veloce dell'applicazione è diventato completamente noioso dopo il passaggio da Contabilità 2.0 a Contabilità 3.0.

C'era un semplice terminal server su un Core i3 2120, 8 GB di RAM, con un array di dischi RAID 1 di due Western Digital RE4, che servivano da tre a sei utenti, ognuno dei quali lavorava con due o tre basi contemporaneamente.

L'analisi delle prestazioni ha immediatamente rivelato un collo di bottiglia: il sottosistema del disco (la schermata è stata scattata dopo l'installazione dell'SSD, quindi le unità logiche C: ed E :) appartengono all'array RAID.

Semplici calcoli hanno mostrato che il lancio di una sola infobase utilizza quasi completamente le prestazioni dell'array, circa 150 IOPS con l'attuale rapporto di lettura / scrittura - il limite effettivo per un mirror di due non i dischi più veloci. Ciò è indicato indirettamente dalla dimensione della coda.

Il lancio simultaneo di diversi database all'inizio della giornata lavorativa ha portato a un significativo rallentamento del server e ha ridotto la capacità di risposta del sistema. C'era anche una spiacevole premurosità quando si lavora con le riviste, quando si generano report, ecc.

Anche il test delle prestazioni dell'array ha mostrato un risultato scarso, più adatto agli standard odierni per le unità portatili.

È diventato chiaro che il sottosistema del disco deve essere aggiornato. Anche secondo stime preliminari, la creazione di un array produttivo basato su HDD di massa è stata limitata sia dal budget disponibile che dalle capacità fisiche dell'hardware, che nel caso non aveva semplicemente il numero richiesto di porte SATA e gabbie per dischi. Pertanto, è stato deciso di acquistare un SSD.

Poiché non erano previsti carichi elevati sul disco, la scelta è stata fatta principalmente per motivi di prezzo. Anche le caratteristiche di velocità sono sbiadite sullo sfondo, poiché l'interfaccia SATA-II è diventata il collo di bottiglia. Di conseguenza, è stato acquisito Corsair Neutron LAMD da 128 GB, che, una volta installato nel server, mostrava le seguenti caratteristiche di velocità:

Come puoi vedere, ci si aspetta che le operazioni di accesso sequenziale si scontrino con la larghezza di banda dell'interfaccia, ma nel nostro caso questo è di secondaria importanza. L'attenzione principale dovrebbe essere prestata alle operazioni di accesso casuale, che sono un ordine di grandezza superiore a quelle dei tradizionali HDD.

La prossima domanda da decidere è se creare un "mirror" dell'SSD e sacrificare TRIM per la tolleranza agli errori, oppure mantenere un singolo disco, scegliendo la velocità rispetto alla tolleranza agli errori. Va notato che i moderni SSD, oltre al comando TRIM, utilizzano le proprie tecnologie anti-degradazione, come la garbage collection, che consente loro di lavorare in modo abbastanza efficiente anche su sistemi senza TRIM. Il controller LAMD (Link_A_Media Devices) utilizzato in questa serie di SSD si distingue per tecnologie di garbage collection molto efficaci, a livello di unità a livello aziendale, il che generalmente non sorprende, dal momento che i suoi sviluppatori hanno lavorato nel segmento enterprise da molto tempo.

Poiché il volume dei documenti inseriti quotidianamente è ridotto, ci siamo limitati a un singolo SSD con backup giornalieri obbligatori. Indirettamente, l'effetto dell'utilizzo di un'unità a stato solido può essere stimato dal monitor delle prestazioni:

Il numero di operazioni I / O è aumentato in modo significativo, così come la velocità di scambio con il disco, mentre la lunghezza della coda non supera una. Questi sono ottimi indicatori, resta da verificare quanto le nostre azioni hanno accelerato il lavoro direttamente con 1C: Enterprise.

Per fare questo, abbiamo condotto un piccolo test espresso, durante il quale abbiamo misurato il tempo di caricamento dell'infobase e il tempo di ripubblicazione di gruppo di una serie di documenti per un certo periodo di tempo. Durante il test, è stata utilizzata la configurazione 1C: contabilità 3.0.27.7 sulla piattaforma 8.3.3.721 .

Inoltre, durante l'analisi delle prestazioni, abbiamo attirato l'attenzione sul fatto che nel suo lavoro 1C: Enterprise utilizza attivamente cartelle temporanee, che nel nostro caso si trovavano sul disco rigido. Pertanto, al fine di ottenere le massime prestazioni, dovrebbero essere trasferiti anche su un SSD, ma per coloro a cui piace salvare la risorsa di unità a stato solido, abbiamo incluso entrambe le opzioni nel test: quando i database si trovano sull'SSD e la cartella temporanea sull'HDD e quando l'applicazione viene utilizzata completamente dall'SSD.

Come puoi vedere, il trasferimento di infobase su SSD ha immediatamente ridotto il tempo di caricamento di oltre la metà e la riesecuzione è stata accelerata di circa il 30%. Allo stesso tempo, rimuovi completamente il problema con il calo della produttività quando lavori insieme.

Il trasferimento di cartelle temporanee su SSD può ridurre i tempi di caricamento di oltre tre volte e velocizzare il trasferimento di documenti circa due volte. C'è qualcosa a cui pensare qui anche per i sostenitori convinti del risparmio delle risorse del disco. La nostra opinione in merito è la seguente, se hai acquistato un SSD, dovresti utilizzarlo al meglio.

Facciamo una piccola digressione. Il disco che stiamo utilizzando Neutrone corsaro Esso ha risorsa 2-3K cicli di cancellazione / scrittura... Semplici calcoli mostrano che se si sovrascrive completamente l'intera capacità del disco ogni giorno, saranno necessari 5-8 anni per esaurire la risorsa. Inoltre, le statistiche mostrano che il motivo principale del guasto di un SSD durante il periodo di garanzia non è associato all'esaurimento della risorsa, ma è un difetto di fabbricazione o errori nel firmware.

In conclusione, vorrei dire che l'uso degli SSD oggi è forse l'unico modo efficace per aumentare significativamente le prestazioni di 1C: Enterprise in modalità file. E, soprattutto, conveniente anche per le piccole imprese.

Nel gruppo di LinkedIn "Professionisti dello storage" (a proposito, raccomando di prestare attenzione all'esistenza di gruppi di discussione su LinkedIn, può essere interessante) per una settimana l'argomento è stato discusso:
Percentuale di guasti delle unità SSD
Alcune citazioni da lì, che citerò senza traduzione, poiché tutto è chiaro (ogni paragrafo è un frammento di citazione dal messaggio di una singola persona in questa discussione).
Sto lavorando come appaltatore presso una banca nel Midwest e abbiamo SSD in EMC VMAX per circa 9 mesi. Non abbiamo ancora visto alcun errore
Una volta ho eseguito un tentativo di più settimane per bruciare SSD di vari fornitori. Li ho eseguiti completamente al 100% in modo casuale per circa un mese. Fusion IO su qualcosa come 30k IOP per unità, STEC / Intels circa 7k. Non sono mai riuscito a far fallire nessuno di loro.
Fusion IO ha fatto tante scritture quel mese quante una singola unità SAS poteva fare in oltre un decennio.

Abbiamo circa 150 unità SSD e abbiamo visto 1 guasto negli ultimi 12 mesi.
Sto usando SSD in un clariion cx4-960 per poco meno di 12 mesi senza errori (coprendo grandi ms sql tempdb).
In base alla mia esperienza (sistemi SSD inviati per la prima volta 2 anni e mezzo fa), il tasso di guasto dell'SSD SLC rientra nella stessa gamma delle unità rotanti.

Questo è tutto. C'è qualcosa a cui pensare per coloro che credono ancora che la risorsa SSD sia per la scrittura terribilmente limitatoche SSD non è affidabile e quando Enterprise Flash Drives funziona, muore come una finta chiavetta USB cinese Kinqston.

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam