Eksempler på 1c ftp-tilkobling og sikker modus. Kopier filen fra SFTP-serveren

1C: Regnskap er regnskapsproduktene til 1C-selskapet. 1C: Regnskap er populært i Russland og i utlandet, det er markedsleder. Det er et godt og praktisk verktøy for å føre regnskap og skatteoppføringer i et selskap. Det er verdt å si med en gang at 1C: Regnskapsstandarder fullt ut overholder kravene i lovgivningen i Den russiske føderasjonen.

1C: Regnskap lar deg fremskynde virksomheten til selskapet som helhet, samt redusere prosentandelen av feil betydelig.

Dette er et brukerorientert program: det har et praktisk og behagelig grensesnitt, klare og enkle kontroller. 1C-selskapet slipper jevnlig oppdateringer; Gjeldende versjon er 3.0.51.25 (fra 08/01/2017), plattformversjonen er 1C: Accounting 8.

1C: Regnskap er en god løsning for en bedrift av alle størrelser. Programmet har god skalerbarhet, så det kan brukes like vellykket av både små selskaper og store bedrifter. Arbeidsområdene til selskaper som bruker 1C: Regnskap kan også være helt forskjellige: produsere alle varer, selge detaljhandel og engros, levere tjenester til publikum og andre.

1C: Regnskap er en effektiv løsning som lar deg utføre alle regnskapsoppgaver korrekt.I dette tilfellet kan dataregistrering utføres ikke bare av regnskapsførere, men også av andre ansatte i selskapet.

Til slutt, 1C: Accounting har god og rask teknisk støtte, som gjør at alle nye problemer kan løses så raskt som mulig.

1C: Accounting 8 er 1C: Enterprise 8 teknologiplattform og konfigurasjon, applikasjonsløsning Enterprise Accounting.

1C: Regnskap på en egen server

Programmet tillater samtidig arbeid av ansatte i forskjellige avdelinger og divisjoner. Samtidig kan du ved å bruke nettklienten jobbe fra hvor som helst, ikke bare fra kontoret og hjemmet, men også på en forretningsreise, reise og så videre.

Hovedfordelen med 1C: Regnskap er en mulighetutføre store, komplekse databehandlingsoperasjoner på serveren(en egen kraftig datamaskin), vil brukerne motta et ferdig resultat. I dette tilfellet øker hastigheten på programmet betydelig.

Hvis vi snakker om et lokalt nettverk, er det ikke nødvendig med ytterligere innstillinger - 1C: Regnskap er umiddelbart klar for arbeid.

Hvilken server skal du velge?

Når du velger en server for 1C: Regnskap, må du tenke på følgende spørsmål:

  • Vil 1C: Accounting-serveren og Microsoft SQL Server være plassert på samme maskin?
  • Hvor mange brukere vil jobbe med dataene samtidig?
  • Hva er den omtrentlige mengden data som vil være involvert?

Logikken her er enkel - jo flere som bruker systemet, jo mer data er i bruk, desto kraftigere må serveren velges.

Operativsystem og DBMS

For 1C: Accounting er det bedre å bruke en server med Windows Server 2012.

Windows Server 2012 er et serveroperativsystem fra Microsoft. Dette operativsystemet erstattet Windows Server 2008, utgivelsen fant sted i 2012. Utgivelsen fant sted i oktober 2013 Windows Server 2012 R2.

Dette operativsystemet kommer i fire utgaver: Foundation, Essentials, Standard og Datacenter.

Windows Server 2012 er et raskt og pålitelig operativsystem, hvis funksjoner lar deg oppnå god ytelse. Dette operativsystemet bruker Active Directory, en katalogtjeneste som lagrer informasjon om nettverksobjekter. Active Directory gjør det mye enklere å designe, distribuere og administrere nettverkskataloger.

Fordelene med Windows Server 2012 er hybriditeten og tilpasningsevnen til å fungere i forskjellige miljøer. Mer enn 70 % av alle x86-servere kjører Windows Server 2012-operativsystemer.


Windows Server 2012 lar deg også brukeMicrosoft SQL Server(MS SQL) - et DBMS som er preget av høy hastighet og samme høye sikkerhetsnivå. MS SQL bør brukes til mellomstore og store prosjekter med høy belastning (som definitivt inkluderer 1C: Regnskap).

MS SQL er et DBMS som beskytter data mot uautorisert tilgang ved å integrere nettverkssikkerhet med en sikkerhetsserver. Når du arbeider med MS SQL, overføres minimal informasjon over nettverket: brukerforespørsler behandles og resultatene deres returneres. Dette forbedrer responstiden betraktelig.

MS SQL er enkel å installere; Det finnes versjoner for x86 og x64 (MS SQL kan fungere med Windows av alle versjoner).

Den eneste ulempen med MS SQL er at DBMS bare fungerer på Windows, men siden det for 1C: Accounting er best å bruke en server med Windows Server 2012, mister denne ulempen sin relevans.

Mange MS SQL-brukere legger merke til at det er enkelt å jobbe med dette DBMS; Det krever ikke dyp teknisk kunnskap for å jobbe med det. MS SQL gjør det mulig å gjøre endringer i datastrukturen og ta backup.

Makt

Når du beregner nødvendig kraft, er det verdt å huske toppbelastninger, samt det faktum at antall brukere og datavolumet vil vokse. Derfor, når du velger serverparametere, må du først fokusere på noe gjennomsnittlig og optimalt - mer kraft enn nødvendig vil ikke øke ytelsen, men hvis den er mindre, vil brukerne føle alvorlige ulemper.

La oss si at på én server vil du ha et operativsystem, en DBMS og 1C: Accounting. I dette tilfellet trenger du minst 2 GB RAM for databasen og operativsystemet og ytterligere 4 GB for selve programmet. Det vil si 8 GB. Denne beregningen er relevant for de selskapene som bruker 1 database, med ca 10 ansatte som jobber med den. Hvis vi snakker om 20-30 ansatte og flere databaser, så trenger du 16 GB eller mer. Hvis det er rundt 40-60 brukere, er det tilrådelig å ha minst 32 GB RAM.

prosessor

