Di 1C, kami menggunakan perkembangan kami sendiri secara meluas untuk mengatur kerja syarikat. khususnya, . Sebagai tambahan kepada pengurusan dokumen (seperti namanya), ia juga moden -sistem (Pengurusan Kandungan Perusahaan - pengurusan kandungan korporat) dengan pelbagai fungsi - mel, kalendar kerja pekerja, mengatur akses dikongsi kepada sumber (contohnya, menempah bilik mesyuarat), penjejakan masa, forum korporat dan banyak lagi.
Lebih seribu pekerja menggunakan pengurusan dokumen di 1C. Pangkalan data telah menjadi mengagumkan (11 bilion rekod), yang bermaksud bahawa ia memerlukan penjagaan yang lebih teliti dan peralatan yang lebih berkuasa.
Bagaimana sistem kami berfungsi, apakah kesukaran yang kami hadapi semasa mengekalkan pangkalan data dan cara kami menyelesaikannya (kami menggunakan MS SQL Server sebagai DBMS) - kami akan memberitahu anda dalam artikel.
Bagi mereka yang pertama kali membaca tentang produk 1C.
1C:Document Flow ialah penyelesaian aplikasi (konfigurasi) yang dilaksanakan berdasarkan rangka kerja untuk membangunkan aplikasi perniagaan - platform 1C:Enterprise.

β1C: Document Flow 8β (disingkatkan sebagai DO) membolehkan anda mengautomasikan kerja dengan dokumen dalam perusahaan. Salah satu alat utama untuk interaksi pekerja ialah e-mel. Selain mel, DO juga menyelesaikan masalah lain:
- Penjejakan masa
- Penjejakan ketidakhadiran pekerja
- Permohonan untuk kurier/pengangkutan
- Kalendar kerja pekerja
- Pendaftaran surat-menyurat
- Kenalan Pekerja (Buku Alamat)
- Forum korporat
- Tempahan bilik
- Perancangan acara
- CRM
- Kerja kolektif dengan fail (dengan menyimpan versi fail)
- dan lain-lain
Kami memasuki Pengurusan Dokumen (aplikasi boleh laku asli) daripada Windows, Linux, macOS, (dari pelayar) dan - bergantung kepada keadaan.
Dan terima kasih kepada produk kami yang lain yang disambungkan ke Aliran Dokumen - β kami terus dalam Document Flow menerima fungsi utusan β sembang, panggilan audio dan video (termasuk panggilan kumpulan, yang kini menjadi sangat penting, termasuk daripada pelanggan mudah alih), pertukaran fail pantas serta keupayaan untuk menulis bot sembang yang memudahkan bekerja dengan sistem. Satu lagi kelebihan menggunakan Sistem Interaksi (berbanding dengan utusan lain) ialah keupayaan untuk menjalankan perbincangan kontekstual yang terikat dengan objek Aliran Dokumen tertentu - dokumen, peristiwa, dsb. Iaitu, Sistem Interaksi disepadukan secara mendalam dengan aplikasi sasaran, dan tidak bertindak sebagai "butang berasingan" sahaja.
Bilangan huruf dalam DO kami telah melebihi 100 juta, dan secara amnya terdapat lebih daripada 11 bilion rekod dalam DBMS. Secara keseluruhan, sistem menggunakan hampir 30 TB storan: volum pangkalan data ialah 7,5 TB, fail untuk kerja kolektif disimpan secara berasingan dan menduduki 21 TB lagi.
Jika kita bercakap tentang nombor yang lebih khusus, berikut ialah bilangan huruf dan fail pada masa ini:
- E-mel keluar β 14,7 juta.
- Surat masuk β 85,4 juta.
- Versi fail - 70,8 juta.
- Dokumen dalaman β 30,6 ribu.
DO mempunyai lebih daripada sekadar mel dan fail. Di bawah ialah angka untuk objek perakaunan lain:
- Tempahan bilik mesyuarat β 52
- Laporan mingguan β 153
- Laporan harian β 628
- Visa kelulusan β 11
- Dokumen masuk β 79
- Dokumen keluar β 28
- Entri tentang acara dalam kalendar kerja pengguna β 168
- Permohonan untuk kurier β 21
- Rakan niaga β 81
- Rekod kerja dengan rakan niaga β 45
- Orang hubungan rakan niaga β 41
- Peristiwa β 10
- Projek β 6
- Tugas pekerja β 245
- Siaran forum β 26
- Mesej sembang β 891 095
- Proses perniagaan - 109 Interaksi antara pekerja berlaku melalui proses - kelulusan, pelaksanaan, semakan, pendaftaran, tandatangan, dsb. Kami mengukur tempoh proses, bilangan kitaran, bilangan peserta, bilangan pulangan, bilangan permintaan untuk menukar tarikh akhir. Dan maklumat ini sangat berguna untuk dianalisis untuk memahami proses yang berlaku dalam perusahaan dan meningkatkan kecekapan kerjasama pekerja.
Peralatan apa yang kami memproses semua ini?
Angka-angka ini menunjukkan jumlah tugas yang mengagumkan, jadi kami berhadapan dengan keperluan untuk memperuntukkan peralatan yang agak produktif untuk keperluan anak-anak syarikat dalaman. Pada masa ini, ciri-cirinya adalah seperti berikut: 38 teras, 240 GB RAM, 26 TB cakera. Berikut ialah jadual pelayan:

