พารามิเตอร์ของเซิร์ฟเวอร์ที่ทำงาน 1C 8 การเพิ่มความจุของฮาร์ดแวร์
พิมพ์ (Ctrl+P)
ในบทความนี้ ฉันทบทวนกิจกรรมหลักที่ต้องดำเนินการเพื่อเพิ่มประสิทธิภาพ 1C ใน 1C เวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์:
- เพิ่มความจุของฮาร์ดแวร์
- การตั้งค่าเซิร์ฟเวอร์ 1C: Enterprise
- การตั้งค่าเซิร์ฟเวอร์ SQL
- การเพิ่มประสิทธิภาพโค้ดและอัลกอริธึมใน 1C
1. เพิ่มความจุของฮาร์ดแวร์
ข้อกำหนดขั้นต่ำสำหรับคอมพิวเตอร์ที่ส่งเพื่อการรับรองให้กับบริษัท “C” เพื่อรับใบรับรอง “Compatible! เขียน 1C: ระบบซอฟต์แวร์องค์กร
ประสิทธิภาพของเซิร์ฟเวอร์ 1C: องค์กรค่อนข้างขึ้นอยู่กับความถี่ของโปรเซสเซอร์ และสำหรับเซิร์ฟเวอร์ฐานข้อมูล คุณลักษณะของคอมพิวเตอร์จะต้องเป็นไปตามข้อกำหนดของ Microsoft SQL Server, PostgreSQL, IBM DB2, Oracle Database
2. การตั้งค่าเซิร์ฟเวอร์ 1C: Enterprise
คำแนะนำสำหรับการตั้งค่าเซิร์ฟเวอร์การทำงานด้วย 1C: แพลตฟอร์มเทคโนโลยีองค์กรสามารถพบได้บนดิสก์ ITS
ในเวอร์ชัน 8.3 มีการเพิ่มพารามิเตอร์ใหม่หลายตัวเพื่อกำหนดค่าเซิร์ฟเวอร์ที่ใช้งานจริง:
- หน่วยความจำเวิร์กโฟลว์สูงสุด- การตั้งค่านี้ช่วยให้คุณควบคุมจำนวนหน่วยความจำที่กระบวนการของผู้ปฏิบัติงานทั้งหมดของคลัสเตอร์ที่กำหนดบนเซิร์ฟเวอร์ที่ทำงานที่กำหนดสามารถใช้งานได้
- การใช้หน่วยความจำที่ปลอดภัยต่อการโทร- การตั้งค่าช่วยให้คุณสามารถจำกัดจำนวนหน่วยความจำที่จะใช้เมื่อทำการเรียกเซิร์ฟเวอร์บนเซิร์ฟเวอร์ที่ทำงานที่กำหนด
- จำนวนความปลอดภัยของข้อมูลต่อกระบวนการและจำนวนการเชื่อมต่อต่อกระบวนการ- การตั้งค่าเหล่านี้ช่วยให้คุณสามารถควบคุมจำนวนกระบวนการของผู้ปฏิบัติงานบนเซิร์ฟเวอร์ที่ทำงานได้โดยอ้อม
- ผู้จัดการสำหรับแต่ละบริการ- การกำหนดค่าช่วยให้คุณสามารถเรียกใช้บริการตัวจัดการคลัสเตอร์แต่ละรายการเป็นกระบวนการที่แยกจากกัน
3. การตั้งค่าเซิร์ฟเวอร์ SQL
คุณสมบัติของการปรับแต่ง Microsoft Sql Server เพื่อเพิ่มประสิทธิภาพสามารถดูได้บนดิสก์ ITS
การใช้แผนการบำรุงรักษาในส่วนการจัดการ คุณต้องดำเนินการงานประจำต่อไปนี้เพื่อปรับปรุงประสิทธิภาพการผลิต:
- การจัดเรียงข้อมูลดัชนีและการอัปเดตสถิติต้องทำทุกวันเพราะว่า หากการกระจายตัวของดัชนี> 25% จะลดประสิทธิภาพของเซิร์ฟเวอร์ลงอย่างมาก
- การจัดเรียงข้อมูลและการอัปเดตสถิติทำได้รวดเร็วและไม่จำเป็นต้องตัดการเชื่อมต่อผู้ใช้ แนะนำให้ทำทุกวันด้วย
- การจัดทำดัชนีใหม่ทั้งหมด – แนะนำให้ทำอย่างน้อยสัปดาห์ละครั้งเมื่อทำการบล็อกฐานข้อมูลแล้ว โดยปกติแล้ว หลังจากการจัดทำดัชนีใหม่เสร็จสมบูรณ์ ดัชนีจะถูกจัดเรียงข้อมูลทันทีและสถิติจะได้รับการอัปเดต
3.1 การวิเคราะห์ระดับการกระจายตัวของดัชนี
การกระจายตัวของดัชนีที่มากเกินไปสร้างปัญหาสำหรับการดำเนินการ I/O ขนาดใหญ่ หลังจากดำเนินการแก้ไขข้อมูลในตารางฐานข้อมูลอย่างเข้มข้น เวลาดำเนินการของการสืบค้นและการดำเนินการแก้ไขข้อมูลจะเพิ่มขึ้น
นี่เป็นเพราะความจริงที่ว่าการดำเนินการดังกล่าวแก้ไขดัชนี ซึ่งนำไปสู่การแยกส่วนและการเพิ่มจำนวนการดำเนินการ I/O เมื่อใช้ดัชนีระหว่างการดำเนินการอ่านและเขียนข้อมูล
เพื่อการใช้ดัชนีอย่างมีประสิทธิภาพ ต้องใช้ Microsoft SQL Server
- สร้างดัชนีตารางฐานข้อมูลใหม่เป็นประจำโดยใช้คำสั่ง DBCC DBREINDEX ( table_name ) .
- จัดเรียงดัชนีฐานข้อมูลเป็นประจำโดยใช้คำสั่ง ดัชนี DBCC DEFRAG (ฐานข้อมูล_ชื่อ, ตาราง_ชื่อ, index_name) .
ทางเลือกของวิธีแก้ปัญหานี้ขึ้นอยู่กับความเข้มข้นของการดำเนินการในการปรับเปลี่ยนตารางฐานข้อมูล
MS SQL Server 2005 มีเครื่องมือใหม่เพื่อควบคุมพารามิเตอร์นี้
ฟังก์ชั่นตารางควบคุมแบบไดนามิก sys.dm_db_index_physical_statsส่งกลับเปอร์เซ็นต์ของการกระจายตัวในคอลัมน์ เฉลี่ย_fragmentation_in_percent- หากค่าในคอลัมน์นี้มากกว่า 25% เราขอแนะนำให้จัดเรียงข้อมูลดัชนีนี้เพื่อคืนค่าประสิทธิภาพเดิม การสแกนช่วงกว้างซึ่งพบได้ทั่วไปในคลังข้อมูลและแอปพลิเคชันการรายงานจะได้รับประโยชน์จากการกระจายตัวของดัชนีที่ลดลง
การใช้ข้อมูลนี้สามารถลดภาระของระบบได้อย่างมาก และหลีกเลี่ยงการดำเนินการจัดเรียงข้อมูลที่ไม่จำเป็นสำหรับดัชนีที่ไม่ต้องการ
3.2 การใช้หน่วยความจำกายภาพมากกว่า 2 GB ใน Microsoft SQL Server
ไมโครซอฟต์ SQL เซิร์ฟเวอร์ 2000 Standard Edition และ Microsoft SQL Server 2005 Workgroup Editionสามารถใช้หน่วยความจำกายภาพได้สูงสุด 2 GB ซึ่งได้รับการจัดสรรแบบไดนามิกและว่างขึ้นอยู่กับปริมาณงาน เมื่อขนาดฐานข้อมูลเพิ่มขึ้น จำนวน RAM นี้จะไม่เพียงพอต่อการแคชข้อมูลอย่างมีประสิทธิภาพและรักษาประสิทธิภาพที่ยอมรับได้
3.3 การลดขนาดบันทึกธุรกรรม Microsoft SQL Server
การดำเนินการอย่างเข้มข้นเพื่อแก้ไขข้อมูลฐานข้อมูลส่งผลให้ขนาดไฟล์ข้อมูลและบันทึกธุรกรรมเพิ่มขึ้น ในบางช่วงเวลา รายการบันทึกธุรกรรมเก่าไม่จำเป็นสำหรับการกู้คืนฐานข้อมูลอีกต่อไป และสามารถลบได้ จึงเป็นการเพิ่มพื้นที่ว่างสำหรับรายการใหม่ หากคุณไม่ลบรายการบันทึกธุรกรรมเก่าทันที หลังจากนั้นครู่หนึ่งไฟล์บันทึกธุรกรรมอาจใช้พื้นที่ว่างในดิสก์ทั้งหมดและการทำงานกับฐานข้อมูลจะเป็นไปไม่ได้
ในการลดขนาดไฟล์บันทึก คุณต้องลบรายการบันทึกธุรกรรมที่ไม่ได้ใช้งานก่อนโดยใช้คำสั่ง บันทึกการสำรองข้อมูลแล้วใช้คำสั่ง DBCC SHRINKFILEลดขนาดของไฟล์บันทึกธุรกรรม ลำดับของคำสั่งที่จะดำเนินการ ตัววิเคราะห์แบบสอบถามดูเหมือนว่านี้:
บันทึกการสำรองข้อมูล ฐานข้อมูล_ชื่อ ด้วย TRUNCATE_ONLY
DBCC SHRINKFILE(Transaction_Log_File_Name)
3.4 การย้ายฐานข้อมูล TEMPDB ไปยังดิสก์อื่นที่ใหญ่กว่า
TEMPDB เป็นฐานข้อมูลระบบ Microsoft SQL Server ที่เก็บตารางชั่วคราวที่สร้างโดยเซิร์ฟเวอร์เองและโดยผู้ใช้ ฐานข้อมูลนี้ถูกสร้างขึ้นใหม่ทุกครั้งที่เริ่มระบบ Microsoft SQL Server ใหม่ ตามค่าเริ่มต้น ขนาดของฐานข้อมูลนี้ไม่จำกัด และจะเพิ่มขึ้นโดยอัตโนมัติ หากจำเป็น ในส่วน 10% ของขนาด TEMPDB ปัจจุบัน อย่างไรก็ตาม ผู้ใช้สามารถแทนที่พารามิเตอร์เหล่านี้ได้ ตามค่าเริ่มต้น ขนาดต่ำสุดของฐานข้อมูลนี้ ซึ่งตั้งค่าไว้เมื่อ Microsoft SQL Server เริ่มทำงาน จะถูกกำหนดโดยขนาดของฐานข้อมูลระบบ MODEL การล้างบันทึกธุรกรรมบนฐานข้อมูลนี้เป็นไปโดยอัตโนมัติ และจะลบเฉพาะรายการบันทึกธุรกรรมที่ไม่ได้ใช้งานเท่านั้น
เมื่อรัน 1C:Enterprise 8 ในโหมดไคลเอนต์-เซิร์ฟเวอร์ ตารางชั่วคราวจะถูกนำมาใช้อย่างกว้างขวาง . นอกจากนี้ TEMPDB ยังถูกใช้โดย Microsoft SQL Server เมื่อดำเนินการแบบสอบถามที่ใช้คำสั่ง จัดกลุ่มตาม, ยูเนี่ยน, แตกต่างฯลฯ
ในระหว่างการทำงานของ 1C:Enterprise 8 สามารถเพิ่มขนาดของฐานข้อมูล TEMPDB ได้อย่างมีนัยสำคัญ หากขนาดของดิสก์ที่ฐานข้อมูล TEMPDB ตั้งอยู่ไม่เพียงพอ 1C:Enterprise 8 อาจหยุดทำงาน
หากปัญหานี้เกิดขึ้นเป็นประจำ แนะนำให้ย้าย TEMPDB ไปยังดิสก์อื่นที่ใหญ่กว่า
การดำเนินการนี้สามารถทำได้ด้วยวิธีต่อไปนี้:
1. กำหนดชื่อตรรกะของไฟล์ฐานข้อมูล TEMPDB (คอลัมน์ "NAME" ของผลลัพธ์ของขั้นตอน) เมื่อต้องการทำเช่นนี้ คุณจำเป็นต้องเรียกใช้คำสั่งต่อไปนี้ในตัววิเคราะห์แบบสอบถาม:
ใช้ tempdb GO EXEC sp_helpfile GO 2. เปลี่ยนตำแหน่งของไฟล์ฐานข้อมูล TEMPDB โดยใช้คำสั่ง แก้ไขฐานข้อมูล- เมื่อต้องการทำเช่นนี้ คุณต้องเรียกใช้ลำดับของคำสั่งต่อไปนี้ในตัววิเคราะห์แบบสอบถาม: ใช้หลัก GO ALTER DATABASE tempdb MODIFY FILE (NAME = ชั่วคราว,ชื่อไฟล์= "New_Disk:\New_Directory\tempdb.mdf") ไปแก้ไขฐานข้อมูล tempdb แก้ไขไฟล์ (NAME = เทมเพลต,ชื่อไฟล์= "New_Disk:\New_Directory\templog.ldf") ไป 3. รีสตาร์ท Microsoft SQL Server
4. การเพิ่มประสิทธิภาพของโค้ดและอัลกอริธึมใน 1C
4.1 การเพิ่มประสิทธิภาพการค้นหา
ส่วนสำคัญของปัญหาที่ทำให้แบบสอบถามดำเนินการได้ไม่ดีนักสามารถตรวจพบได้โดยการวิเคราะห์รหัสการกำหนดค่าและโครงสร้างข้อมูลเมตา มีรายการข้อผิดพลาดทั่วไปในโค้ดและโครงสร้างข้อมูล ซึ่งมีการศึกษาผลที่ตามมาค่อนข้างดีและคาดเดาได้ง่าย การวิเคราะห์โค้ดโดยใช้รายการตรวจสอบนี้ช่วยให้คุณสามารถแก้ไขปัญหาประสิทธิภาพการสืบค้นส่วนใหญ่ได้โดยไม่ต้องเจาะลึกข้อมูลทางเทคนิคโดยละเอียด (ข้อความสืบค้น SQL, แผนการสืบค้น ฯลฯ)
สาเหตุหลักสำหรับประสิทธิภาพการสืบค้นที่ไม่เหมาะสมซึ่งได้รับการวินิจฉัยในระดับรหัสการกำหนดค่าและโครงสร้างข้อมูลเมตาจะกล่าวถึงในดิสก์ ITS:
- เข้าร่วมกับแบบสอบถามย่อย
- การเชื่อมต่อกับตารางเสมือน
- ไม่ตรงกันระหว่างดัชนีและเงื่อนไขการสืบค้น
- โดยใช้ตรรกะหรือในเงื่อนไข
- การใช้แบบสอบถามย่อยในเงื่อนไขการเข้าร่วม
- รับข้อมูลผ่านจุดจากช่องประเภทคอมโพสิต
- การกรองตารางเสมือนโดยไม่ต้องใช้พารามิเตอร์
4.2 การใช้การวัดประสิทธิภาพ
1C:Enterprise 8 ช่วยให้คุณสามารถดีบักและวัดประสิทธิภาพของโค้ดในภาษาในตัว ซึ่งดำเนินการทั้งบนไคลเอนต์และเซิร์ฟเวอร์ คุณสมบัติพิเศษของการวัดประสิทธิภาพสำหรับฐานข้อมูลไคลเอนต์ - เซิร์ฟเวอร์ใน 1C: Enterprise 8 คือผลการวัดประสิทธิภาพจะรวมกันเป็นไฟล์เดียว รวมถึงข้อมูลเกี่ยวกับความคืบหน้าในการดำเนินการของโค้ดในภาษาที่ฝังไว้ทั้งบนไคลเอนต์และเซิร์ฟเวอร์ หากต้องการรับการวัดดังกล่าว ก็เพียงพอที่จะเริ่มเซิร์ฟเวอร์ 1C:Enterprise 8 ในโหมดแก้ไขข้อบกพร่อง (โดยใช้สวิตช์บรรทัดคำสั่ง /ดีบั๊ก) และใน Configurator เพียงเปิดโหมดการวัดประสิทธิภาพในเวลาที่เหมาะสม
โหมดการวัดประสิทธิภาพใน 1C:Enterprise 8 ช่วยให้คุณสามารถปรับการทำงานของแอปพลิเคชันไคลเอ็นต์-เซิร์ฟเวอร์ให้เหมาะสมที่สุดได้สำเร็จ ในการดำเนินการปรับให้เหมาะสมนั้น ก็เพียงพอแล้วที่จะดำเนินการเพียงไม่กี่ขั้นตอน จากนั้นวิเคราะห์ผลลัพธ์ของการวัดประสิทธิภาพ และปรับปรุงโค้ดในภาษาในตัว
รายละเอียดเพิ่มเติมเกี่ยวกับการใช้การวัดประสิทธิภาพมีอยู่ในดิสก์ ITS
ก่อนที่จะเริ่มงานเพิ่มประสิทธิภาพระบบ คุณควรได้รับการประเมินประสิทธิภาพเบื้องต้นโดยใช้ "การประเมินประสิทธิภาพระบบแบบรวม APDEX" เสมอ
4.3 เครื่องมือการปรับโครงสร้างโค้ดใหม่
ฟังก์ชันการปรับโครงสร้างโค้ดที่ใช้งานในตัวกำหนดค่าแพลตฟอร์ม 8.3.5, 1068 รวมถึงฟังก์ชันสำหรับการแปลงเมธอดโมดอลและส่วนโค้ดโดยอัตโนมัติจะแสดงในรูปที่ 1
รูปที่ 1 เครื่องมือการปรับโครงสร้างโค้ดในตัวปรับแต่ง
นักพัฒนาแพลตฟอร์มอธิบายความจำเป็นในการใช้เครื่องมือเหล่านี้โดยข้อเท็จจริงที่ว่าโค้ดของโซลูชันแอปพลิเคชันจะต้องเข้าใจได้ โดยเฉพาะอย่างยิ่งเมื่อกลุ่มนักพัฒนาหลายรายกำลังทำงานเกี่ยวกับการกำหนดค่า จากนั้นโค้ดโปรแกรมก็ง่ายต่อการบำรุงรักษาและแก้ไข
บ่อยครั้งที่บริการอื่น ๆ ทำงานบนเครื่องพร้อมกับเซิร์ฟเวอร์ 1C: Enterprise - เซิร์ฟเวอร์เทอร์มินัล, เซิร์ฟเวอร์ SQL เป็นต้น และในบางจุดเซิร์ฟเวอร์ 1C:Enterprise หรือกระบวนการของผู้ปฏิบัติงาน rphost จะกินหน่วยความจำมากกว่าที่วางแผนไว้หรือหน่วยความจำทั้งหมด ซึ่งนำไปสู่การชะลอตัวของบริการอื่น ๆ และซอมบี้ของเซิร์ฟเวอร์ เพื่อหลีกเลี่ยงสถานการณ์ดังกล่าว คุณต้องกำหนดค่าการรีสตาร์ทอัตโนมัติของเวิร์กโฟลว์เซิร์ฟเวอร์ 1C:Enterprise
สารละลาย
1. เปิดคอนโซลการดูแลระบบของเซิร์ฟเวอร์ 1C Enterprise
2. ขยายแผนผังเซิร์ฟเวอร์กลางเป็นคลัสเตอร์ และเลือกคลัสเตอร์ที่เราสนใจ ในตัวอย่างมีเพียงคลัสเตอร์เดียวเท่านั้น
3. เปิดคุณสมบัติของคลัสเตอร์ที่เลือกและดูแบบฟอร์มต่อไปนี้
คุณสมบัติของคลัสเตอร์เซิร์ฟเวอร์ 1C:Enterprise 8.3
ลองดูตัวอย่างที่แสดงในภาพ:
รีสตาร์ทช่วงเวลา— เวลาที่กระบวนการ rphost จะถูกบังคับให้รีสตาร์ท ก่อนที่กระบวนการจะยุติ กระบวนการ rphost ใหม่จะถูกเรียกใช้งาน ซึ่งการเชื่อมต่อทั้งหมดจะถูกถ่ายโอนไปยัง และจากนั้นเท่านั้นที่กระบวนการเก่าจะยุติลง ซึ่งจะไม่ส่งผลกระทบต่อประสบการณ์ของผู้ใช้แต่อย่างใด ช่วงเวลาจะแสดงเป็นวินาที โดยในตัวอย่างนี้ระบุ 24 ชั่วโมง
ขนาดหน่วยความจำที่อนุญาต— จำนวนหน่วยความจำที่เวิร์กโฟลว์สามารถทำงานได้โดยไม่มีปัญหา ปริมาตรระบุเป็นกิโลไบต์ ในตัวอย่างนี้มีค่า 20 กิกะไบต์ (อันที่จริงตัวเลขมีขนาดใหญ่เกินไปและคุณต้องเริ่มจากระบบเฉพาะ แต่ตัวเลขเฉลี่ยคือ 4 GB) ทันทีที่หน่วยความจำที่กระบวนการทำงานครอบครองเกินค่าที่ระบุ การนับถอยหลังจะเริ่มขึ้น
ช่วงเวลาสำหรับการเกินจำนวนหน่วยความจำที่อนุญาต— หลังจากที่ตัวจับเวลาเริ่มทำงานหลังจากเกินจำนวนหน่วยความจำที่อนุญาตนับถอยหลังตามเวลาที่กำหนด กระบวนการของผู้ปฏิบัติงานใหม่จะเปิดตัว ซึ่งการเชื่อมต่อทั้งหมดจะถูกถ่ายโอน กระบวนการเก่าจะถูกทำเครื่องหมายเป็นปิดใช้งาน ช่วงเวลาระบุเป็นวินาที โดยในตัวอย่างนี้ระบุ 30 วินาที
หยุดกระบวนการที่ถูกปิดใช้งานหลังจากนั้น— เวลาที่เวิร์กโฟลว์ที่ทำเครื่องหมายว่าปิดใช้งานจะหยุดลง หากค่าเป็น 0 กระบวนการจะไม่เสร็จสมบูรณ์ ช่วงเวลาระบุเป็นวินาที โดยในตัวอย่างนี้ระบุ 60 วินาที
หลังจากใช้การตั้งค่า คุณไม่จำเป็นต้องรีสตาร์ทบริการเซิร์ฟเวอร์ แต่จะนำไปใช้แบบไดนามิก
ทั้งหมด
นี่คือวิธีที่เราตั้งค่าการรีสตาร์ทอัตโนมัติของกระบวนการทำงานของเซิร์ฟเวอร์ 1C:Enterprise และได้รับระบบที่เสถียรยิ่งขึ้น หากเกิดหน่วยความจำรั่ว การทำงานของเซสชันเฉพาะจะสิ้นสุดลง
นอกจากนี้ ในบางสถานการณ์ คุณสามารถเล่นกับการตั้งค่าและป้องกันไม่ให้เซิร์ฟเวอร์ล่มหากคุณทำผิดพลาด
ก่อนอื่น หลังจากติดตั้งคลัสเตอร์ 1C แล้ว จำเป็นต้องสร้างเวิร์กโฟลว์ เมื่อปรากฎว่า กระบวนการคลัสเตอร์เริ่มถูกสร้างขึ้นโดยอัตโนมัติ ขึ้นอยู่กับโหลดของฐานข้อมูล
การทดสอบการทำงานพื้นหลังของฐานข้อมูลหลักทำให้คลัสเตอร์ 1C โอเวอร์โหลด rphost.exe อย่างไม่มีที่สิ้นสุด และไม่ต้องการสร้าง rphost.exe เพิ่มเติม หลังจากขุดผ่านการตั้งค่า ทุกอย่างก็ชัดเจน
หน่วยความจำเวิร์กโฟลว์สูงสุดคือจำนวนหน่วยความจำที่กระบวนการของผู้ปฏิบัติงานสามารถใช้ร่วมกันได้ คุณต้องระมัดระวังอย่างมากเมื่อตั้งค่าพารามิเตอร์โดยวัดเป็นไบต์ หากคุณตั้งค่าผิด (ไม่เพียงพอสำหรับการดำเนินการของผู้ใช้ปกติ) ผู้ใช้จะได้รับข้อผิดพลาด "หน่วยความจำว่างไม่เพียงพอบนเซิร์ฟเวอร์ 1C" คุณยังสามารถได้รับข้อผิดพลาดนี้เมื่อโควต้าหน่วยความจำบนเซิร์ฟเวอร์ 1C หมด
การใช้หน่วยความจำที่ปลอดภัยต่อการโทร– ช่วยให้คุณควบคุมการใช้หน่วยความจำระหว่างการเรียกเซิร์ฟเวอร์ โดยวัดเป็นไบต์ หากการโทรใช้หน่วยความจำมากกว่าที่คาดไว้ การโทรนี้จะเสร็จสิ้นภายในคลัสเตอร์ 1C โดยไม่ต้องรีสตาร์ทกระบวนการของผู้ปฏิบัติงาน (rphost.exe) ดังนั้น "ผู้แพ้" ที่ทำการเรียกเซิร์ฟเวอร์จะสูญเสียเซสชันของเขากับฐานข้อมูล 1C โดยไม่ส่งผลกระทบต่อการทำงานของผู้ใช้รายอื่น
ในหนึ่ง GB – 1073741824 ไบต์ ดังนั้นใน 2 GB – 2147483648 ไบต์
จำนวนหน่วยความจำสำหรับกระบวนการทำงานซึ่งเซิร์ฟเวอร์ถือว่ามีประสิทธิผล - หากเกินพารามิเตอร์นี้ เซิร์ฟเวอร์ในคลัสเตอร์ 1C จะหยุดยอมรับการเชื่อมต่อใหม่
จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ– ช่วยให้คุณสามารถแยกฐานข้อมูลสำหรับกระบวนการทำงานได้ ตามค่าเริ่มต้น คลัสเตอร์ 1C ปัจจุบันถูกตั้งค่าเป็น “ 8 “ แต่ตลอดระยะเวลาการทำงานหลายชั่วโมง เซิร์ฟเวอร์มีพฤติกรรมไม่เสถียรอย่างมาก เซสชันผู้ใช้ค้าง หลังจากแยกแต่ละฐานข้อมูล (ค่า - “1”) ปัญหาก็หายไป
จำนวนการเชื่อมต่อต่อกระบวนการ– ค่าเริ่มต้น “ 128 - เนื่องจากฐานข้อมูลปัจจุบันมีภาระงานเบื้องหลังจำนวนมาก (การคำนวณด้านลอจิสติกส์ การวิเคราะห์รายการราคา การวิเคราะห์คู่แข่ง ฯลฯ) จึงตัดสินใจลดจำนวนลงเหลือ "25"
การตั้งค่าของคลัสเตอร์ 1C นั้นเปลี่ยนไปเล็กน้อย:
ระดับการยอมรับข้อผิดพลาด– นี่คือจำนวนเซิร์ฟเวอร์ที่ทำงานซึ่งสามารถทำงานล้มเหลวพร้อมกันได้ และจะไม่นำไปสู่การยุติการใช้งานฉุกเฉินของผู้ใช้ บริการสำรองข้อมูลจะเปิดตัวโดยอัตโนมัติตามปริมาณที่จำเป็นเพื่อให้แน่ใจว่ามีความทนทานต่อข้อผิดพลาดที่ระบุ ในแบบเรียลไทม์ บริการที่ใช้งานอยู่จะถูกจำลองไปยังบริการสำรอง
โหลดโหมดการแชร์– มีสองตัวเลือกสำหรับพารามิเตอร์: “ลำดับความสำคัญตามประสิทธิภาพ” – ใช้หน่วยความจำเซิร์ฟเวอร์มากขึ้นและประสิทธิภาพสูงขึ้น “ลำดับความสำคัญตามหน่วยความจำ” – คลัสเตอร์ 1C บันทึกหน่วยความจำเซิร์ฟเวอร์
เซิร์ฟเวอร์ 8.3 มีลักษณะพิเศษคือโค้ดภายในที่ออกแบบใหม่ แม้ว่า "จากภายนอก" อาจดูเหมือนเป็นเวอร์ชัน 8.2 ที่ได้รับการแก้ไขเล็กน้อย
เซิร์ฟเวอร์มี "การกำหนดค่าอัตโนมัติ" มากขึ้น พารามิเตอร์บางอย่าง เช่น จำนวนกระบวนการของผู้ปฏิบัติงาน จะไม่ถูกสร้างขึ้นด้วยตนเองอีกต่อไป แต่คำนวณตามคำอธิบายข้อกำหนดของความทนทานต่อข้อผิดพลาดและงานความน่าเชื่อถือ
ซึ่งจะช่วยลดโอกาสที่เซิร์ฟเวอร์จะกำหนดค่าไม่ถูกต้อง และลดข้อกำหนดคุณสมบัติสำหรับผู้ดูแลระบบลง
กลไกการปรับสมดุลโหลดได้รับการพัฒนาซึ่งสามารถใช้เพื่อเพิ่มประสิทธิภาพของระบบโดยรวม หรือใช้โหมด "ประหยัดหน่วยความจำ" ใหม่ ซึ่งช่วยให้คุณทำงาน "ด้วยหน่วยความจำที่จำกัด" ในกรณีที่การกำหนดค่า ใช้คำว่า “ชอบกินความจำ”
ความเสถียรของการทำงานเมื่อใช้หน่วยความจำจำนวนมากจะถูกกำหนดโดยพารามิเตอร์ใหม่ของเซิร์ฟเวอร์ที่ใช้งานจริง
พารามิเตอร์ "การใช้หน่วยความจำที่ปลอดภัยต่อการโทร" มีความน่าสนใจเป็นพิเศษ สำหรับผู้ที่ไม่ค่อยรู้ว่ามันคืออะไร ไม่ควรฝึกแบบ "มีประสิทธิผล" จะดีกว่า พารามิเตอร์ "ขนาดหน่วยความจำสูงสุดของกระบวนการทำงาน" อนุญาตให้ในกรณี "ล้น" ไม่ให้ขัดข้องกระบวนการทำงานทั้งหมด แต่จะมีเพียงเซสชันเดียว "กับผู้แพ้" “ จำนวนหน่วยความจำกระบวนการทำงานซึ่งเซิร์ฟเวอร์ถือว่ามีประสิทธิผล” ช่วยให้คุณสามารถบล็อกการเชื่อมต่อใหม่ได้ทันทีที่เกินเกณฑ์หน่วยความจำนี้
ฉันแนะนำให้แยกกระบวนการทำงานตามฐานข้อมูล เช่น ระบุพารามิเตอร์ “จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ = 1” ด้วยฐานข้อมูลที่มีการโหลดสูงจำนวนมาก สิ่งนี้จะลดอิทธิพลร่วมกันทั้งในแง่ของความน่าเชื่อถือและประสิทธิภาพ
การสนับสนุนที่แยกต่างหากเพื่อความเสถียรของระบบนั้นมาจาก "ค่าใช้จ่าย" ของใบอนุญาต/คีย์ ใน 8.3 มีความเป็นไปได้ที่จะใช้ "ตัวจัดการลิขสิทธิ์ซอฟต์แวร์" ซึ่งชวนให้นึกถึงตัวจัดการ "aladin" เป้าหมายคือสามารถวางกุญแจไว้บนเครื่องแยกต่างหากได้
มันถูกนำไปใช้เป็น “บริการ” อื่นในตัวจัดการคลัสเตอร์ คุณสามารถใช้แล็ปท็อป "ฟรี" ได้ เพิ่มลงในคลัสเตอร์ 1C 8.3 สร้างผู้จัดการแยกต่างหากด้วยบริการ "บริการลิขสิทธิ์" คุณสามารถใส่คีย์ hasp ของฮาร์ดแวร์ลงในแล็ปท็อปของคุณ หรือเปิดใช้งานลิขสิทธิ์ซอฟต์แวร์ได้
สิ่งที่น่าสนใจที่สุดสำหรับโปรแกรมเมอร์ควรเป็น "ข้อกำหนดในการกำหนดฟังก์ชันการทำงาน"
ข้อกำหนดสำหรับฟังก์ชันการทำงานที่ได้รับมอบหมายของ 1c
ดังนั้นบนแล็ปท็อปที่มีรหัสความปลอดภัย เพื่อไม่ให้ผู้ใช้เปิดใช้งานบนเซิร์ฟเวอร์คลัสเตอร์ คุณต้องเพิ่ม "ข้อกำหนด" สำหรับออบเจ็กต์ข้อกำหนด "การเชื่อมต่อไคลเอ็นต์กับความปลอดภัยของข้อมูล" - "อย่ากำหนด" เช่น ป้องกันไม่ให้กระบวนการของผู้ปฏิบัติงานบนเซิร์ฟเวอร์นี้ประมวลผลการเชื่อมต่อไคลเอ็นต์
สิ่งที่น่าสนใจยิ่งกว่านั้นคือความสามารถในการรัน "งานพื้นหลังเท่านั้น" บนเซิร์ฟเวอร์ที่ใช้งานจริงของคลัสเตอร์โดยไม่มีเซสชันผู้ใช้ วิธีนี้ทำให้คุณสามารถย้ายงานที่โหลดสูง (โค้ด) ไปยังเครื่องอื่นได้ นอกจากนี้ คุณสามารถรันงานพื้นหลังหนึ่งงานในการ "ปิดเดือน" โดยใช้ "ค่าของพารามิเตอร์เพิ่มเติม" บนคอมพิวเตอร์เครื่องหนึ่ง และงานพื้นหลัง "การอัปเดตดัชนีข้อความแบบเต็ม" ในอีกเครื่องหนึ่ง การชี้แจงเกิดขึ้นผ่านการบ่งชี้ "ค่าของ พารามิเตอร์เพิ่มเติม” ตัวอย่างเช่น หากคุณระบุ BackgroundJob.CommonModule เป็นค่า คุณสามารถจำกัดการทำงานของเซิร์ฟเวอร์ผู้ปฏิบัติงานในคลัสเตอร์ให้เหลือเฉพาะงานพื้นหลังที่มีเนื้อหาใดๆ ได้ ค่า BackgroundJob.CommonModule<Имя модуля>.<Имя метода>– จะระบุรหัสเฉพาะ
ตอนนี้มีรายละเอียดเพิ่มเติมเล็กน้อย:
คลัสเตอร์ 1C 8.3
ก่อนอื่น หลังจากติดตั้งคลัสเตอร์ 1C แล้ว จำเป็นต้องสร้างเวิร์กโฟลว์ เมื่อปรากฎว่า กระบวนการคลัสเตอร์เริ่มถูกสร้างขึ้นโดยอัตโนมัติ ขึ้นอยู่กับโหลดของฐานข้อมูล
การทดสอบการทำงานพื้นหลังของฐานข้อมูลหลักทำให้คลัสเตอร์ 1C โอเวอร์โหลด rphost.exe อย่างไม่มีที่สิ้นสุด และไม่ต้องการสร้าง rphost.exe เพิ่มเติม หลังจากขุดผ่านการตั้งค่า ทุกอย่างก็ชัดเจน
หน่วยความจำเวิร์กโฟลว์สูงสุดคือจำนวนหน่วยความจำที่กระบวนการของผู้ปฏิบัติงานสามารถใช้ร่วมกันได้ คุณต้องระมัดระวังอย่างมากเมื่อตั้งค่าพารามิเตอร์โดยวัดเป็นไบต์ หากคุณตั้งค่าผิด (ไม่เพียงพอสำหรับการดำเนินการของผู้ใช้ปกติ) ผู้ใช้จะได้รับข้อผิดพลาด "หน่วยความจำว่างไม่เพียงพอบนเซิร์ฟเวอร์ 1C" คุณยังสามารถได้รับข้อผิดพลาดนี้เมื่อโควต้าหน่วยความจำบนเซิร์ฟเวอร์ 1C หมด
การใช้หน่วยความจำที่ปลอดภัยต่อการโทร- ช่วยให้คุณควบคุมการใช้หน่วยความจำระหว่างการเรียกเซิร์ฟเวอร์ โดยวัดเป็นไบต์ หากการโทรใช้หน่วยความจำมากกว่าที่คาดไว้ การโทรนี้จะเสร็จสิ้นภายในคลัสเตอร์ 1C โดยไม่ต้องรีสตาร์ทกระบวนการของผู้ปฏิบัติงาน (rphost.exe) ดังนั้น "ผู้แพ้" ที่ทำการเรียกเซิร์ฟเวอร์จะสูญเสียเซสชันของเขากับฐานข้อมูล 1C โดยไม่ส่งผลกระทบต่อการทำงานของผู้ใช้รายอื่น
ในหนึ่ง GB - 1073741824 ไบต์ดังนั้นใน 2 GB - 2147483648 ไบต์
จำนวนหน่วยความจำสำหรับกระบวนการทำงานซึ่งเซิร์ฟเวอร์ถือว่ามีประสิทธิผล - หากเกินพารามิเตอร์นี้ เซิร์ฟเวอร์ในคลัสเตอร์ 1C จะหยุดยอมรับการเชื่อมต่อใหม่
จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ- ช่วยให้คุณสามารถแยกฐานข้อมูลสำหรับกระบวนการทำงานได้ ตามค่าเริ่มต้น คลัสเตอร์ 1C ปัจจุบันถูกตั้งค่าเป็น "8" แต่ในช่วงหลายชั่วโมงของการทำงาน เซิร์ฟเวอร์เริ่มไม่เสถียรอย่างมาก เซสชันผู้ใช้ค้าง หลังจากแยกแต่ละฐานข้อมูล (ค่า - "1") ปัญหาก็หายไป
จำนวนการเชื่อมต่อต่อกระบวนการ- ค่าเริ่มต้นคือ "128" เนื่องจากฐานข้อมูลปัจจุบันมีภาระงานเบื้องหลังจำนวนมาก (การคำนวณด้านลอจิสติกส์ การวิเคราะห์รายการราคา การวิเคราะห์คู่แข่ง ฯลฯ) จึงตัดสินใจลดจำนวนลงเหลือ "25"
การตั้งค่าของคลัสเตอร์ 1C นั้นเปลี่ยนไปเล็กน้อย:
ระดับการยอมรับข้อผิดพลาด- นี่คือจำนวนเซิร์ฟเวอร์ที่ทำงานซึ่งสามารถทำงานล้มเหลวพร้อมกันได้โดยไม่ทำให้ผู้ใช้เสียหาย บริการสำรองข้อมูลจะเปิดตัวโดยอัตโนมัติตามปริมาณที่จำเป็นเพื่อให้แน่ใจว่ามีความทนทานต่อข้อผิดพลาดที่ระบุ ในแบบเรียลไทม์ บริการที่ใช้งานอยู่จะถูกจำลองไปยังบริการสำรอง
โหลดโหมดการแชร์- มีสองตัวเลือกสำหรับพารามิเตอร์: "ลำดับความสำคัญตามประสิทธิภาพ" - ใช้หน่วยความจำเซิร์ฟเวอร์มากขึ้นและประสิทธิภาพสูงขึ้น "ลำดับความสำคัญตามหน่วยความจำ" - คลัสเตอร์ 1C บันทึกหน่วยความจำเซิร์ฟเวอร์
เซิร์ฟเวอร์ 8.3 มีลักษณะพิเศษคือโค้ดภายในที่ออกแบบใหม่ แม้ว่า "จากภายนอก" อาจดูเหมือนเป็นเวอร์ชัน 8.2 ที่ได้รับการแก้ไขเล็กน้อย
เซิร์ฟเวอร์มี "การกำหนดค่าอัตโนมัติ" มากขึ้น พารามิเตอร์บางอย่าง เช่น จำนวนกระบวนการของผู้ปฏิบัติงาน จะไม่ถูกสร้างขึ้นด้วยตนเองอีกต่อไป แต่คำนวณตามคำอธิบายข้อกำหนดของความทนทานต่อข้อผิดพลาดและงานความน่าเชื่อถือ
ซึ่งจะช่วยลดโอกาสที่เซิร์ฟเวอร์จะกำหนดค่าไม่ถูกต้อง และลดข้อกำหนดคุณสมบัติสำหรับผู้ดูแลระบบลง
กลไกการปรับสมดุลโหลดได้รับการพัฒนาซึ่งสามารถใช้เพื่อเพิ่มประสิทธิภาพของระบบโดยรวม หรือใช้โหมด "ประหยัดหน่วยความจำ" ใหม่ ซึ่งช่วยให้คุณทำงาน "ด้วยหน่วยความจำที่จำกัด" ในกรณีที่การกำหนดค่า ใช้คำว่า “ชอบกินความจำ”
ความเสถียรของการทำงานเมื่อใช้หน่วยความจำจำนวนมากจะถูกกำหนดโดยพารามิเตอร์ใหม่ของเซิร์ฟเวอร์ที่ใช้งานจริง
พารามิเตอร์ "การใช้หน่วยความจำที่ปลอดภัยต่อการโทร" มีความน่าสนใจเป็นพิเศษ สำหรับผู้ที่ไม่ค่อยรู้ว่ามันคืออะไร ไม่ควรฝึกฝนบนพื้นฐานที่ "มีประสิทธิผล" พารามิเตอร์ "ขนาดหน่วยความจำสูงสุดของกระบวนการทำงาน" อนุญาตให้ในกรณี "ล้น" ไม่ให้ขัดข้องกระบวนการทำงานทั้งหมด แต่จะมีเพียงเซสชันเดียว "กับผู้แพ้" “ จำนวนหน่วยความจำกระบวนการทำงานซึ่งเซิร์ฟเวอร์ถือว่ามีประสิทธิผล” ช่วยให้คุณสามารถบล็อกการเชื่อมต่อใหม่ได้ทันทีที่เกินเกณฑ์หน่วยความจำนี้
ฉันแนะนำให้แยกกระบวนการทำงานตามฐานข้อมูล เช่น ระบุพารามิเตอร์ “จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ = 1” ด้วยฐานข้อมูลที่มีการโหลดสูงจำนวนมาก สิ่งนี้จะลดอิทธิพลร่วมกันทั้งในแง่ของความน่าเชื่อถือและประสิทธิภาพ
การสนับสนุนที่แยกต่างหากเพื่อความเสถียรของระบบนั้นมาจาก "ค่าใช้จ่าย" ของใบอนุญาต/คีย์ ใน 8.3 มีความเป็นไปได้ที่จะใช้ "ตัวจัดการลิขสิทธิ์ซอฟต์แวร์" ซึ่งชวนให้นึกถึงตัวจัดการ "aladin" เป้าหมายคือสามารถวางกุญแจไว้บนเครื่องแยกต่างหากได้
มันถูกนำไปใช้เป็น “บริการ” อื่นในตัวจัดการคลัสเตอร์ คุณสามารถใช้แล็ปท็อป "ฟรี" ได้ เพิ่มลงในคลัสเตอร์ 1C 8.3 สร้างผู้จัดการแยกต่างหากด้วยบริการ "บริการลิขสิทธิ์" คุณสามารถใส่คีย์ hasp ของฮาร์ดแวร์ลงในแล็ปท็อปของคุณ หรือเปิดใช้งานลิขสิทธิ์ซอฟต์แวร์ได้
สิ่งที่น่าสนใจที่สุดสำหรับโปรแกรมเมอร์ควรเป็น "ข้อกำหนดในการกำหนดฟังก์ชันการทำงาน"
ข้อกำหนดสำหรับฟังก์ชันการทำงานที่ได้รับมอบหมายของ 1c
ดังนั้นบนแล็ปท็อปที่มีรหัสความปลอดภัย เพื่อไม่ให้ผู้ใช้เปิดใช้งานบนเซิร์ฟเวอร์คลัสเตอร์ คุณต้องเพิ่ม "ข้อกำหนด" สำหรับออบเจ็กต์ข้อกำหนด "การเชื่อมต่อไคลเอ็นต์กับความปลอดภัยของข้อมูล" - "อย่ากำหนด" เช่น ป้องกันไม่ให้กระบวนการของผู้ปฏิบัติงานบนเซิร์ฟเวอร์นี้ประมวลผลการเชื่อมต่อไคลเอ็นต์
สิ่งที่น่าสนใจยิ่งกว่านั้นคือความสามารถในการรัน "งานพื้นหลังเท่านั้น" บนเซิร์ฟเวอร์ที่ใช้งานจริงของคลัสเตอร์โดยไม่มีเซสชันผู้ใช้ วิธีนี้ทำให้คุณสามารถย้ายงานที่โหลดสูง (โค้ด) ไปยังเครื่องอื่นได้ นอกจากนี้ คุณสามารถรันงานพื้นหลังหนึ่งงานในการ "ปิดเดือน" โดยใช้ "ค่าของพารามิเตอร์เพิ่มเติม" บนคอมพิวเตอร์เครื่องหนึ่ง และงานพื้นหลัง "การอัปเดตดัชนีข้อความแบบเต็ม" ในอีกเครื่องหนึ่ง การชี้แจงเกิดขึ้นผ่านการบ่งชี้ "ค่าของ พารามิเตอร์เพิ่มเติม” ตัวอย่างเช่น หากคุณระบุ BackgroundJob.CommonModule เป็นค่า คุณสามารถจำกัดการทำงานของเซิร์ฟเวอร์ผู้ปฏิบัติงานในคลัสเตอร์ให้เหลือเฉพาะงานพื้นหลังที่มีเนื้อหาใดๆ ได้ ค่า BackgroundJob.CommonModule<Имя модуля>.<Имя метода>- จะระบุรหัสเฉพาะ
คลัสเตอร์ 1C 8.2
เซสชันเปิดใช้งานการปรับสมดุลโหลดและความทนทานต่อข้อผิดพลาดภายในแอปพลิเคชันที่ได้รับการจัดการ
ขณะนี้ตัวจัดการคลัสเตอร์มีความซับซ้อนมากขึ้น ขณะนี้บางฟังก์ชันสามารถแยกออกเป็นกระบวนการแยกกันและยังวางไว้บนเซิร์ฟเวอร์ที่ทำงานอื่นในคลัสเตอร์ได้อีกด้วย สิ่งนี้ช่วยให้คุณปรับสมดุลโหลดเซิร์ฟเวอร์ได้
การยอมรับข้อผิดพลาดของเซิร์ฟเวอร์ 8.2 ทำได้ผ่าน:
- จัดเก็บข้อมูลเกี่ยวกับเซสชันของผู้ใช้
- ผู้ใช้ไม่เชื่อมโยงกับเวิร์กโฟลว์อีกต่อไป
- การสำรองกระบวนการทำงานแบบคลัสเตอร์
- ควรมีกระบวนการของผู้ปฏิบัติงานหลายกระบวนการ รวมถึงกระบวนการที่ซ้ำซ้อนด้วย
- การจองคลัสเตอร์
คลัสเตอร์สำรองจะถูกระบุ เมื่อมีการเชื่อมต่อ คลัสเตอร์เหล่านั้นจะแสดงอยู่ในสายการเชื่อมต่อ
สิ่งนี้ช่วยให้คุณมั่นใจได้ถึงความต่อเนื่องของงาน!
หากการเชื่อมต่อทางกายภาพของไคลเอนต์กับคลัสเตอร์ขาด (พนักงานทำความสะอาดดึงสายเคเบิลออก ไฟที่ส่งไปยังอุปกรณ์เครือข่ายถูกปิด มีปัญหากับผู้ให้บริการ) ไม่จำเป็นต้องเชื่อมต่อกับฐานข้อมูลอีกครั้งและเริ่มต้นทั้งหมด งานทั้งหมดอีกครั้ง หลังจากคืนค่าการเชื่อมต่อทางกายภาพแล้ว ผู้ใช้สามารถทำงานต่อจากจุดที่ถูกขัดจังหวะได้
หากจำเป็นต้องมีการบำรุงรักษาคอมพิวเตอร์คลัสเตอร์ ก็สามารถปิดได้ระหว่างการดำเนินการโดยไม่ต้องหยุดผู้ใช้จากการทำงานกับฐานข้อมูล
หากเซิร์ฟเวอร์ใด ๆ ในคลัสเตอร์ล้มเหลว งานของผู้ใช้จะไม่หยุดลง จะถูกโอนไปยังคลัสเตอร์สำรองและ/หรือกระบวนการทำงานสำรองข้อมูลโดยอัตโนมัติ สำหรับผู้ใช้ การเปลี่ยนแปลงดังกล่าวจะมองไม่เห็น
หากกระบวนการของผู้ปฏิบัติงานรายใดรายหนึ่งของคลัสเตอร์ล้มเหลว ผู้ใช้ที่เชื่อมต่อกับคลัสเตอร์จะถูกโอนไปยังกระบวนการอื่นหรือกระบวนการของผู้ปฏิบัติงานสำรองโดยอัตโนมัติ การเปลี่ยนแปลงดังกล่าวจะไม่ปรากฏแก่ผู้ใช้เช่นกัน
โปรดทราบว่าการตั้งค่าคลัสเตอร์มีหน้าที่รับผิดชอบในการตั้งค่าของเซิร์ฟเวอร์ทั้งหมดที่อยู่ในคลัสเตอร์ที่กำหนดค่าไว้ คลัสเตอร์เกี่ยวข้องกับการทำงานของเซิร์ฟเวอร์จริงหรือเซิร์ฟเวอร์เสมือนหลายตัวที่ทำงานกับฐานข้อมูลเดียวกัน
รีสตาร์ทช่วงเวลา– รับผิดชอบความถี่ในการรีสตาร์ทกระบวนการของผู้ปฏิบัติงานคลัสเตอร์ ต้องตั้งค่าพารามิเตอร์นี้เมื่อเซิร์ฟเวอร์ทำงานตลอดเวลา ขอแนะนำให้เชื่อมโยงความถี่การรีสตาร์ทกับวงจรเทคโนโลยีของฐานข้อมูลคลัสเตอร์ โดยปกติจะเป็นทุกๆ 24 ชั่วโมง (86400 วินาที) ดังที่คุณทราบ กระบวนการทำงานของเซิร์ฟเวอร์ 1C ประมวลผลและจัดเก็บข้อมูลงาน
การรีสตาร์ทอัตโนมัติได้รับการออกแบบในแพลตฟอร์ม "เพื่อลดผลกระทบด้านลบของการกระจายตัวและการรั่วไหลของหน่วยความจำในเวิร์กโฟลว์" ITS ยังมีข้อมูลเกี่ยวกับวิธีการจัดระเบียบการรีสตาร์ทกระบวนการทำงานตามพารามิเตอร์อื่นๆ (ขนาดหน่วยความจำ ทรัพยากรที่ถูกครอบครอง ฯลฯ)
ขนาดหน่วยความจำที่อนุญาต– ปกป้องเซิร์ฟเวอร์ 1C จากการใช้หน่วยความจำมากเกินไป หากกระบวนการเกินปริมาณนี้ค่ะ ช่วงที่เกินปริมาณที่อนุญาตกระบวนการจะเริ่มต้นใหม่ สามารถคำนวณเป็นขนาดหน่วยความจำสูงสุดที่กระบวนการ "rphost" ครอบครองในช่วงเวลาที่มีการโหลดเซิร์ฟเวอร์สูงสุด นอกจากนี้ยังควรตั้งค่าช่วงเวลาเล็กน้อยเพื่อให้เกินปริมาณที่อนุญาต
ค่าเบี่ยงเบนที่อนุญาตของจำนวนข้อผิดพลาดของเซิร์ฟเวอร์- แพลตฟอร์มจะคำนวณจำนวนข้อผิดพลาดของเซิร์ฟเวอร์โดยเฉลี่ยโดยสัมพันธ์กับจำนวนการโทรไปยังเซิร์ฟเวอร์ภายใน 5 นาที หากอัตราส่วนนี้เกินค่าที่อนุญาต เวิร์กโฟลว์จะถือว่า "มีปัญหา" และระบบสามารถยุติการทำงานได้หากตั้งค่าสถานะไว้ “บังคับยุติกระบวนการที่เป็นปัญหา”
หยุดกระบวนการที่ถูกปิดใช้งานหลังจากนั้นหากเกินจำนวนหน่วยความจำที่อนุญาต กระบวนการของผู้ปฏิบัติงานจะไม่ยุติทันที แต่จะถูก "ปิด" เพื่อให้มีเวลา "ถ่ายโอน" ข้อมูลการทำงานโดยไม่สูญเสียไปยังกระบวนการของผู้ปฏิบัติงานที่ทำงานอยู่ใหม่ หากระบุพารามิเตอร์นี้ กระบวนการ "ปิด" จะยุติลงไม่ว่าในกรณีใดหลังจากเวลานี้ผ่านไป หากคุณสังเกตเห็นกระบวนการทำงาน "ค้าง" ในการทำงานของเซิร์ฟเวอร์ 1C คุณสามารถตั้งค่าพารามิเตอร์นี้เป็น 2-5 นาที
การตั้งค่าเหล่านี้ถูกกำหนดไว้สำหรับเซิร์ฟเวอร์ 1C แต่ละตัวแยกกัน
หน่วยความจำเวิร์กโฟลว์สูงสุด– นี่คือระดับเสียง ทั้งหมดหน่วยความจำที่สามารถครอบครองโดยกระบวนการของผู้ปฏิบัติงาน (rphost) บนคลัสเตอร์ปัจจุบัน หากตั้งค่าพารามิเตอร์เป็น "0" จะใช้ RAM ของเซิร์ฟเวอร์ถึง 80% “-1” - ไม่มีข้อจำกัด เมื่อ DBMS และเซิร์ฟเวอร์ 1C ทำงานบนเซิร์ฟเวอร์เดียวกัน พวกเขาจำเป็นต้องแชร์ RAM หากระหว่างการดำเนินการปรากฎว่าเซิร์ฟเวอร์ DBMS มีหน่วยความจำไม่เพียงพอ คุณสามารถจำกัดหน่วยความจำที่จัดสรรให้กับเซิร์ฟเวอร์ 1C โดยใช้พารามิเตอร์นี้ หาก DBMS และ 1C ถูกแยกออกจากเซิร์ฟเวอร์ก็สมเหตุสมผลที่จะคำนวณพารามิเตอร์นี้โดยใช้สูตร:
“ระดับเสียงสูงสุด” = “RAM ทั้งหมด” – “OS RAM”;
“OS RAM” คำนวณบนหลักการ 1 GB ต่อ RAM เซิร์ฟเวอร์ทุกๆ 16 GB
การใช้หน่วยความจำที่ปลอดภัยต่อการโทร- โดยทั่วไป การเรียกแต่ละครั้งไม่ควรใช้ RAM ทั้งหมดที่จัดสรรให้กับกระบวนการของผู้ปฏิบัติงาน หากตั้งค่าพารามิเตอร์เป็น "0" อัตราการไหลที่ปลอดภัยจะเท่ากับ 5% ของ " ความจุหน่วยความจำสูงสุดสำหรับกระบวนการทำงาน”- “-1” - โดยไม่มีข้อจำกัด ซึ่งไม่แนะนำเป็นอย่างยิ่ง ในกรณีส่วนใหญ่ ควรปล่อยพารามิเตอร์นี้ไว้ที่ "0" จะดีกว่า
การใช้พารามิเตอร์ “จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ” และ “จำนวนการเชื่อมต่อต่อกระบวนการ”คุณสามารถควบคุมการกระจายงานเซิร์ฟเวอร์ 1C ระหว่างกระบวนการทำงานได้ ตัวอย่างเช่น รัน “rphost” แยกกันสำหรับแต่ละฐานข้อมูล ดังนั้นในกรณีที่กระบวนการขัดข้อง จะมีเพียงผู้ใช้ฐานข้อมูลเดียวเท่านั้นที่ถูกตัดการเชื่อมต่อ ควรเลือกพารามิเตอร์เหล่านี้แยกกันสำหรับการกำหนดค่าเซิร์ฟเวอร์แต่ละรายการ
ข้อจำกัดในการใช้ RAM โดยเซิร์ฟเวอร์ DBMS– เซิร์ฟเวอร์ MS SQL DBMS มีคุณสมบัติที่โดดเด่นอย่างหนึ่ง - ชอบโหลดฐานข้อมูลที่เซิร์ฟเวอร์ทำงานอย่างสมบูรณ์ใน RAM หากคุณไม่จำกัดมัน มันจะใช้ RAM ทั้งหมดที่ทำได้
- หากติดตั้งเซิร์ฟเวอร์ 1C:Enterprise ร่วมกับ Microsoft SQL Server เกณฑ์หน่วยความจำด้านบนจะต้องลดลงตามจำนวนที่เพียงพอสำหรับการทำงานของเซิร์ฟเวอร์ 1C
- หากมีเพียง DBMS เท่านั้นที่ทำงานบนเซิร์ฟเวอร์ ดังนั้นสำหรับ DBMS ตามสูตร:
“หน่วยความจำ DBMS” = “RAM ทั่วไป” – “OS RAM”;
หน่วยความจำที่ใช้ร่วมกัน– มีคนรู้มากมายเกี่ยวกับพารามิเตอร์นี้ แต่ก็ยังเกิดขึ้นที่ผู้คนลืมมันไป เราตั้งค่าเป็น "1" หากเซิร์ฟเวอร์ 1C และ DBMS ทำงานบนเซิร์ฟเวอร์จริงหรือเสมือนเดียวกัน อย่างไรก็ตาม มันใช้งานได้ตั้งแต่แพลตฟอร์ม 8.2.17
ระดับความเท่าเทียมสูงสุด– กำหนดจำนวนโปรเซสเซอร์ที่ใช้เมื่อดำเนินการคำขอเดียว DBMS ทำการดึงข้อมูลแบบขนานเมื่อดำเนินการค้นหาที่ซับซ้อนบนหลายเธรด สำหรับ 1C แนะนำให้ตั้งค่าเป็น "1" นั่นคือในหนึ่งเธรด
ขยายไฟล์ฐานข้อมูลอัตโนมัติ- เรากำหนดขั้นตอนเป็น MB ที่ไฟล์ฐานข้อมูลถูก "ขยาย" หากขั้นตอนมีขนาดเล็ก การขยายฐานข้อมูลบ่อยครั้งจะทำให้มีภาระเพิ่มเติมบนระบบดิสก์ ควรตั้งค่าเป็น 500 – 1,000 MB
การจัดทำดัชนีใหม่และจัดเรียงข้อมูลดัชนี– แนะนำให้จัดเรียงข้อมูล/จัดทำดัชนีใหม่อย่างน้อยสัปดาห์ละครั้ง การทำดัชนีตารางใหม่จะล็อกตาราง ดังนั้นจึงเป็นการดีที่สุดที่จะรันในช่วงเวลาที่ไม่ได้ทำงานหรือมีภาระงานน้อยที่สุด ไม่มีประโยชน์ในการจัดเรียงข้อมูลหลังจากสร้างดัชนีใหม่ (การจัดทำดัชนีใหม่) ตามคำแนะนำของ Microsoft การจัดเรียงข้อมูลจะดำเนินการหากการกระจายตัวของดัชนีไม่เกิน 30% หากสูงกว่า แนะนำให้จัดทำดัชนีใหม่
แผนการใช้พลังงาน– ตั้งค่าการตั้งค่าพลังงานของระบบปฏิบัติการเป็นประสิทธิภาพสูง