Antall prosessorkjerner avhenger også direkte av hvor mange brukere som jobber med 1C: Accounting, og hvor stor database de bruker. Jo flere ansatte og jo tyngre databasen er, desto flere kjerner trengs: Dual-core prosessorer passer for bedrifter med 5-10 ansatte (og en database på ca. 1 GB); hvis det er rundt 20 ansatte, vil en firekjerners prosessor være nødvendig (og så videre).

For omtrent to år siden publiserte vi materiale om 1C Enterprise-serveren på Linux-plattformen; interessen for dette emnet er fortsatt stor. Samtidig har mye endret seg, 1C-plattformen står ikke stille, og som oftest går implementeringen lenger enn bare å gjenta instruksjoner. Dette er ikke overraskende, 1C Enterprise-serveren er et komplekst produkt, så vi bestemte oss for å starte denne serien med artikler rettet mot en dypere studie av emnet.

Før du tar opp musen og løper til serverrommet, bør du tydelig forstå den nødvendige minimumskunnskapen, nemlig ha en ide om strukturen til 1C Enterprise-serveren og formålet med dens individuelle komponenter. De fleste problemene under implementeringen skyldes det faktum at 1C Enterprise-serveren oppfattes som en slags monolittisk formasjon der alle komponentene er sammenkoblet på en utspekulert måte kjent for kun én utvikler. Dette er imidlertid ikke slik, og i dag skal vi finne ut hva serveren vår består av og hvordan det hele fungerer sammen.

Jeg vil nok en gang understreke den ekstreme betydningen av det som vil bli diskutert nedenfor. Uten denne kunnskapen vil det være vanskelig å oppnå stabil drift, for ikke å snakke om å diagnostisere flaskehalser og øke produktiviteten. Resultatet kan være et klassisk bilde: maskinvaren ser ut til å være kraftig, alt ble gjort i henhold til instruksjonene, men det bremser. Dessverre inneholder de fleste instruksjonene for nybegynnere (inkludert vår) kun informasjon om hvordan du gjør det, uten å fokusere på hva som blir gjort og hvorfor. Så la oss begynne å fikse ting.

Klient-serverversjonen av 1C Enterprise er en struktur på tre nivåer (den såkalte "tre-lags"), som inkluderer: en klient, en 1C Enterprise-server og en DBMS-server. Dette er helt uavhengige komponenter som kan kombineres i enhver akseptabel kombinasjon for å oppnå det beste resultatet. Tenk på følgende diagram:

La oss starte med klienter; den nåværende versjonen av plattformen (8.2) sørger for bruk av tre typer klienter. La oss se på dem mer detaljert.

Fet klient

Dette er en klassisk 1C-klientapplikasjon; før utgivelsen av plattform 8.2 var det den eneste tilgjengelige klienttypen. Det tykke klientoperasjonsskjemaet er som følger: klientapplikasjonen ber om data fra 1C-serveren, og ber deretter om det fra databasen og sender det tilbake til klienten, hvor det behandles. Som du kan se, er denne ordningen ikke optimal: 1C-serveren er i hovedsak bare et lag mellom klienten og databasen, alle beregninger foregår på klienten. Dette stiller økte krav til klient-PCer, pga Serverens datakraft brukes ikke. Det er verdt å forstå klart at i tykk klientmodus vil du ikke få en økning i ytelse fra å bytte til klient-serverversjonen, kanskje til og med omvendt.

Tynn klient

Det kan kalles hovedtypen klientapplikasjon for 8.2-plattformen; i teorien, i praksis, er ikke alt så glatt, og vi kommer tilbake til dette. Måten det fungerer på er radikalt forskjellig: Klienten ber om data fra 1C-serveren, som mottar dem fra databasen, behandler dem og returnerer beregningsresultatet til klienten. Hoveddatabelastningen faller på serveren, så det er ingen spesielle krav til klient-PCer og kanalen fra klienten til serveren.

Den tynne klienten kan også fungere både ved å bruke TCP/IP-protokollen på et lokalt nettverk og via HTTP over Internett. Dette krever en annen mellommann - en webserver, som overfører klientforespørsler til 1C-serveren; ingen databehandling utføres på webserveren, den brukes utelukkende som en transport. Fordelene med en tynn klient er klare; hvis du har en kraftig server, lar den deg øke hastigheten på arbeidet med programmet betydelig; nettverkstrafikken reduseres også betydelig, noe som er veldig viktig for kontornettverk.

Nettklient

Dens eksistens følger logisk fra noen egenskaper til en tynn klient; faktisk, hvis alle forespørsler behandles av serveren, brukes HTTP som transport, hvorfor ikke bruke en nettleser for arbeid? Måten webklienten fungerer på er ikke forskjellig fra tynnklienten, men i dag er ikke alle funksjoner som støttes av tynnklienten implementert og fungerer korrekt i webklienten. Dels kan dette korrigeres i konfigurasjonen, dels pålegger mekanismen for å vise informasjon i nettleseren begrensninger. Imidlertid har 1C en nettklient og den fungerer og ingen plager deg (igjen i teorien) å jobbe i programmet mens du ligger på stranden med et nettbrett.

Nå om fluen i salven. For å fungere ordentlig i tynn- og nettklientmodus, må konfigurasjonen kjøres i administrert applikasjonsmodus og støtte alle funksjoner i denne modusen. Administrert applikasjonsmodus er den viktigste for 8.2-plattformen og er ganske radikalt forskjellig fra det som var før, inkludert i utseende. Den visuelt drevne applikasjonen kan identifiseres ved det nye grensesnittet, som inneholder faner og hyperkoblinger:

I det minste er det uvanlig, spesielt sammenlignet med det klassiske grensesnittet, men ikke skynd deg å glede deg når du ser det nye grensesnittet; i tillegg til utseendet, må konfigurasjonen støtte utførelsen av all funksjonalitet på serveren; det kan godt vise seg at i tynne og web-klient moduser ikke tilgjengelig alle muligheter.