Pada masa hadapan, kami merancang untuk meningkatkan kapasiti peralatan.
Bagaimanakah keadaan dengan beban pelayan?
Aktiviti rangkaian tidak pernah menjadi masalah kepada kami atau pelanggan kami. Sebagai peraturan, titik lemah adalah pemproses dan cakera, kerana semua orang sudah tahu cara menangani kekurangan ingatan. Berikut adalah tangkapan skrin pelayan kami dari Resource Monitor, yang menunjukkan bahawa kami tidak mempunyai sebarang beban yang teruk, ia sangat sederhana.
Sebagai contoh, dalam tangkapan skrin di bawah kita melihat pelayan SQL di mana beban CPU ialah 23%. Dan ini adalah penunjuk yang sangat baik (untuk perbandingan: jika beban mendekati 70%, maka, kemungkinan besar, pekerja akan melihat kelembapan yang agak ketara dalam kerja).

Tangkapan skrin kedua menunjukkan pelayan aplikasi di mana platform 1C:Enterprise dijalankan - ia hanya menyajikan sesi pengguna. Di sini beban pemproses sedikit lebih tinggi - 38%, ia licin dan tenang. Terdapat beberapa pemuatan cakera, tetapi ia boleh diterima.

Tangkapan skrin ketiga menunjukkan pelayan 1C:Enterprise lain (ia adalah yang kedua, kami mempunyai dua daripadanya dalam kelompok). Hanya yang sebelumnya melayani pengguna, dan robot berfungsi pada yang ini. Contohnya, mereka menerima mel, dokumen laluan, pertukaran data, mengira hak, dsb. Semua aktiviti latar belakang ini melaksanakan kira-kira 90-100 pekerjaan latar belakang. Dan pelayan ini dimuatkan dengan sangat berat - 88%. Tetapi ini tidak menjejaskan orang ramai, dan ia melaksanakan semua automasi yang harus dilakukan oleh Pengurusan Dokumen.

Apakah metrik untuk mengukur prestasi?
Kami mempunyai subsistem yang serius terbina dalam anak syarikat kami untuk mengukur penunjuk prestasi dan mengira pelbagai metrik. Ini adalah perlu untuk memahami kedua-dua pada masa semasa dan dari perspektif sejarah apa yang berlaku dalam sistem, apa yang semakin teruk, apa yang semakin baik. Alat pemantauan - metrik dan ukuran masa - disertakan dalam penghantaran standard "1C: Aliran Dokumen 8". Metrik memerlukan penyesuaian semasa pelaksanaan, tetapi mekanisme itu sendiri adalah standard.
Metrik ialah ukuran pelbagai penunjuk perniagaan pada masa tertentu (contohnya, purata masa penghantaran mel ialah 10 minit).
Salah satu metrik menunjukkan bilangan pengguna aktif dalam pangkalan data. Secara purata terdapat 1000-1400 daripadanya pada siang hari. Graf menunjukkan bahawa pada masa tangkapan skrin terdapat 2144 pengguna aktif dalam pangkalan data.

