Parametri del cluster 1s 8.3

Proprio ieri abbiamo aggiornato tutto il software del server. Tocchiamo forse le funzionalità più interessanti e nuove del cluster di server 1C:Enterprise 8.3.

Puoi vedere come configurare un cluster di server per 1C:Enterprise 8.2 nella sezione precedente. Non mi soffermerò su alcuni punti, che sono già stati descritti in precedenza.

COSA È CAMBIATO NEL CLUSTER 1C:Enterprise 8.3:

Innanzitutto, dopo aver installato il cluster 1C:Enterprise 8.3, è stato necessario creare dei flussi di lavoro. A quanto pare, i processi cluster vengono ora creati automaticamente a seconda del carico sul sistema contabile.

Un'esecuzione di prova dei processi in background del database principale ha causato un sovraccarico infinito del cluster 1C:Enterprise 8.3 rphost.exe e aggiuntivi rphost.exe Non volevo essere creato. Dopo aver analizzato le impostazioni, tutto è diventato chiaro.

Memoria massima del flusso di lavoroè la quantità di memoria che i processi di lavoro possono utilizzare insieme. È necessario prestare molta attenzione quando si imposta il parametro, misurato in byte. Se si imposta il valore errato (insufficiente per il normale funzionamento dell'utente), gli utenti riceveranno l'errore "Memoria libera insufficiente sul server 1C:Enterprise". Puoi anche ricevere questo errore quando la quota di memoria sul server 1C:Enterprise è esaurita.

Consumo di memoria sicuro per chiamata- consente di controllare il consumo di memoria durante una chiamata al server, misurato in byte. Se una chiamata utilizza più memoria del previsto, questa chiamata verrà completata all'interno del cluster 1C senza riavviare il processo di lavoro ( rphost.exe). Di conseguenza, il “perdente” che ha effettuato la chiamata al server perderà la sua sessione con il database senza compromettere il lavoro degli altri utenti.

La quantità di memoria del processo di lavoro fino alla quale il server è considerato produttivo- se questo parametro viene superato, il server nel cluster 1C:Enterprise 8.3 smetterà di accettare nuove connessioni.

Numero di sicurezza delle informazioni per processo- consente di isolare le basi informative per i processi lavorativi. Per impostazione predefinita, l'attuale cluster 1C:Enterprise 8.3 era impostato su "8", ma per diverse ore di funzionamento il server si è comportato instabile, le sessioni utente si sono bloccate. Dopo aver isolato ciascuna infobase (valore - "1") i problemi sono scomparsi.

Numero di connessioni per processo- Il valore predefinito è “128”. Poiché l'attuale database ha un carico molto elevato di attività in background (calcoli logistici, analisi dei listini prezzi, analisi della concorrenza, ecc.), si è deciso di ridurre il numero a “25”.

Le impostazioni del cluster 1C:Enterprise 8.3 stesso sono leggermente cambiate:


Livello di tolleranza agli errori- questo è il numero di server funzionanti che possono guastarsi contemporaneamente e ciò non porterà alla chiusura anomala degli utenti. I servizi di backup vengono avviati automaticamente nella quantità necessaria per garantire la tolleranza agli errori specificata. In tempo reale il servizio attivo viene replicato su quelli di backup.

Modalità di condivisione del carico- ci sono due opzioni per il parametro: "Priorità per prestazioni" - viene spesa più memoria del server e le prestazioni sono più elevate, "Priorità per memoria" - il cluster "1C: Enterprise 8.3" risparmia memoria del server.

Invece di una postfazione. Il cluster 1C:Enterprise 8.3 funziona notevolmente più velocemente e in modo più affidabile, la creazione di una sessione utente con una base di informazioni è molte volte più veloce, l'interfaccia in modalità compatibilità con 1C:Enterprise 8.2.16, si potrebbe dire, vola. Naturalmente ci sono delle sfumature, ma dove saremmo senza di esse? Buona fortuna per la configurazione del nuovo cluster 1C:Enterprise 8.3.

Il Server 8.3 è caratterizzato da un codice interno recentemente ridisegnato, anche se “dall'esterno” può sembrare che si tratti di un 8.2 leggermente modificato.

Il server è diventato più “autoconfigurabile”; alcuni parametri, come il numero di processi di lavoro, non vengono più creati manualmente, ma vengono calcolati in base alle descrizioni dei requisiti dei compiti di tolleranza ai guasti e di affidabilità.

È stato sviluppato un meccanismo di bilanciamento del carico, che può essere utilizzato sia per aumentare le prestazioni del sistema nel suo insieme, sia per utilizzare una nuova modalità di “risparmio di memoria”, che consente di lavorare “con memoria limitata” nei casi in cui la configurazione usato "gli piace divorare la memoria".

La stabilità del funzionamento quando si utilizzano grandi quantità di memoria sarà determinata dai nuovi parametri del server di produzione.


Particolarmente interessante è il parametro “Consumo sicuro di memoria per chiamata”. Per chi ha poca idea di cosa sia, meglio non allenarsi in modo “produttivo”. Il parametro "Dimensione massima della memoria dei processi di lavoro" consente, in caso di "overflow", di non mandare in crash l'intero processo di lavoro, ma solo una sessione "con il perdente". “La quantità di memoria per i processi di lavoro fino alla quale il server è considerato produttivo” consente di bloccare nuove connessioni non appena viene superata questa soglia di memoria.

Consiglio di isolare i processi lavorativi per base informativa, ad esempio specificando il parametro "Numero di sicurezza informatica per processo = 1". Con diversi database altamente caricati, ciò ridurrà l'influenza reciproca sia in termini di affidabilità che di prestazioni.

Un contributo separato alla stabilità del sistema è dato dalla “spesa” di licenze/chiavi. Nella versione 8.3 è diventato possibile utilizzare un "gestore delle licenze software", che ricorda il gestore "aladin". L'obiettivo è poter posizionare la chiave su una macchina separata.

È implementato come un altro "servizio" nel gestore cluster. Puoi utilizzare, ad esempio, un laptop "gratuito". Aggiungilo al cluster 1C 8.3, crea su di esso un gestore separato con il servizio "servizio licenze". Puoi inserire una chiave hardware nel tuo laptop o attivare licenze software.

Di grande interesse per i programmatori dovrebbero essere i "Requisiti di assegnazione delle funzionalità".

Quindi, su un laptop con una chiave di sicurezza, per non avviare utenti sul server del cluster, è necessario aggiungere "requisiti" per l'oggetto requisito "Connessione client alla sicurezza delle informazioni" - "Non assegnare", ad es. impedire ai processi di lavoro su questo server di elaborare le connessioni client.

Ancora più interessante è la possibilità di eseguire “solo lavori in background” sul server di produzione del cluster senza sessioni utente. In questo modo è possibile spostare attività (codice) ad alto carico su una macchina separata. Inoltre, è possibile eseguire un'attività in background di "chiusura del mese" utilizzando il "Valore di un parametro aggiuntivo" su un computer e l'attività in background "Aggiornamento dell'indice del testo completo" su un altro Il chiarimento avviene tramite l'indicazione "Valore di un parametro aggiuntivo”. Ad esempio, se specifichi BackgroundJob.CommonModule come valore, puoi limitare il lavoro del server di lavoro nel cluster solo ai processi in background con qualsiasi contenuto. Il valore BackgroundJob.CommonModule..- indicherà il codice specifico.

È chiaro che non ha senso ripetere la documentazione. Ma se qualcuno dovesse darmi qualche consiglio utile, amplierò l’articolo.

Innanzitutto, dopo aver installato il cluster 1C, è stato necessario creare dei flussi di lavoro. Come si è scoperto, i processi del cluster hanno iniziato a essere creati automaticamente in base al carico del database.

Un'esecuzione di prova dei processi in background del database principale ha causato il sovraccarico infinito di rphost.exe nel cluster 1C e l'ulteriore rphost.exe non voleva essere creato. Dopo aver analizzato le impostazioni, tutto è diventato chiaro.

Memoria massima del flusso di lavoroè la quantità di memoria che i processi di lavoro possono utilizzare insieme. È necessario prestare molta attenzione quando si imposta il parametro, misurato in byte. Se si imposta il valore errato (insufficiente per il normale funzionamento dell'utente), gli utenti riceveranno l'errore "Memoria libera insufficiente sul server 1C". Puoi anche ricevere questo errore quando la quota di memoria sul server 1C è esaurita.

Consumo di memoria sicuro per chiamata– consente di controllare il consumo di memoria durante una chiamata al server, misurato in byte. Se una chiamata utilizza più memoria del previsto, verrà completata all'interno del cluster 1C senza riavviare il processo di lavoro (rphost.exe). Di conseguenza, il “perdente” che ha effettuato la chiamata al server perderà la sua sessione con il database 1C senza compromettere il lavoro degli altri utenti.

in un GB – 1073741824 Byte, quindi in 2 GB – 2147483648 Byte

La quantità di memoria per i processi di lavoro fino alla quale il server è considerato produttivo: se questo parametro viene superato, il server nel cluster 1C smetterà di accettare nuove connessioni.

Numero di sicurezza delle informazioni per processo– permette di isolare le basi informative per i processi lavorativi. Per impostazione predefinita, l'attuale cluster 1C era impostato su " 8 “, ma nel corso di diverse ore di funzionamento, il server si è comportato in modo molto instabile, le sessioni utente si sono bloccate. Dopo aver isolato ciascuna infobase (valore – “1”) i problemi sono scomparsi.

Numero di connessioni per processo- valore di default " 128 “. Poiché l'attuale database ha un carico molto elevato di attività in background (calcoli logistici, analisi dei listini prezzi, analisi della concorrenza, ecc.), si è deciso di ridurre il numero a “25”.

Le impostazioni del cluster 1C stesso sono leggermente cambiate:

Livello di tolleranza agli errori– questo è il numero di server funzionanti che possono guastarsi contemporaneamente e ciò non porterà alla cessazione anomala degli utenti. I servizi di backup vengono avviati automaticamente nella quantità necessaria per garantire la tolleranza agli errori specificata. In tempo reale il servizio attivo viene replicato su quelli di backup.

Modalità di condivisione del carico– ci sono due opzioni per il parametro: “Priorità per prestazione” – viene spesa più memoria del server e le prestazioni sono più elevate, “Priorità per memoria” – il cluster 1C risparmia memoria del server.

Il Server 8.3 è caratterizzato da un codice interno recentemente ridisegnato, anche se “dall'esterno” può sembrare che si tratti di un 8.2 leggermente modificato.

Il server è diventato più “autoconfigurabile”; alcuni parametri, come il numero di processi di lavoro, non vengono più creati manualmente, ma vengono calcolati in base alle descrizioni dei requisiti delle attività di tolleranza ai guasti e di affidabilità.

Ciò riduce la probabilità di errori di configurazione del server e abbassa i requisiti di qualificazione per gli amministratori.

È stato sviluppato un meccanismo di bilanciamento del carico, che può essere utilizzato sia per aumentare le prestazioni del sistema nel suo insieme, sia per utilizzare una nuova modalità di “risparmio di memoria”, che consente di lavorare “con memoria limitata” nei casi in cui la configurazione usato "gli piace divorare la memoria".

La stabilità del funzionamento quando si utilizzano grandi quantità di memoria sarà determinata dai nuovi parametri del server di produzione.

Particolarmente interessante è il parametro “Consumo sicuro di memoria per chiamata”. Per chi ha poca idea di cosa sia, meglio non allenarsi in modo “produttivo”. Il parametro “Dimensione massima della memoria dei processi di lavoro” consente, in caso di “overflow”, di non mandare in crash l'intero processo di lavoro, ma solo una sessione “con il perdente”. “La quantità di memoria del processo di lavoro fino alla quale il server è considerato produttivo” consente di bloccare nuove connessioni non appena viene superata questa soglia di memoria.

Consiglio di isolare i processi lavorativi per base informativa, ad esempio specificando il parametro "Numero di sicurezza informatica per processo = 1". Con diversi database altamente caricati, ciò ridurrà l'influenza reciproca sia in termini di affidabilità che di prestazioni.

Un contributo separato alla stabilità del sistema è dato dalla “spesa” di licenze/chiavi. Nella versione 8.3 è diventato possibile utilizzare un "gestore delle licenze software", che ricorda il gestore "aladin". L'obiettivo è poter posizionare la chiave su una macchina separata.

È implementato come un altro "servizio" nel gestore cluster. Puoi utilizzare, ad esempio, un laptop "gratuito". Aggiungilo al cluster 1C 8.3, crea su di esso un gestore separato con il servizio "servizio licenze". Puoi inserire una chiave hardware nel tuo laptop o attivare licenze software.

Di grande interesse per i programmatori dovrebbero essere i "Requisiti di assegnazione delle funzionalità".

Requisiti per la funzionalità assegnata di 1c

Pertanto, su un laptop con una chiave di sicurezza, per non avviare utenti sul server del cluster, è necessario aggiungere "requisiti" per l'oggetto requisito "Connessione client alla sicurezza delle informazioni" - "Non assegnare", ad es. impedire ai processi di lavoro su questo server di elaborare le connessioni client.

Ancora più interessante è la possibilità di eseguire “solo lavori in background” sul server di produzione del cluster senza sessioni utente. In questo modo è possibile spostare attività (codice) ad alto carico su una macchina separata. Inoltre, è possibile eseguire un'attività in background di "chiusura del mese" utilizzando il "Valore di un parametro aggiuntivo" su un computer e l'attività in background "Aggiornamento dell'indice del testo completo" su un altro Il chiarimento avviene tramite l'indicazione "Valore di un parametro aggiuntivo”. Ad esempio, se specifichi BackgroundJob.CommonModule come valore, puoi limitare il lavoro del server di lavoro nel cluster solo ai processi in background con qualsiasi contenuto. Valore BackgroundJob.CommonModule.<Имя модуля>.<Имя метода>– indicherà un codice specifico.

Oltre alla versione del file, il sistema 1C:Enterprise può funzionare con basi di informazioni in una versione client-server. In quest'ultimo caso si intende un'architettura composta da più strati software, rappresentati schematicamente nella figura seguente.

  • Applicazioni client, thin client e client web- questo è "1C:Enterprise" in varie modalità di avvio con cui lavora l'utente finale. Per le applicazioni client e i thin client, per un client Web è sufficiente un browser Web sui computer degli utenti (o su di essi).
  • Cluster di server "1C:Enterprise"è una raccolta di processi di lavoro in esecuzione su uno o più computer e un elenco di basi di informazioni che si trovano in questo cluster. Nel cluster del server viene eseguito tutto il lavoro degli oggetti dell'applicazione, vengono effettuati i preparativi per la visualizzazione dei moduli (lettura degli oggetti dell'infobase, compilazione dei dati dei moduli, disposizione degli elementi, ecc.) e l'interfaccia di comando, la generazione di report e l'esecuzione di lavori in background. I client visualizzano solo le informazioni preparate nel cluster di server. Inoltre, i file di servizio vengono archiviati sul server del cluster 1C:Enterprise, nonché un registro di registrazione dell'infobase.
  • Server della banca dati— sul server del database avviene l'archiviazione diretta e il lavoro con i dati, forniti da uno dei seguenti sistemi di gestione del database (DBMS) supportati dal sistema 1C:Enterprise:
    • Microsoft SQL Server da Microsoft SQL Server 2000 e versioni successive;
    • PostgrageSQL dalla versione 8.1;
    • IBM DB2 dalla versione 9.1;
    • Oracle Database dalla versione 10g Release 2.
  • server web richiesto solo per i client Web e una delle opzioni thin client. Fornisce l'interazione di questi tipi di connessioni con un cluster di server 1C:Enterprise.

Vale anche la pena notare che ogni livello software non deve necessariamente trovarsi su un computer fisico separato. Un cluster di server può trovarsi sullo stesso computer con un server database, un server web, ecc. Nelle piccole organizzazioni, ad esempio, si trova spesso la seguente struttura di lavoro:

In questo articolo descriverò l'installazione del server 1C:Enterprise versione 8.3.4.389 (per altre versioni della piattaforma 1C:Enterprise 8.1, 8.2 e 8.3 i passaggi sono simili) su un computer che esegue Windows Server 2008 (R2) o Windows Server 2012 (R2). Microsoft SQL Server 2008 (R2) o Microsoft SQL Server 2012 sarà considerato come un DBMS Per questo avremo bisogno di:

  1. Un computer che soddisfi i requisiti di sistema per l'installazione del server 1C:Enterprise e con il sistema operativo installato su questo computer o .
  2. Un computer per un server di database, che esegue anche un sistema operativo o (può essere il computer del passaggio 1).
  3. Diritti di amministratore locale su entrambi i computer.
  4. Kit di distribuzione per l'installazione del server 1C:Enterprise 8.
  5. Licenza software o chiave di protezione HASP4 Net per il server 1C:Enterprise.
  6. Kit di distribuzione per l'installazione di Microsoft SQL Server 2008 (R2) o Microsoft SQL Server 2012.

2. Installazione del DBMS MS SQL Server

Installiamo il DBMS MS SQL Server sul computer che funge da server del database. Per far funzionare il sistema 1C:Enterprise è sufficiente installare i seguenti componenti:

  • Servizi del motore di database
  • Strumenti di gestione - Di base
    • Strumenti di gestione: completi.

Seleziona le opzioni di ordinamento " Cirillico_General_CI_AS" Dettagli sull'installazione dei sistemi

3. Configurazione di Windows Firewall per il funzionamento DBMS

Se il server database e il server cluster 1C:Enterprise si trovano su computer fisici diversi, è necessario configurare Windows Firewall sul server database in modo che il server 1C:Enterprise possa funzionare con il DBMS, ovvero aprire connessioni in entrata sulla porta 1433 (per l'istanza predefinita di SQL Server).

  • Ho scritto in dettaglio sulla configurazione di Windows Firewall per Microsoft SQL Server 2008 (R2) / 2012.

4. Aggiunta di un utente a MS SQL Server

Successivamente, aggiungeremo un utente separato a MS SQL Server, al quale verranno collegati i database del server 1C:Enterprise. Questo utente sarà anche il proprietario di questi database. L'utente da aggiungere deve essere autorizzato sul server utilizzando una password e avere il seguente insieme di ruoli: dbcreator, amministratore del processo, pubblico. Dettagli sull'aggiunta di un utente a

  • Microsoft SQL Server 2008 (R2) ho scritto.
  • Ho scritto Microsoft SQL Server 2012.

5. Installazione del server 1C:Enterprise

Passiamo ora all'installazione dei file del server 1C:Enterprise e all'avvio del servizio corrispondente. L'installazione richiede un kit di distribuzione della piattaforma tecnologica 1C:Enterprise. Dall'elenco delle distribuzioni fornite, sono adatte le seguenti:

  • Piattaforma tecnologica 1C:Enterprise per Windows: consente l'installazione di un server 1C:Enterprise a 32 bit
  • 1C:Enterprise server (64 bit) per Windows: consente l'installazione di server 1C:Enterprise sia a 32 bit che a 64 bit

(Esiste anche una versione estesa del server KORP 1C:Enterprise 8.3, i dettagli possono essere trovati sul sito web 1C)

Apri la directory con i file di installazione del server 1C:Enterprise ed esegui il file setup.exe.

Verrà avviato l'assistente per l'installazione del sistema 1C:Enterprise. Nella prima pagina clicca su " Ulteriore».

Nella pagina successiva è necessario selezionare i componenti che verranno installati; abbiamo bisogno dei seguenti componenti:

  • Server 1C: Aziendale— 1C: componenti server aziendali
  • Amministrazione del server 1C:Enterprise 8— componenti aggiuntivi per l'amministrazione di un cluster di server 1C:Enterprise

Su questo computer possono essere installati anche i restanti componenti (l'elenco dei componenti può dipendere dalla specifica distribuzione), a seconda delle necessità. Dopo aver fatto la tua scelta, clicca su “ Ulteriore».

Selezionare la lingua dell'interfaccia che verrà utilizzata per impostazione predefinita e fare clic su " Ulteriore».

Se il server 1C:Enterprise è installato come servizio Windows (e nella maggior parte dei casi dovrebbe essere installato come tale), consiglio di creare immediatamente un utente separato sotto il quale verrà avviato il servizio creato. Per questo

  • Lascia la bandiera "accesa" Installa 1C: server Enterprise come servizio Windows (consigliato)»;
  • Spostiamo l'interruttore corrispondente su “ Crea l'utente USR1CV8».
  • Immettere due volte la password per l'utente da creare. Per impostazione predefinita, la password deve essere conforme ai criteri password di Windows. Puoi leggere di più a riguardo:
    • Per Microsoft Windows Server 2008 (R2) - ;
    • Per Microsoft Windows Server 2012 - .

Puoi anche selezionare un utente esistente per eseguire il server 1C:Enterprise. In questo caso, l'utente selezionato deve avere i seguenti diritti:

  • Accedere come servizio
  • Accedere come processo batch
  • Utenti del registro delle prestazioni.

Inoltre, all'utente devono essere concessi i diritti necessari sulla directory dei file di servizio del server (per impostazione predefinita C:\Programmi\1cv8\srvifinfo per 64 bit e C:\Programmi (x86)\1cv8\srvifinfo per un server a 32 bit).

Utente creato automaticamente USR1CV8 avrà tutti i diritti di cui sopra.

Dopo aver inserito i parametri appropriati, fare clic su " Ulteriore».

E infine, fai clic su “ Installare» per avviare l'installazione. Ciò copierà i file dei componenti selezionati, creerà file di configurazione, registrerà i componenti del programma, creerà collegamenti e avvierà anche il servizio server 1C:Enterprise.

Una volta completata l'installazione, l'assistente richiederà di installare il driver di protezione: HASP Device Driver. Se si utilizza una licenza software per il server 1C:Enterprise, non è necessario installare il driver. Lascia o rimuovi la bandiera " Installa il driver di protezione" e fare clic su " Ulteriore».

Affitto 1C:ERP Soluzione cloud
da 2000 rub./mese.

Gestione delle consegne Per le società commerciali e di corriere!

1C:EDO Scopri tutti i vantaggi della gestione elettronica dei documenti!

Fine del supporto
"1C:KA ed. 1,1"!
Organizzare la transizione a “1C:KA 2.4”

Noleggia un server 1C
nella nuvola
Lavora in 1C da remoto e risparmia fino al 70%!


Cluster di server 1C: creazione di sistemi ad alto carico

Ordina un ordine dimostrativo

Questo articolo prenderà in considerazione diverse opzioni per la struttura 1C per sistemi ad alto carico (da 200 utenti attivi) costruiti sulla base di un'architettura client-server: i loro vantaggi e svantaggi, i costi di installazione e i test comparativi sulle prestazioni di ciascuna opzione.

Non descriveremo, valuteremo e confronteremo gli schemi classici generalmente accettati e conosciuti da tempo per la costruzione di una struttura di server 1C, come un server 1C separato e un server DBMS separato o un cluster Microsoft SQL con un cluster 1C. Esistono moltissime revisioni di questo tipo, comprese quelle condotte dagli stessi produttori di prodotti software. Offriremo una panoramica degli schemi di progettazione della struttura 1C che sono stati riscontrati negli ultimi anni nei nostri progetti IT per medie e grandi imprese.

Requisiti per sistemi 1C altamente caricati

I sistemi 1C altamente caricati che lavorano con grandi quantità di dati 24 ore su 24, 7 giorni su 7, 365 giorni all'anno sono soggetti a fattori di rischio che di solito non vengono osservati in situazioni standard. Di conseguenza, per eliminarli e prevenirli, è necessario l'uso di speciali schemi di architettura 1C e nuove tecnologie.

Resistenza ai disastri DBMS. Nel processo di progettazione dell'architettura 1C, l'accento è posto sulla potenza di calcolo e sull'elevata disponibilità dei servizi, espressa nel loro clustering. Per impostazione predefinita, i server 1C:Enterprise sono in grado di funzionare in un cluster ridondante e per un cluster DBMS vengono solitamente utilizzati un sistema di archiviazione dati industriale (SDS) e una tecnologia di clustering (ad esempio Microsoft SQL Cluster). Tuttavia, la situazione diventa disastrosa quando si verificano problemi con il sistema di storage stesso (spesso, secondo la nostra esperienza degli ultimi anni, si tratta di problemi software). Quindi l'ingegnere IT si trova improvvisamente ad affrontare due problemi: dove ottenere i dati aggiornati e dove distribuirli nel più breve tempo possibile, poiché non è disponibile un sistema di archiviazione dati con il volume richiesto di un array di dischi veloce.

Requisiti di sicurezza del database. Lavorando con progetti di medie e grandi imprese, incontriamo regolarmente requisiti per la protezione dei dati personali (in particolare, per rispettare i paragrafi della legge federale-152). Una delle condizioni per soddisfare questi requisiti è garantire un'adeguata sicurezza dei dati personali, che richiede la crittografia del database 1C.

Quando si sviluppa uno schema per sistemi 1C ad alto carico, le persone di solito prestano attenzione prima di tutto ai parametri del sistema di input/output del disco su cui si trovano i database. Ma oltre a questo c'è anche un utilizzo attivo delle risorse della CPU e del consumo di RAM da parte del server 1C. Spesso è proprio questo tipo di risorsa che manca; le possibilità di upgrade hardware dell'attuale server 1C sono esaurite ed è necessario aggiungere nuovi server 1C funzionanti con un unico server DBMS.

Schemi per l'organizzazione di cluster di server 1C

Schema con un cluster di server 1C connesso ad un cluster con replica SQL AlwaysOn sincrona tramite IP. Questo schema è una delle opzioni di alta qualità per risolvere il problema della resistenza ai disastri del database 1C (vedi Figura 1). La tecnologia di clustering del database SQL AlwaysOn si basa sul principio della sincronizzazione online delle tabelle SQL tra il server principale e quello di backup senza l'intervento dell'utente finale. Utilizzando SQL Listener, è possibile passare a un server SQL di backup in caso di guasto di quello principale, che consente di chiamare questo sistema un cluster SQL a tutti gli effetti a prova di disastro, grazie all'utilizzo di due server SQL indipendenti . La tecnologia SQL Always On è disponibile solo nell'edizione Microsoft SQL Enterprise.


Figura 1 - diagramma di un cluster di server 1C + SQL AlwaysOn


Il secondo schema è identico al primo, viene aggiunta solo la crittografia dei database SQL sui server principale e di backup. Abbiamo già accennato al fatto che il lavoro con recenti progetti IT ha dimostrato che le aziende hanno iniziato a prestare molta più attenzione alla questione della sicurezza dei dati, per vari motivi: i requisiti della legge federale-152, l'acquisizione di server da parte di predatori, fughe di dati nel cloud , e simili. Consideriamo quindi questa versione dello schema 1C abbastanza rilevante (vedi Figura 2).


Figura 2 - diagramma di un cluster di server 1C + SQL AlwaysOn con crittografia


Un cluster di server "attivo-attivo" 1C collegati a un singolo server DBMS tramite IP. In contrasto con le esigenze di tolleranza agli errori e di sicurezza, alcune strutture richiedono principalmente maggiori prestazioni, per così dire, “tutta la potenza di calcolo”. Pertanto, viene data la massima priorità all'aumento del numero di cluster di server computing 1C, in cui la moderna piattaforma 1C consente di differenziare diversi tipi di calcoli e lavori in background (vedere Figura 3). Naturalmente, anche la configurazione delle risorse principali del server SQL dovrebbe essere all'altezza degli standard, ma il server del database stesso è presentato al singolare (a quanto pare, il calcolo viene effettuato per il backup tempestivo dei database).


Figura 3 - diagramma di un cluster di server 1C con un server DBMS


Server 1C e DBMS su un server hardware con SharedMemory. Poiché i nostri test pratici si concentrano sul confronto delle prestazioni di diversi schemi, è necessario un qualche tipo di standard per confrontare diverse opzioni (vedere Figura 4). Di norma, a nostro avviso, è necessario prendere il layout del server 1C e del DBMS su un server hardware senza virtualizzazione con interazione tramite SharedMemory.


Figura 4 - diagramma del server 1C e DBMS su un server hardware con SharedMemory


Di seguito è riportata una tabella comparativa generale che mostra i risultati complessivi per i criteri chiave per valutare l'organizzazione della struttura del sistema 1C (vedere Tabella 1).


Criteri per la valutazione delle architetture 1C Cluster 1C + SQL sempre attivo Cluster 1C + SQL AlwaysOn con crittografia
Cluster 1C con un server DBMS
Memoria condivisa classica 1C+DBMS
Facilità di installazione e manutenzione Soddisfatto Soddisfatto Bene Grande
tolleranza ai guasti Grande Grande Soddisfatto Non applicabile
Sicurezza Soddisfatto Grande Soddisfatto Soddisfatto
Budgeting Soddisfatto Soddisfatto Bene Grande

Tabella 1: confronto delle opzioni per la costruzione di sistemi 1C


Come puoi vedere, rimane un criterio importante, il cui significato resta da determinare: la produttività. Per fare ciò effettueremo una serie di prove pratiche su un banco prova dedicato.

Descrizione della metodologia di test

La fase di test consiste in due strumenti chiave per la generazione del carico sintetico e la simulazione del lavoro dell'utente in 1C. Questo è il test Gilev (TPC-1C) e il "Test Center" del toolkit 1C: Instrumentation.

Il test di Gilev. Il test appartiene alla sezione dei test integrali universali multipiattaforma. Può essere utilizzato sia per le versioni file che per quelle client-server di 1C:Enterprise. Il test valuta la quantità di lavoro per unità di tempo in un thread ed è adatto per valutare la velocità dei caricamenti a thread singolo, inclusa la velocità di rendering dell'interfaccia, l'impatto dei costi delle risorse sul mantenimento di un ambiente virtuale, la ripubblicazione di documenti, la chiusura del mese, calcolo buste paga, ecc. L'universalità consente di effettuare una valutazione generalizzata delle prestazioni senza essere vincolati a una specifica configurazione tipica della piattaforma. Il risultato del test è una valutazione riepilogativa del sistema 1C misurato, espressa in unità convenzionali.

"Centro test" specializzato di 1C: toolkit di strumentazione. Test Center è uno strumento per automatizzare i test di carico multiutente dei sistemi informativi sulla piattaforma 1C:Enterprise 8. Con il suo aiuto, puoi simulare il funzionamento di un'impresa senza la partecipazione di utenti reali, che ti consente di valutare l'applicabilità, prestazioni e scalabilità di un sistema informativo in condizioni reali. Utilizzando gli strumenti 1C: KIP, sulla base dei processi e dei casi di test, viene generata la matrice "Elenco di oggetti del layout del database ERP 2.2" per lo scenario di test delle prestazioni. Nel layout del database 1C: ERP 2.2, i dati vengono generati mediante elaborazione secondo le Informazioni di riferimento normativo (RNI):

  • Diverse migliaia di voci della nomenclatura;
  • Diverse organizzazioni;
  • Diverse migliaia di controparti.

Il test viene effettuato all'interno di diversi gruppi di utenti. Il gruppo è composto da 4 utenti, ognuno dei quali ha il proprio ruolo e un elenco di operazioni sequenziali. Grazie al meccanismo flessibile per l'impostazione dei parametri per il test, è possibile eseguire un test su un numero diverso di utenti, che consentirà di valutare il comportamento del sistema sotto carichi diversi e identificare i parametri che potrebbero portare a una diminuzione degli indicatori di prestazione. Vengono eseguiti 3 test in 3 iterazioni in cui lo sviluppatore 1C esegue un test emulando il lavoro dell'utente e misura il tempo di esecuzione di ciascuna operazione. Tutte e tre le iterazioni vengono misurate per ciascuno degli schemi di struttura 1C. Il risultato del test è quello di ottenere il tempo medio di esecuzione dell'operazione per ciascun documento della matrice.

Gli indicatori del “Test Center” e del test Gilev si rifletteranno nella tabella riassuntiva 2.

Banco di prova

Server di accesso terminale– macchina virtuale, utilizzata per gestire gli strumenti di test:

  • CPU virtuale: 16 core da 2,6 GHz
  • RAM: 32GB
  • I\o: Intel SATA SSD Raid1
  • RAM: 96 GB
  • I\o: Intel SATA SSD Raid1

1C Server e DBMS: server fisico

  • CPU - Processore Intel Xeon E5-2670 8C 2,6GHz – 2 pz.
  • RAM: 96 GB
  • I\o: Intel SATA SSD Raid1
  • Ruoli: 1C Server 8.3.8.2137, MS SQL Server 2014 SP 2

conclusioni

Possiamo concludere che, in base al tempo di funzionamento medio, il più ottimale è lo schema n. 3 “Cluster di server 1C “attivo-attivo” collegati a un singolo server DBMS tramite protocollo IP” (vedere Tabella 2). Per garantire la tolleranza agli errori di tale architettura, consigliamo di creare un classico cluster di failover MSSQL con il database posizionato su un sistema di storage separato.

È importante notare che l'equilibrio ottimale di fattori per ridurre al minimo i tempi di inattività, la tolleranza agli errori e la sicurezza dei dati è nello schema n. 1 "Cluster di server 1C collegati a un cluster con replica sincrona SQL AlwaysOn tramite IP", mentre le prestazioni diminuiscono rispetto all'opzione più produttiva è di circa il 10%.

Come possiamo vedere dai risultati del test, la replica sincrona del database SQL AlwaysOn ha un impatto piuttosto negativo sulle prestazioni. Ciò è spiegato dal fatto che il sistema SQL attende la fine della replica di ogni transazione sul server di backup, non consentendo di lavorare con il database in questo momento. Ciò può essere evitato impostando la replica asincrona tra server MSSQL, ma con tali impostazioni non otterremo il passaggio automatico delle applicazioni al nodo di backup in caso di guasto. Il passaggio dovrà essere effettuato manualmente.

Basato sul cloud EFSOL, offriamo ai nostri clienti Cluster di server 1C da affittare. Ciò ti consente di risparmiare in modo significativo sulla creazione della tua architettura con tolleranza agli errori per lavorare con 1C.



Diagramma dell'architettura 1C

Tempo medio per completare un'operazione, sec