I dag fungerer bare en del av typiske konfigurasjoner i administrert applikasjonsmodus, for eksempel: Small Firm Management, Trade Management 11, Retail 2 og Salary and HR Management. Disse løsningene kan dra full nytte av den nye plattformen. Enterprise Accounting 2.0 bruker ikke en administrert applikasjonsmodus og vil ikke fungere i tynne klienter og nettklienter, det samme gjelder mange tredjepartsløsninger, som "Kamin", etc.

konklusjoner

Hvis mulig bør du bruke en tynnklient, da denne lar deg flytte alle beregninger til serversiden og jobbe komfortabelt selv på trege kanaler, inkl. gjennom Internett. Det bør huskes at arbeid i konfiguratormodus kun er mulig gjennom en tykk klient, som også må brukes til å jobbe med konfigurasjoner som ennå ikke er overført til administrert applikasjonsmodus.

Nettklienten skal brukes når det ikke er mulig å bruke en tynn, for eksempel fra andres PC på forretningsreise, men du bør være forberedt på fravær eller feil betjening av enkelte funksjoner.

1C serverklynge

Etter å ha behandlet klienter, la oss gå videre til servere. Systemet sørger for bruk av tre typer servere: 1C Server, DBMS server og webserver. Det er viktig å forstå at serverdataene er helt uavhengige av hverandre; dette gir systemet fleksibilitet og tillater rasjonell bruk av dataressurser.

Systemet stiller heller ingen krav til plattformer. Du kan dele både Windows- og Linux-servere, Apache og IIS kan brukes som webserver, PostgreSQL, MS SQL Server, IBM DB2 og Oracle støttes fra DBMS. Derfor er det ingen som hindrer deg i å lage et opplegg der en 1C-server som kjører på Linux-plattformen vil fungere sammen med en databaseserver som kjører Windows Server og IIS og omvendt. I tillegg kan du bruke flere DBMS-servere (samt webservere) ved å plassere ulike databaser på ulike servere.

Denne tilnærmingen lar deg fleksibelt kombinere, utvide og endre den eksisterende konfigurasjonen avhengig av dagens behov, samtidig som alt vil være så transparent som mulig for sluttbrukeren. For eksempel kan du flytte ressurskrevende informasjonssikkerhet til en separat DBMS-server ved å endre bare databasetilkoblingsparameterne i serverinnstillingene uten å påvirke klientinnstillingene.

Og til slutt det mest interessante: en klynge med 1C Enterprise-servere. Ja, det stemmer, ikke en enkelt server, men en klynge av servere. Vanligvis er det her forvirringen begynner, spesielt hvis det bare er én server. Alt faller imidlertid på plass hvis vi tar i betraktning at konseptet med en serverklynge først og fremst er logisk, men denne tilnærmingen lar deg enkelt skalere ordningen, øke ytelsen eller feiltoleransen.

Enhver klynge består av en 1C Enterprise Central Server og fungerende servere. I den enkleste konfigurasjonen vil dette være den samme fysiske serveren. Om nødvendig kan vi imidlertid legge til flere fungerende servere, hvor belastningen vil bli balansert av den sentrale serveren. Dette lar deg raskt og transparent øke datakraften til systemet og øke feiltoleransen. Klyngen stiller heller ikke krav til plattformhomogenitet; den kan inkludere servere som kjører både Windows og Linux.

Hvilke konklusjoner kan trekkes fra ovenstående? For det første er 1C Enterprise klient-server-systemet veldig fleksibelt og lar deg optimalt bruke de tilgjengelige dataressursene for å oppnå det optimale resultatet. Hvilken konfigurasjon du skal velge avhenger av de spesifikke oppgavene og midlene som er tildelt for å løse dem.

For eksempel, hvis du har en lett belastning og bruker en tykk klient og en konfigurasjon som ikke støtter administrert applikasjonsmodus, er det fornuftig å kombinere en klynge av 1C-servere og en DBMS-server på én fysisk server, siden det er veldig bortkastet å allokere en egen maskin for laget mellom klienten og databasen.

Motsatt, når du bruker en administrert applikasjon i tynnklientmodus, er det bedre å skille DBMS-serveren og serverklyngen i forskjellige servere, som hver vil bli optimalisert for sin egen oppgave.

1C:Enterprise 8 kan være en ressurskrevende applikasjon selv med et lite antall brukere. Når du velger en server for 1C, vil enhver eier unngå "fødselstraumer" - potensielle flaskehalser som ligger i den. På den annen side er det i dag få som kjøper servere med overkapasitet, "for vekst." Det er bra hvis lastprofilen kan fjernes på forhånd - da er det lettere å designe en server for en spesifikk konfigurasjon av selskapets applikasjoner.

For å være spesifikk, la oss vurdere 1C:Enterprise 8.2-plattformen i dens populære grunnkonfigurasjoner «Regnskap», «Handel og lager», «Lønn og personellstyring», «Handelsledelse for bedrifter» og delvis «Manufacturing Enterprise Management». Vi antar at for virksomheter med 10 eller flere ansatte som jobber i 1C, brukes "1C:Enterprise 8.2". Applikasjonsserver". La oss ta hensyn til muligheten for å jobbe i Remote Desktop-modus, med antall samtidige databasebrukere opptil 100-150. Anbefalingene vil også gjelde for mer «tunge» 1C-databaser, men «alvorlige tilfeller» krever alltid en individuell tilnærming.

Prosessorer og RAM

Hvis selskapet er veldig lite (2-7 brukere i systemet), databasen er liten (opptil 1GB), og “1C:Enterprise 8.2” kjører i filmodus på brukerens datamaskin, så får vi en klassisk implementering av en filserver. Selv en Intel Core i3, langt mindre en Intel Xeon E3-12xx, kan takle en slik CPU-belastningsoppgave. Mengden nødvendig RAM (Random Access Memory) beregnes ganske enkelt: 2 GB for operativsystemet og 2 GB for systemfilbufferen.

Hvis selskapet har 5-25 1C-brukere, er databasestørrelsen opptil 4GB, så burde 1C:Enterprise 8.2-applikasjonen være tilstrekkelig med en 4-kjerners Intel Xeon E3-12xx eller AMD Opteron 4xxx. I tillegg til 2 GB RAM for operativsystemet, må du tildele 1-4 GB for 1C:Enterprise 8.2. Application Server" og samme mengde under MS SQL Server som en cache - totalt 8-12GB RAM. For små databaser er det tilrådelig å cache minst 30 % av databasen i RAM, eller enda bedre, 100 %.