Terdapat lebih daripada 30 tindakan sedemikian, senarai itu di bawah pemotongan.Senarai
- Log masuk
- Log Keluar
- Memuatkan mel
- Menukar kesahan sesuatu objek
- Menukar hak akses
- Menukar subjek proses
- Menukar kumpulan kerja objek
- Menukar komposisi kit
- Menukar fail
- Import fail
- Menghantar melalui pos
- Memindahkan fail
- Mengubah hala tugas
- Menandatangani tandatangan elektronik
- Cari mengikut butiran
- Carian teks penuh
- Menerima fail
- Mengganggu proses
- Lihat
- Penyahsulitan
- Pendaftaran dokumen
- Imbas
- Menyahtanda pemadaman
- Mencipta Objek
- Menyimpan ke cakera
- Permulaan proses
- Memadamkan entri log pengguna
- Mengalih keluar tandatangan elektronik
- Menetapkan tanda pemadaman
- Penyulitan
- Eksport folder
Minggu sebelum yang lalu, purata aktiviti pengguna kami meningkat sebanyak satu setengah kali ganda (ditunjukkan dalam warna merah pada graf) - ini disebabkan oleh peralihan kebanyakan pekerja ke kerja jauh (disebabkan oleh peristiwa yang terkenal). Juga, bilangan pengguna aktif meningkat sebanyak 3 kali (ditunjukkan dengan warna biru pada tangkapan skrin), apabila pekerja mula aktif menggunakan telefon bimbit: setiap pelanggan mudah alih membuat sambungan ke pelayan. Kini, secara purata, setiap pekerja kami mempunyai 2 sambungan ke pelayan.

Bagi kami, sebagai pentadbir, ini adalah isyarat bahawa kami perlu lebih prihatin terhadap isu prestasi dan melihat sama ada keadaan menjadi lebih teruk. Tetapi kita melihat ini berdasarkan parameter lain. Contohnya, cara masa penghantaran mel untuk penghalaan dalaman berubah (ditunjukkan dengan warna biru dalam tangkapan skrin di bawah). Kami melihat bahawa ia turun naik sehingga tahun ini, tetapi sekarang ia stabil - bagi kami ini adalah penunjuk bahawa semuanya teratur dengan sistem.

Satu lagi metrik yang digunakan untuk kami ialah purata masa menunggu untuk memuat turun surat daripada pelayan mel (ditunjukkan dengan warna merah dalam tangkapan skrin). Secara kasarnya, berapa lama surat itu akan terapung di Internet sebelum sampai kepada pekerja kami. Tangkapan skrin menunjukkan bahawa kali ini juga tidak berubah dalam apa jua cara baru-baru ini. Terdapat pancang terpencil - tetapi ia tidak dikaitkan dengan kelewatan, tetapi dengan fakta bahawa masa pada pelayan mel hilang.

Atau, sebagai contoh, metrik lain (ditunjukkan dengan warna biru dalam tangkapan skrin) β mengemas kini huruf dalam folder. Membuka folder mel adalah operasi yang sangat biasa dan perlu dilakukan dengan cepat. Kami mengukur seberapa cepat ia dilakukan. Penunjuk ini diukur untuk setiap pelanggan. Anda boleh melihat kedua-dua gambaran keseluruhan untuk syarikat dan dinamik, sebagai contoh, untuk pekerja individu. Tangkapan skrin menunjukkan bahawa sehingga tahun ini metrik tidak seimbang, kemudian kami membuat beberapa penambahbaikan, dan kini ia tidak menjadi lebih teruk - graf hampir rata.

Metrik pada asasnya adalah alat pentadbir untuk memantau sistem, untuk bertindak balas dengan cepat kepada sebarang perubahan dalam tingkah laku sistem. Tangkapan skrin menunjukkan metrik subsidiari dalaman untuk tahun tersebut. Lonjakan dalam graf adalah disebabkan oleh fakta bahawa kami diberi tugas untuk membangunkan anak syarikat dalaman.