Det er et velkjent (men ikke spesielt annonsert) faktum: «1C:Enterprise 8.2. Applikasjonsserveren liker virkelig ikke det når operativsystemet laster den ut i en byttefil på harddisken, og har noen ganger en tendens til å miste respons. Derfor, på serveren der "Application Server" kjører, bør det alltid være ledig plass i RAM - spesielt siden det er billig i dag.

I større selskaper jobber 1C-brukere vanligvis gjennom fjerntilgang til applikasjonen (Remote Desktop) – altså i terminalmodus. Som regel, med 10-100 1C-brukere med en database på 1 GB og over, "1C: Enterprise 8.2. Application server" og brukerapplikasjonen "1C:Enterprise 8.2" kjører på samme server.

For å bestemme de nødvendige prosessorressursene, antas det at en fysisk kjerne effektivt ikke kan behandle mer enn 8 brukertråder - dette er på grunn av den interne arkitekturen til prosessorene. Som praksis viser, for 1C + Remote Desktop-oppgaver bør du ikke bruke low-end serverprosessorer med lave kjernefrekvenser og nedstrippet arkitektur. Hvis det er få brukere (opptil 15-20), vil én høyfrekvent Intel Xeon E3-12xx-prosessor være nok. Samtidig vil minst en av dens fysiske kjerner (2 tråder) brukes for behovene til SQL Server, en annen (2 tråder) vil bli brukt for 1C:Enterprise 8.2. Application Server", og de resterende 2 fysiske kjernene (4 tråder) er for OS- og terminalbrukere. Hvis antallet 1C-brukere er mer enn 20 eller hvis databasevolumet er mer enn 4 GB, er det på tide å gå over til 2-prosessorsystemer på Intel Xeon E5-26xx eller AMD Opteron 62xx.

Å beregne den nødvendige mengden RAM er relativt enkelt: 2 GB bør gis til OS, 2 GB eller mer til MS SQL Server som en cache (minst 30 % av databasen), 1-4 GB til 1C:Enterprise 8.2. Application Server", bør det gjenværende serverminnet være nok for terminalsesjoner. En terminalbruker, avhengig av konfigurasjonen, bruker i applikasjonene "Regnskap", "Handel og lager" - 100-120MB, "Lønn og personalstyring", "Handelsadministrasjon" - 120-160MB, "Produksjonsbedriftsledelse" - 180-240 MB. Hvis brukeren i tillegg kjører MS Word, MS Excel, MS Outlook på serveren, må det tildeles ca. 100MB for hver applikasjon. Vanligvis er minimum for en terminalserver 12 GB RAM.

For eksempel, for en 1C-server med hele programvarepakken, 50 terminalbrukere i "Trading Enterprise Management"-konfigurasjonen og en 8GB database, vil den optimale datakraften være to Intel Xeon E5-2650-prosessorer (8 kjerner, 16 tråder, 2,0 GHz). RAM vil trenge minst 2 (OS) + 4 (SQL) + 4 (1C-server) + 8 (160 "USP" * 50 brukere) = 18 GB, eller enda bedre 24-32 GB (6-8 DIMM-kanaler på 4 GB).

Diskundersystem

De fleste klager på treg drift av 1C:Enterprise 8-servere er knyttet til manglende forståelse av hvilke typer I/O-operasjoner som utføres på dem, på hvilke data og med hvilken intensitet. Ofte er det diskundersystemet som er nøkkelen til å sikre tilstrekkelig ytelse av serveren som helhet - tross alt, for travle databaser er det største problemet tabelllåsing når mange brukere jobber med dem samtidig eller under massenedlastinger/-losser/ oppslag. Overvåking og optimalisering av serverdiskundersystemet.

1C har 5 datastrømmer for diskundersystemet som den fungerer med:

  • database tabeller;
  • indeksfiler;
  • midlertidige filer tempDB;
  • SQL loggfil;
  • loggfil for 1C-brukerapplikasjoner.

Datastrukturen i 1C er objektorientert, med mange objekter og forbindelser mellom dem. Når du arbeider med datatabeller, er antallet lese- og skriveoperasjoner som diskundersystemet kan utføre over en tidsperiode (Input Output Operation per Second, IOPS) ekstremt viktig. Samtidig er evnen til å gi høye dataoverføringshastigheter (i MBp/s) mye mindre viktig. En svært beskjeden database på 200-300MB med 3-5 brukere kan generere opptil 400-600 IOPS i topper. En database med 10-15 brukere og et volum på 400-800MB er i stand til å produsere 1500-2500 IOPS, 40-50 brukere av en 2-4GB database genererer 5000-7500 IOPS, og databaser med 80-100 brukere når lett 12000- 18000 IOPS.

Selvfølgelig kan den gjennomsnittlige belastningen på diskundersystemet være 10-15% av toppen. Bare i virkeligheten er det ytelsen som er viktig i perioder med toppbelastning: automatiske datanedlastinger fra andre systemer, datautveksling av et distribuert system, eller periodeomlegging.

Moderne disker i lese- og skriveoperasjoner med tilfeldig tilgang (Random Read/Write) alene takler følgende belastninger:

Intel 910 400 GB

2400 – 8600 IOPS

Det er tydelig sett at:

  • flaskehalsen for både HDD og SSD er opptak;
  • tradisjonelle HDD-er er ikke konkurrenter til SSD-er når det gjelder lesehastighet i IOPS, selv teoretisk sett overstiger forskjellen to størrelsesordener;
  • Selv en ikke fullt så moderne stasjonær SSD er 3-40 ganger (avhengig av konfigurasjon) raskere enn noen HDD i IOPS skrivehastighet, en server SSD er 12-40 ganger raskere enn en HDD;
  • Maksimal ytelse i IOPS leveres av PCIe SSD klasse Intel 910 eller LSI WarpDrive.

Enkeltdisker brukes ikke i databaseservere, kun RAID-arrayer. For ytterligere å beregne den reelle ytelsen til diskundersystemet, må du ta hensyn til kostnadene ("straff") for å skrive til IOPS, som bæres av diskgruppen i RAID:

Hvis du setter sammen 6 disker i RAID 10, vil det bli brukt 2 IOPS fysiske disker for hver skriving av 1 IOPS med data, og hvis du er i RAID 6, så 6 IOPS med disker. Når du beregner skrivelastkapasiteten til en diskgruppe, må du derfor først legge sammen IOPS for alle diskene i RAID-gruppen, og deretter dele dem med "straffen".

Eksempel 1: 2 HDD SATA 7200 i RAID 1 vil gi skrivekapasitet: (100 IOPS *2) / 2 = 100 IOPS.

Eksempel 2: 4 SATA 7200 i RAID 5 vil gi skrivekapasitet: (100 IOPS *4) / 4 = 100 IOPS.

Eksempel 3: 4 SATA 7200 i RAID 10 vil gi skrivekapasitet: (100 IOPS *4) / 2 = 200 IOPS.

Eksemplene 2 og 3 viser tydelig hvorfor RAID 10 er å foretrekke for lagring av databaser med en typisk lese-/skrivefordeling på 68/32.

Fra dataene i de tre tabellene er det klart hvorfor ytelsen til et typisk "herresett" på 2 HDD SATA 7200 i RAID 1 ikke er nok for en server: under toppbelastninger vokser køen med disktilgang, brukere venter på en respons fra systemet, noen ganger i mange timer.

Hvordan øke skriveytelsen til diskundersystemet? De øker antallet disker i RAID-gruppen, flytter til disker med høyere rotasjonshastigheter og velger et RAID-nivå med lavere skrivestraff. Bufring med en RAID-kontroller med tilbakeskrivingsmodus aktivert hjelper mye. Data skrives ikke direkte til diskene (som i Write Through-modus), men til kontrollerens cache, og først da, i batch-modus og i ordnet form, til diskene. Avhengig av oppgavens spesifikasjoner, kan opptaksytelsen økes med 30-100%.

For lett lastede eller relativt små databaser (opptil 20 GB), er en rimelig metode for å "pakke ut IOPS" egnet - en hybrid RAID fra SSD/HDD. En filialdatabase for 3-15 brukere i en distribuert struktur som en kafékjede eller bensinstasjon trenger ikke mer.

For store (200 GB eller mer) databaser med et langt historisk dataspor, eller for å betjene flere store databaser, kan SSD-bufring (LSI CacheCade 2.0- eller Adaptec MaxCache 3.0-teknologier) være effektive. Basert på erfaring med drift av slike systemer, er det i 1C-oppgaver de kan brukes til å fremskynde diskoperasjoner med 20-50 % relativt billig og uten vesentlige endringer i lagringsinfrastrukturen.

Mesteren i ytelse i IOPS er forutsigbart RAID-arrayer på server-SSD-er – både tradisjonelle, ved bruk av en SAS RAID-kontroller, og PCIe SSD. To begrensninger hindrer deres popularitet: teknologisk (ytelsen til RAID-kontrollere eller behovet for å radikalt bryte lagringsstrukturen) og kostnadene ved implementering.

Spesielt bør nevnes om lagring av indeksfiler og TempDB. Indeksfiler oppdateres svært sjelden (vanligvis en gang om dagen), men de leses veldig, veldig ofte (IOPS). Slike data må rett og slett lagres på en SSD, med leseytelsen! TempDB, som brukes til å lagre midlertidige data, er vanligvis liten i størrelse (1-4-12 GB), men svært krevende med tanke på skrivehastighet. Felles for indekser og midlertidige filer er at tapet ikke fører til tap av ekte data. Dette betyr at de kan plasseres på en separat (enda bedre - på to separate volumer) SSD. I det minste på den innebygde SATA-kontrolleren på hovedkortet. Fra et synspunkt om pålitelighet og ytelse, er det tilrådelig å gi et speil (RAID1) fra en SSD for TempDB, som kan gjøres på den innebygde kontrolleren, men med obligatorisk deaktivering av alle skrivebuffere. Desktop SSD-er kan også takle denne rollen - som Intel 520-serien, hvor maskinvaredatakomprimering når du skriver til TempDB vil være akkurat passende. Å flytte disse oppgavene fra et delt lagringssystem til et dedikert høyhastighetsdelsystem har en positiv effekt på ytelsen til systemet som helhet, spesielt under toppbelastninger.

I tilfeller hvor det er mulig å sikre raskest mulig respons fra administratorer ved feil, og når det er komplekse kalkulasjonsoppgaver (lager- eller transportlogistikk, produksjon i UPP, volumutveksling i URDB), overføres TempDB til RAMDrive. Denne løsningen lar deg noen ganger få opptil 4-12 % av den totale systemytelsen. Noen ulemper oppstår bare hvis serveren startes på nytt: hvis RAMDrive ikke starter automatisk, vil administratorinngrep være nødvendig for å starte den manuelt - ellers vil hele systemet svikte.

En annen viktig komponent er loggfiler. De har en ubehagelig funksjon for ethvert diskundersystem - de genererer en nesten konstant strøm av små skriveforespørsler. Dette er umerkelig under gjennomsnittlig belastning, men forringer ytelsen til 1C-serveren kraftig under toppbelastning. Det er fornuftig å flytte loggfilen (spesielt SQL-loggfilen) til et eget fysisk volum som ikke har høye IOPS-krav og vil motta nesten lineære skrivinger. For fred i sinnet kan du lage et speil fra rimelige og klumpete SATA/NL SAS (for Full logg), eller rimelige stasjonære SSD-er av samme Intel 520-serie (Enkel logg, eller Full logg, med daglig sikkerhetskopiering og rengjøring).

Generelt kan vi si at ankomsten av SSD-er på servere har åpnet for nye muligheter for å øke ytelsen til masseproduserte servere – gjennom datalagring på flere nivåer og fornuftig konfigurasjon av disk I/O.

Diskundersystemet til den "ideelle serveren for 1C" ser slik ut:

1. Databasetabeller er vert for RAID 10 (eller RAID 1 for små databaser) fra pålitelige server-SSDer med en obligatorisk maskinvare-RAID-kontroller. For høye IOPS-krav kan du vurdere PCIe SSD-alternativet. For store databaser er SSD-bufring av HDD-arrayer effektiv. Hvis 1C-konfigurasjonen og datastrukturen ikke er for krevende for IOPS, og antallet brukere er lite, vil et tradisjonelt utvalg av HDD SAS 15K rpm være tilstrekkelig.

2. Indeksfiler plasseres på en rask og rimelig enkelt SSD, TempDB - på 1-2 (RAID 1) SSD eller RAMDrive.

3. For SQL (og fortrinnsvis 1C) loggfiler, et dedikert volum (enkelt fysisk disk eller RAID-1) på en SATA/NL SAS HDD eller rimelig SSD, eller en logisk disk på en RAID-array som serveroperativsystemet er på lokaliserte og brukerfiler/mapper.

4. Operativsystem og brukerdata lagres på RAID 1 fra HDD eller SSD.

Hvis IT-infrastrukturen er virtualisert, er det svært ønskelig at SQL Server ikke installeres som en virtuell maskin, men direkte på den fysiske serveren, på bare metall. Prisen på problemet er fra 15 til 35% av ytelsen til diskundersystemet (avhengig av utstyr, drivere, virtualiseringsverktøy og metoder for å koble til volumet). I et virtualisert SQL-servermiljø kreves det å koble volumer med databasetabeller, indeksfiler og TempDB til VM i eksklusiv modus via direkte tilgang.

Nettverksgrensesnitt

Ved bygging av 1C:Enterprise 8-systemer for små og mellomstore bedrifter (opptil 100-150 aktive brukere samtidig), bør tap i nettverksdrift via Ethernet-grensesnittet minimeres. Ideelt sett serverer både SQL Server, 1C:Enterprise 8 Application Server x64 og 1C brukersesjoner i Remote Desktop med én fysisk server. Kontroversiell med tanke på å sikre feiltoleranse, en slik anbefaling lar deg få mest mulig ut av maskinvare og programvare, og gjennom bruk av virtualisering gir den et visst nivå av sikkerhet og "miljørepeterbarhet" på annet utstyr.

Hvorfor ekskludere Ethernet fra kjeden SQL-server -> Application Server 1C: Enterprise 8 -> brukerøkt 1C: Enterprise 8? Ethernet-nettverksgrensesnittet, med sin pakking av data i relativt små blokker for overføring, vil alltid skape ytterligere forsinkelser: både under pakking/utpakking av trafikk, og under selve overføringen (høy latens). I 1C:Enterprise 8 overføres ganske store mengder data for behandling og visning langs hele kjeden, i enkelte situasjoner – i begge retninger. Når data overføres direkte fra én prosess til en annen innenfor serverens RAM (på én server uten virtualisering), eller gjennom et virtuelt nettverksgrensesnitt (innenfor samme fysiske server, med gode servernettverksadaptere med overføring av RAM-blokker mellom VM-er) er ventetiden mye Nedre. Moderne dual-prosessor servere med stor RAM og et SSD disk subsystem lar deg komfortabelt betjene en 1C database for 100-150 aktive brukere.

Hvis bruk av flere fysiske verter er uunngåelig for travle databaser, er det lurt å koble alle servere via 10Gb Ethernet. Eller minst 2-4 aggregerte 1 Gb Ethernet-tilkoblinger med maskinvare TCP/IP-akselerasjon (TCP/IP Offloader) og støtte for maskinvarevirtualisering.

Budsjettløsninger lider mest av ytelsestap på Ethernet-porter. Det er ingen hemmelighet at 1Gb nettverkskort loddet på de fleste serverhovedkort ikke er laget for å håndtere intensiv nettverkstrafikk. Selv om brettet har 2 eller 3 GbE-porter, er de vanligvis implementert på skrivebordsbrikker. Selv om de er tilstrekkelige for administrasjon, genererer de ekstra overhead for å betjene nettverkskommunikasjon, spesielt i et virtualisert miljø. Hele prosessen med dataoverføring gjennom en slik brikke er sikret av ressursene til prosessoren, RAM og belastningen på de interne bussene. Slike brikker gir ingen akselerasjon i overføringen av IP-trafikk; hver mottatt og overført Ethernet-pakke krever et separat avbrudd til prosessoren. I et virtualisert miljø kan ytelsestap i nettverksgrensesnittet nå 25–30 %. Det mest ubehagelige er at overbelastning av nettverksgrensesnittet med overvåkingsverktøy kanskje ikke blir lagt merke til. Sentralprosessoren har ansvaret for det, og hvis det ikke fungerer, står den stille og venter på svar fra nettverkskortet. Det er tilrådelig å ekskludere porter på skrivebordsbrikker fra dataflyten i virtualiserte miljøer, og la dem stå for serveradministrasjonsoppgaver. For intens nettverkstrafikk er det verdt å legge til et diskret nettverkskort på serverbrikkesettet.

Feiltoleranse eller akseptabel nedetid?

Diskusjoner om serverytelse er nesten alltid ledsaget av debatter om deres pålitelighet. Å sikre feiltoleranse krever alltid ekstra kostnader, spesielt når man støtter kontinuerlige produksjonsprosesser. Uten å bagatellisere rollen og plassen til 1C, kan vi si at de fleste av brukerne løser "ytelse/pålitelighet"-dilemmaet på forskjellige plan: de kjemper for det første ved å optimalisere maskinvareløsninger, for det andre - ved å organisere prosesser og prosedyrer. Når applikasjoner er moderat kritiske, er hovedfokuset for å opprettholde driften ikke på individuell serverbeskyttelse, men på å minimere nedetid for infrastrukturen som helhet.

Selvfølgelig, for bedrifter med et relativt stort antall samtidig tilkoblede brukere (25-150) og som er vert for alle applikasjoner på én server, er det nødvendig å bruke avbruddsfri strømforsyning, redundante strømforsyninger for selve serverne, hot-swappable stasjonskurver og hot-standby RAID-arrayer. Men ingen maskinvare kan erstatte den planlagte sikkerhetskopieringen av selve dataene. Ved å ha en daglig (mer presist, nattlig) sikkerhetskopi og en driftsfil med Full SQL-logg, kan du fullstendig gjenopprette 1C-databasen på relativt kort tid.