Berikut ialah senarai beberapa lagi metrik (di bawah potongan).
Metrik
- Aktiviti pengguna
- Pengguna Aktif
- Proses aktif
- Bilangan fail
- Saiz fail (MB)
- Bilangan dokumen
- Bilangan objek untuk dihantar kepada penerima
- Bilangan rakan niaga
- Tugas yang belum selesai
- Purata masa menunggu untuk memuat turun e-mel daripada pelayan mel sepanjang 10 minit yang lalu
- Penimbal data luaran: bilangan fail
- Sempadan ketinggalan dari tarikh semasa
- Beratur panjang
- Barisan operasi
- Umur akaun mentah mengikut penghalaan luaran
- Saiz baris gilir penerimaan penghalaan dalaman (baris panjang)
- Saiz baris gilir penerimaan penghalaan dalaman (baris pantas)
- Masa penghantaran mel melalui penghalaan dalaman (beratur panjang)
- Masa penghantaran mel melalui penghalaan dalaman (baris gilir pantas)
- Masa penghantaran mel melalui penghalaan luaran (purata)
- Bilangan dokumen Tempahan
- Bilangan dokumen Ketiadaan
- Bilangan dokumen "Rekod kerja dengan rakan niaga"
- Mel Kemas kini huruf dalam folder
- Mel Membuka kad surat
- Mel Pindahkan surat ke folder
- Mel Pindah melalui folder
Sistem kami mengukur lebih daripada 150 penunjuk sepanjang masa, tetapi tidak semuanya boleh dipantau dengan cepat. Ia mungkin berguna kemudian, dalam beberapa perspektif sejarah, dan anda boleh menumpukan pada yang paling penting untuk perniagaan.
Dalam salah satu pelaksanaan, sebagai contoh, hanya 5 penunjuk telah dipilih. Pelanggan menetapkan matlamat untuk mencipta set penunjuk minimum, tetapi pada masa yang sama ia meliputi senario kerja utama. Adalah tidak wajar untuk memasukkan 150 penunjuk dalam sijil penerimaan, kerana walaupun dalam perusahaan adalah sukar untuk bersetuju tentang penunjuk yang dianggap boleh diterima. Dan mereka tahu tentang 5 penunjuk ini dan telah membentangkannya kepada sistem sebelum permulaan projek pelaksanaan, termasuk mereka dalam dokumentasi pertandingan: masa untuk membuka kad tidak lebih daripada 3 saat, masa untuk menyelesaikan tugas dengan no fail lebih daripada 5 saat, dsb. Dalam anak syarikat kami, kami mempunyai metrik yang sangat jelas menggambarkan permintaan asal daripada spesifikasi teknikal pelanggan.
Kami juga mempunyai analisis profil pengukuran prestasi. Penunjuk prestasi ialah rakaman tempoh setiap operasi yang sedang berjalan (menulis surat ke pangkalan data, menghantar surat ke pelayan mel, dsb.). Ini digunakan secara eksklusif oleh juruteknik. Kami mengumpul banyak petunjuk prestasi dalam program kami. Pada masa ini kami mengukur kira-kira 1500 operasi utama, yang dibahagikan kepada profil.

Salah satu profil yang paling penting bagi kami ialah "Senarai Petunjuk Utama Mel dari Perspektif Pengguna." Profil ini termasuk, sebagai contoh, penunjuk berikut:
- Melaksanakan arahan: Pilih mengikut teg
- Membuka borang: Borang Senarai
- Melaksanakan arahan: Pilih mengikut folder
- Memaparkan surat di kawasan bacaan
- Menyimpan surat ke folder kegemaran anda
- Cari huruf mengikut butiran
- Mencipta surat
Jika kami melihat bahawa metrik untuk beberapa penunjuk perniagaan telah menjadi terlalu besar (contohnya, surat daripada pengguna tertentu telah mula tiba untuk masa yang sangat lama), kami mula memikirkannya dan beralih kepada mengukur masa operasi teknikal. Kami mempunyai operasi teknikal "Mengarkib surat pada pelayan mel" - kami melihat bahawa masa untuk operasi ini telah melebihi untuk tempoh terakhir. Operasi ini, seterusnya, diuraikan kepada operasi lain - contohnya, mewujudkan sambungan dengan pelayan mel. Kami melihat bahawa atas sebab tertentu ia tiba-tiba menjadi sangat besar (kami mempunyai semua ukuran selama sebulan - kami boleh membandingkan minggu lepas ia adalah 10 milisaat, dan kini ia adalah 1000 milisaat). Dan kami faham bahawa ada sesuatu yang rosak di sini - kami perlu memperbaikinya.
Bagaimanakah kita mengekalkan pangkalan data yang begitu besar?
DO dalaman kami ialah contoh projek beban tinggi yang benar-benar berfungsi. Mari kita bercakap tentang ciri teknikal pangkalan datanya.
Berapa lama masa yang diperlukan untuk menyusun semula jadual pangkalan data yang besar?
Pelayan SQL memerlukan penyelenggaraan berkala, menyusun jadual. Dengan cara yang baik, ini perlu dilakukan sekurang-kurangnya sekali sehari, dan lebih kerap lagi untuk jadual permintaan tinggi. Tetapi jika pangkalan datanya besar (dan jumlah rekod kami sudah melebihi 11 bilion), maka menjaganya bukan mudah.
Kami melakukan penstrukturan semula jadual 6 tahun yang lalu, tetapi ia mula mengambil masa yang begitu lama sehingga kami tidak lagi sesuai dengan selang waktu malam. Dan oleh kerana operasi ini banyak memuatkan pelayan SQL, ia tidak dapat melayani pengguna lain dengan cekap.
Oleh itu, sekarang kita perlu menggunakan pelbagai helah. Sebagai contoh, kami tidak boleh melaksanakan prosedur ini pada set data yang lengkap. Anda perlu menggunakan prosedur Kemas Kini Contoh 500000 baris - ini mengambil masa 14 minit. Ia tidak mengemas kini statistik pada semua data dalam jadual, tetapi memilih setengah juta baris dan menggunakannya untuk mengira statistik yang digunakan untuk keseluruhan jadual. Ini adalah beberapa andaian, tetapi kami terpaksa membuatnya, kerana untuk jadual tertentu, pengumpulan statistik pada keseluruhan bilion rekod akan mengambil masa yang tidak boleh diterima lama.

Kami juga mengoptimumkan operasi penyelenggaraan lain dengan menjadikannya separa.
Mengekalkan DBMS secara amnya adalah tugas yang sukar. Dalam kes interaksi aktif antara pekerja, pangkalan data berkembang dengan cepat, dan menjadi semakin sukar bagi pentadbir untuk mengekalkannya - kemas kini statistik, defragmentasi, pengindeksan. Di sini kita perlu menggunakan strategi yang berbeza, kita tahu bagaimana untuk melakukan ini, kita mempunyai pengalaman, kita boleh berkongsinya.
Bagaimanakah sandaran dilaksanakan dengan volum sedemikian?
Sandaran DBMS penuh dilakukan sekali sehari pada waktu malam, tambahan - setiap jam. Juga, direktori fail dibuat setiap hari, dan ia adalah sebahagian daripada sandaran tambahan storan fail.
Berapa lama masa yang diambil untuk melengkapkan sandaran penuh?
Sandaran penuh kepada cakera keras selesai dalam masa tiga jam, sandaran separa dalam satu jam. Ia mengambil masa lebih lama untuk menulis pada pita (peranti khas yang membuat salinan sandaran kepada kaset khas yang disimpan di luar pejabat; salinan boleh alih dibuat pada pita, yang akan disimpan jika, sebagai contoh, bilik pelayan terbakar). Sandaran dibuat pada pelayan yang sama, parameter yang lebih tinggi - pelayan SQL dengan beban pemproses 20%. Pada masa sandaran, sudah tentu, sistem menjadi lebih teruk, tetapi ia masih berfungsi.