Tillatt nedetid for det sentrale 1C-systemet for små og mellomstore bedrifter er 1-2 ulykker per måned, som varer i 1-4 timer. Faktisk er dette en enorm tidsreserve - hvis du er forberedt på restitusjon på forhånd. En nødvendig betingelse for en rask omstart er tilstedeværelsen av bilder av alle virtuelle og fysiske servere i form av VM-er på et eget lager/volum - for å gjenopprette selve infrastrukturdelen på backupserveren. Daglig sikkerhetskopiering (samt ukentlig og ved slutten av perioden) til en annen fysisk enhet og Full SQL-logg kreves for tilfeller der tap av data "fra begynnelsen av arbeidsdagen" er kritisk og vanskelig å gjenopprette manuelt. Hvis du har erstatningsutstyr, kan du gjøre det på 1-2 timer for å gjenopprette den generelle funksjonaliteten, om enn med mindre produktivitet. Vel, der 24×7 operasjonell kontinuitet er nødvendig, vil hovedoppgavene være å velge riktig arkitektur, utstyr med et minimum antall feilpunkter og fullverdige klyngeteknologier. Men det er en helt annen historie.

Originalartikkel: http://ko.com.ua/proektirovanie_servera_pod_1s_66779

Med tillatelse fra redaktøren av tidsskriftet "Computer Review"

Denne artikkelen presenterer måter å omgå Internett-tilkoblingsfeil som jeg bruker i praksis.

I mitt tilfelle ble problemet løst ved å redigere filen C:\WINDOWS\system32\drivers\etc\hosts "192.168.0.1 nettstedsdomenenavn" på klienten eller serveren - hvor rutineoppgaven kjører. Etter dette begynte de innebygde 1C Internett-tilkoblingene å fungere:

ExchangeFileDirectory = "D:\temp\"; ResponseFileName = ExchangeFileDirectory + "cards.xml"; Overskrifter = "discount.php"; Proxy = Udefinert; Prøv proxy = New InternetProxy; ProxyK.Set("http", ProxyK.Server("http"), ProxyK.Port("http")); Unntak EndTry; ProxyC.User = "**********"; Proxy.Password = "*************"; Connect = New HTTPConnection("nettstedsdomenenavn", proxy); Attempt Connect.Get(Headers,ResponseFileName); Koble til = Udefinert; Exception Error = ErrorDescription(); Ф = Nytt tekstdokument; F.AddRow(Feil); F.Write(ResponseFileName); Ф = ""; Sluttforsøk;

Redigering etc\hosts hjalp også, hvoretter forbindelsen fra publikasjonen Sende en HTTP-streng med responsbehandling begynte å fungere

Prøver XMLHttp = GetCOMObject("", "Microsoft.XMLHTTP"); Exception Error = ErrorDescription(); Ф = Nytt tekstdokument; F.AddRow(Feil); F.Write("D:\temp\cards21.txt"); Ф = ""; Komme tilbake; Sluttforsøk; Attempt XMLHttp.Open("GET", "http://sitedomainname/discount.php", False); Exception Error = ErrorDescription(); Ф = Nytt tekstdokument; F.AddRow(Feil); F.Write("D:\temp\cards22.txt"); Ф = ""; Komme tilbake; Sluttforsøk; XMLHttp.Send(); Hvis XMLHttp.Status = 200 Da Str = ""; TryStr = XMLHttp.ResponseText; Unntaksside = ErrorDescription(); Sluttforsøk; Ф = Nytt tekstdokument; F.AddRow(Str); F.Write("D:\temp\cards23.txt"); Ф = ""; Ellers F = New TextDocument; F.AddRow(XMLHttp.Status); F.Write("D:\temp\cards24.txt"); Ф = ""; slutt om;

Tilkoblingen fungerer fint gjennom oppringingskomponenten, men vi kunne ikke få den til å fungere:

//If Load External Component(IB Catalog() + "DialMail.dll") = 0 Then // Report("Kunne ikke laste komponent DialMail.dll!"); //Returstatus(0); // Komme tilbake; //Slutt om; //Attempt // FTP = CreateObject("AddIn.FTP"); // FTP.LogFileName = "c:\dialmail_ftp.log"; // FTP.VestiLogFile = 1; // FTP.NewTechnicalLogFile = 1; //Unntak // Rapport("Kunne ikke opprette et objekt fra DialMail.dll-komponenten!"); //Returstatus(0); // Komme tilbake; //EndAttempt; //FTP.ProxyUserName = ProxyUserName; //FTP.PasswordProxy = PassordProxy; //FTP.HostProxy = HostProxy; //FTP.PortProxy = PortProxy; //// Hvis FTP.UseProxy = 0, blir ikke //// alle parameterne ovenfor tatt i betraktning //FTP.UseProxy = 2; //FTP.UseSSL = 0; //FTP.NewRFC = 0; //FTP.BinaryMode = 0; //FTP.TimeBeforeBreak = 1000000; // Timeout //If FTP.Connect(FTPServer, // FTPPort, // FTPUser, // FTPPassword, 0) = 0 Da // Advarsel("Kunne ikke koble til FTP-serveren"); //Else //Tilkoblet = 1; //Slutt om; //Varsle(FTP.StringObjectVersion); //TechFTPDirectory = FTP.CurrentDirectory();