Adakah terdapat deduplikasi?
Terdapat fail, kami akan mengujinya sendiri, dan tidak lama lagi ia akan disertakan dalam versi baharu Pengurusan Dokumen. Kami juga sedang menguji mekanisme penyahduplikasian rakan niaga. Tiada penduaan rekod di peringkat DBMS, kerana ini tidak perlu. Platform 1C:Enterprise menyimpan objek dalam DBMS, dan hanya platform yang boleh bertanggungjawab untuk konsistensinya.
Adakah terdapat nod baca sahaja?
Tiada nod bacaan (nod sistem khusus yang melayani mereka yang perlu menerima sebarang data untuk membaca). DO bukanlah sistem perakaunan untuk diletakkan pada nod BI yang berasingan, tetapi terdapat nod berasingan untuk jabatan pembangunan, yang mana mesej ditukar dalam format JSON, dan masa replikasi biasa ialah unit dan berpuluh-puluh saat. Nod itu masih kecil, ia mempunyai kira-kira 800 juta rekod, tetapi ia berkembang dengan cepat.
Adakah e-mel yang ditandai untuk pemadaman tidak dipadamkan sama sekali?
Belum lagi. Kami tidak mempunyai tugas untuk membuat asas lebih ringan. Terdapat beberapa kes yang agak serius apabila perlu merujuk kepada surat yang ditandakan untuk pemadaman, termasuk 2009. Itulah sebabnya kami memutuskan untuk menyimpan semuanya buat masa ini. Tetapi apabila kos ini menjadi tidak wajar, kami akan memikirkan tentang penyingkiran. Tetapi, jika anda perlu mengalih keluar surat berasingan daripada pangkalan data sepenuhnya supaya tiada jejak, maka ini boleh dilakukan dengan permintaan khas.
Mengapa menyimpannya? Adakah anda mempunyai statistik mengenai akses kepada dokumen lama?
Tiada statistik. Lebih tepat lagi, ia dalam bentuk log pengguna, tetapi ia tidak disimpan lama. Entri yang lebih lama daripada setahun dipadamkan daripada protokol.
Terdapat situasi apabila perlu untuk mendapatkan semula surat-menyurat lama dari lima atau sepuluh tahun yang lalu. Dan ini sentiasa dilakukan bukan kerana rasa ingin tahu terbiar, tetapi untuk membuat keputusan perniagaan yang rumit. Terdapat kes di mana, tanpa sejarah surat-menyurat, keputusan perniagaan yang salah akan dibuat.
Bagaimanakah nilai dokumen dinilai dan dimusnahkan mengikut tempoh penyimpanan?
Untuk dokumen kertas ini dilakukan dengan cara tradisional biasa, seperti orang lain. Kami tidak melakukannya untuk yang elektronik - biarkan mereka menyimpannya untuk diri mereka sendiri. Duduk di sini. Ada faedahnya. Semua orang sihat.
Apakah prospek pembangunan yang ada?
Kini DO kami menyelesaikan kira-kira 30 masalah dalaman, beberapa daripadanya kami senaraikan pada permulaan artikel. DL juga digunakan untuk menyediakan persidangan yang kami adakan dua kali setahun untuk rakan kongsi kami: keseluruhan program, semua laporan, semua bahagian selari, dewan - semua ini ditaip dalam DL, dan kemudian dimuat turun daripadanya, dan program bercetak dibuat.
Terdapat beberapa lagi tugasan dalam perjalanan untuk DO, sebagai tambahan kepada tugasan yang sudah diselesaikan. Terdapat tugas seluruh syarikat, dan terdapat tugas yang unik dan jarang berlaku, hanya diperlukan oleh jabatan tertentu. Ia adalah perlu untuk membantu mereka, yang bermaksud memperluaskan "geografi" menggunakan sistem dalam 1C - memperluaskan skop aplikasi, menyelesaikan masalah semua jabatan. Ini akan menjadi ujian terbaik untuk prestasi dan kebolehpercayaan. Saya ingin melihat sistem berfungsi pada trilion rekod, petabait maklumat.
Sumber: www.habr.com