03/28/13 13:44:01.500 FTP: Koble til stikkontakten
03/28/13 13:44:01.515 FTP: Koblet til stikkontakten vellykket
03/28/13 13:44:01.671 FTP 03/28/13 13:44:01.671 FTP --> BRUKER 931013677
03/28/13 13:44:01.687 FTP 03/28/13 13:44:01.687 FTP --> PASS *****
03/28/13 13:44:01.703 FTP 03/28/13 13:44:01.703 FTP --> TYPE I
03/28/13 13:44:01.718 FTP 03/28/13 13:44:01.718 FTP --> STRU F
03/28/13 13:44:01.734 FTP 03/28/13 13:44:01.734 FTP --> REST 0
03/28/13 13:44:01.734 FTP 03/28/13 13:44:01.750 FTP --> REST 1
03/28/13 13:44:01.750 FTP 03/28/13 13:44:01.765 FTP --> REST 0
03/28/13 13:44:01.765 FTP 03/28/13 13:44:01.781 FTP --> PWD
03/28/13 13:44:01.781 FTP 03/28/13 13:44:02.968 FTP --> PWD
03/28/13 13:44:02.984 FTP 03/28/13 13:44:02.984 FTP --> PASV
03/28/13 13:44:03.000 FTP03/28/13 13:44:03.000 FTP --> LISTE

Når jeg prøver å laste opp en fil til serveren, får jeg socket-feil 10054

Socket Error #10054 Tilkobling tilbakestilt av peer

Det er lite skrevet om denne oppringingsfeilen på Internett, hovedsakelig at den oppstår, uten en løsning. På Gilevs nettside er det skrevet om denne feilen at den oppstår i plattformen: http://www.gilev.ru/10054/

På min måte:

  1. winscp laster ned filen (fungerer selv uten redigering etc\hosts)
  2. http-lenken rykker med curl (selv om curl ikke fungerer uten redigering etc\hosts)

Her er en liste over de viktigste grunnleggende problemene når du løser det praktiske problemet med å bruke en Internett-tilkobling ved hjelp av en ekstern klient, som viste seg å være viktig å ta hensyn til ...

Jeg lærte om curl fra spesialistene på pradata.com
curl er et kommandolinjeverktøy for overføring av data med URL-syntaks, som støtter DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet og TFTP. curl støtter SSL-sertifikater, HTTP POST, HTTP PUT, FTP-opplasting, HTTP-skjemabasert opplasting, proxyer, informasjonskapsler, bruker+passordautentisering (Basic, Digest, NTLM, Negotiate, kerberos...), CV for filoverføring, proxy-tunneling og en busslast av andre

Publikasjonen Laste opp filer til SFTP hjalp med winscp

Dekryptering av DNS-adressen kan være deaktivert på serveren (som i mitt tilfelle), så i stedet for domenenavnet til nettstedet er det en digital IP-adresse.

Teksten til prosedyren som faktisk fungerer for meg (jeg overskriver filen i en midlertidig lokal katalog og laster den opp til serveren):
Prosedyrerapport(TabDoc, DataCon, DateStart) Eksporter F = Nytt tekstdokument; F.AddLine("Strekkode;Periode;Kjøpsbeløp"); File="d:\temp\discount.txt"; F.Skriv(Fil); // http://programna1c.narod.ru/docs/WSH/1C_WSH_WshShell.html //Run(,) Utfører kommandoen. Den største fordelen er tilstedeværelsen av å vente på fullføringen av den utførte kommandoen. //Parameters: // - kommandoen som skal utføres. Den er spesifisert i DOS-format og støtter ikke lange navn. // - et tall som indikerer alternativet for å vise vinduet til programmet som startes. Ikke obligatorisk. Mulige verdier: //0 - Skjuler et vindu og aktiverer et annet; //1 - Aktiverer og viser vinduet. Hvis et vindu minimeres eller maksimeres, gjenoppretter systemet det til sin opprinnelige størrelse og posisjon. Brukes når du åpner programvinduet for første gang. //2 - Aktiverer vinduet i minimert modus. //3 - Aktiverer vinduet og utvider det til fullskjerm. //4 - Viser vinduet i sin nye størrelse og plassering. Det gjeldende vinduet forblir aktivt. //5 - Aktiverer vinduet og viser det i gjeldende størrelse. //6 - Minimerer vinduet og aktiverer følgende på oppgavelinjen. //7 - Viser vinduet som minimert. Det aktive vinduet forblir aktivt. //8 – Viser vinduet i gjeldende tilstand. Det aktive vinduet forblir aktivt. //9 - Aktiverer og viser vinduet. Hvis et vindu minimeres eller maksimeres, gjenoppretter systemet det til sin opprinnelige størrelse og posisjon. Brukes til å gjenopprette et minimert vindu. //10 - viser vinduet i samme tilstand som det anropende programvinduet. // - flagg for å vente på prosessfullføring. Mulige verdier: 0 - ikke vent på at kommandoen skal fullføre utførelse; -1 - vent til kommandoen fullføres. Ikke obligatorisk. Standard er 0. //Merk: Du kan kjøre både programmet og en hvilken som helst kommando (ligner på Start->Kjør). //Eksempel: //WshShell = Nytt COMObject("WScript.Shell"); //WshShell.Run("notepad",7,-1); WshShell = New COMObject("wscript.Shell"); //Innhold i ap.ini-filen //open ftp://******:********@****************** // rm discount.txt //option transfer ascii //put D:\temp\discount.txt //close //exit CommandLine = "" ReturnValue = WshShell.Run(CommandLine, 1); WshShell = Udefinert; Slutt på prosedyre

Her er hva som gjelder for den eksterne ftp-klienten:

Kommando for å kjøre skriptet:

D:\temp\WinSCP.com /script=D:\temp\ap.ini

Skripttekst:

åpne ftp://***************:**************@*************** ****** // etter hunden IP-adressen, ikke domenenavnet
opsjonsoverføring ascii
rm rabatt.txt
sett D:\temp\rabatt.txt
Lukk
exit

Resultatet av å kjøre dette skriptet:

D:\temp>D:\temp\WinSCP.com /script=D:\temp\ap.ini
Kobler til ***************** ...
Tilkoblet til *********************. Venter på velkomstmelding...
Tilkoblet
Starter økten...
Leser ekstern katalog...
Økten startet.
Aktiv økt: *************@***********************
overføre ascii
rabatt.txt
D:\temp\rabatt.txt | 42 KiB | 39,1 KiB/s | ascii | 100 %
Økt "***************@***************" stengt.
Ingen økt.

Jeg løste problemene mine ved å bruke WinSCP.com-klienten, takket være publikasjonen Laste opp filer til SFTP