การลดขนาดบันทึกธุรกรรม Microsoft SQL Server
โปรดทราบว่าการตั้งค่าคลัสเตอร์มีหน้าที่รับผิดชอบในการตั้งค่าของเซิร์ฟเวอร์ทั้งหมดที่อยู่ในคลัสเตอร์ที่กำหนดค่าไว้ คลัสเตอร์เกี่ยวข้องกับการทำงานของเซิร์ฟเวอร์จริงหรือเซิร์ฟเวอร์เสมือนหลายตัวที่ทำงานกับฐานข้อมูลเดียวกัน
รีสตาร์ทช่วงเวลา– รับผิดชอบความถี่ในการรีสตาร์ทกระบวนการของผู้ปฏิบัติงานคลัสเตอร์ ต้องตั้งค่าพารามิเตอร์นี้เมื่อเซิร์ฟเวอร์ทำงานตลอดเวลา ขอแนะนำให้เชื่อมโยงความถี่การรีสตาร์ทกับวงจรเทคโนโลยีของฐานข้อมูลคลัสเตอร์ โดยปกติจะเป็นทุกๆ 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% หากสูงกว่า แนะนำให้จัดทำดัชนีใหม่
แผนการใช้พลังงาน– ตั้งค่าการตั้งค่าพลังงานของระบบปฏิบัติการเป็นประสิทธิภาพสูง
มีการเปลี่ยนแปลงอะไรบ้างในคลัสเตอร์ 1C 8.3:
ก่อนอื่น หลังจากติดตั้งคลัสเตอร์ 1C แล้ว จำเป็นต้องสร้างเวิร์กโฟลว์ ปรากฏว่ากระบวนการคลัสเตอร์เริ่มถูกสร้างขึ้นโดยอัตโนมัติขึ้นอยู่กับโหลดของฐานข้อมูล
การทดลองใช้งานพื้นหลังของฐานข้อมูลหลักทำให้คลัสเตอร์ 1C โอเวอร์โหลด rphost.exe อย่างไม่มีที่สิ้นสุด และไม่ต้องการสร้าง rphost.exe เพิ่มเติม หลังจากขุดผ่านการตั้งค่า ทุกอย่างก็ชัดเจน
หน่วยความจำเวิร์กโฟลว์สูงสุด คือจำนวนหน่วยความจำที่กระบวนการของผู้ปฏิบัติงานสามารถใช้ร่วมกันได้ คุณต้องระมัดระวังอย่างมากเมื่อตั้งค่าพารามิเตอร์ที่วัดได้ ไบต์- หากคุณตั้งค่าผิด (ไม่เพียงพอต่อการใช้งานปกติของผู้ใช้)ผู้ใช้ ข้อผิดพลาดจะเกิดขึ้น "มีหน่วยความจำว่างไม่เพียงพอบนเซิร์ฟเวอร์ 1C" นอกจากนี้คุณยังสามารถได้รับข้อผิดพลาดนี้เมื่อโควต้าหน่วยความจำบนเซิร์ฟเวอร์ 1C หมด
การใช้หน่วยความจำที่ปลอดภัยต่อการโทร- ช่วยให้คุณควบคุมการใช้หน่วยความจำระหว่างการเรียกเซิร์ฟเวอร์ โดยวัดใน ไบต์- หากการโทรใช้หน่วยความจำมากกว่าที่คาดไว้ การโทรนี้จะเสร็จสิ้นภายในคลัสเตอร์ 1C โดยไม่ต้องรีสตาร์ทกระบวนการของผู้ปฏิบัติงาน (rphost.exe) ดังนั้น "ผู้แพ้" ที่ทำการเรียกเซิร์ฟเวอร์จะสูญเสียเซสชันของเขากับฐานข้อมูล 1C โดยไม่ส่งผลกระทบต่อการทำงานของผู้ใช้รายอื่น
จำนวนหน่วยความจำกระบวนการทำงานซึ่งเซิร์ฟเวอร์ถือว่ามีประสิทธิผล- ที่ หากเกินพารามิเตอร์นี้ เซิร์ฟเวอร์ในคลัสเตอร์ 1C จะหยุดยอมรับการเชื่อมต่อใหม่
จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ- ช่วยให้คุณสามารถแยกฐานข้อมูลสำหรับกระบวนการทำงานได้ ตามค่าเริ่มต้น คลัสเตอร์ 1C ปัจจุบันถูกตั้งค่าเป็น- "8" แต่ในช่วงหลายชั่วโมงของการทำงาน เซิร์ฟเวอร์เริ่มไม่เสถียรอย่างมาก เซสชันผู้ใช้ค้าง หลังจากแยกแต่ละฐานข้อมูลแล้ว (value- "1") ปัญหาก็หมดไป
จำนวนการเชื่อมต่อต่อกระบวนการ- ค่าเริ่มต้นคือ "128" เนื่องจากฐานข้อมูลปัจจุบันมีภาระงานเบื้องหลังจำนวนมาก (การคำนวณด้านลอจิสติกส์ การวิเคราะห์รายการราคา การวิเคราะห์คู่แข่ง ฯลฯ) จึงตัดสินใจลดจำนวนลงเหลือ "25"
การตั้งค่าของคลัสเตอร์ 1C นั้นเปลี่ยนไปเล็กน้อย:
ระดับการยอมรับข้อผิดพลาด- นี้ จำนวนเซิร์ฟเวอร์ที่ทำงานซึ่งสามารถล้มเหลวพร้อมกันได้โดยไม่ทำให้ผู้ใช้เสียหาย บริการสำรองข้อมูลจะเปิดตัวโดยอัตโนมัติตามปริมาณที่จำเป็นเพื่อให้แน่ใจว่ามีความทนทานต่อข้อผิดพลาดที่ระบุ ในแบบเรียลไทม์ บริการที่ใช้งานอยู่จะถูกจำลองไปยังบริการสำรอง
โหลดโหมดการแชร์ - มีสองตัวเลือกสำหรับพารามิเตอร์: "ลำดับความสำคัญตามประสิทธิภาพ" - ใช้หน่วยความจำเซิร์ฟเวอร์มากขึ้นและประสิทธิภาพสูงขึ้น "ลำดับความสำคัญตามหน่วยความจำ" - คลัสเตอร์ 1C บันทึกหน่วยความจำเซิร์ฟเวอร์
แทนที่จะเป็นคำหลังคลัสเตอร์ 1C 8.3 ทำงานเร็วขึ้นอย่างเห็นได้ชัดและเชื่อถือได้มากขึ้น การสร้างเซสชันผู้ใช้ด้วยฐานข้อมูลนั้นเร็วขึ้นหลายเท่า อินเทอร์เฟซในโหมดความเข้ากันได้กับ 1C 8.2.16 อาจกล่าวได้ว่าบินได้ แน่นอนว่ามีความแตกต่างกัน แต่เราจะอยู่ที่ไหนถ้าไม่มีมัน? ขอให้โชคดีในการตั้งค่าคลัสเตอร์ 1C 8.3 ใหม่
เงื่อนไขแนวคิด
ทำไมคุณถึงต้องการเซิร์ฟเวอร์ 1C?
คำว่า “คลัสเตอร์เซิร์ฟเวอร์” หมายถึงคอมพิวเตอร์หลายเครื่อง (เซิร์ฟเวอร์) ที่ดำเนินงานร่วมกัน
งานที่แก้ไขโดยคลัสเตอร์เซิร์ฟเวอร์ 1C:Enterprise 8 แสดงในรูปด้านล่าง
ความแตกต่างระหว่าง 8.1 และ 8.2
คลัสเตอร์ 1C 8.1
คลัสเตอร์เซิร์ฟเวอร์ 1C:Enterprise 8.1 เป็นการนำแนวคิดในการกระจายโหลดบนเซิร์ฟเวอร์ที่ให้บริการคำขอของไคลเอ็นต์ กลไกนี้จะกระจายโหลดบนทรัพยากรการประมวลผลภายในเซิร์ฟเวอร์เดียวหรือหลายเซิร์ฟเวอร์ (“เซิร์ฟเวอร์ที่ทำงาน”) ดังนั้นจึงรับประกันการปรับขนาดแอปพลิเคชัน คลัสเตอร์เซิร์ฟเวอร์ทำซ้ำรหัสที่ให้บริการการเชื่อมต่อไคลเอนต์ รหัสปฏิบัติการที่ซ้ำกันของคลัสเตอร์มีชื่อว่า "กระบวนการของผู้ปฏิบัติงาน" (rphost) เมื่อติดตั้งคลัสเตอร์ จะมีการสร้างกระบวนการของผู้ปฏิบัติงานเพียงกระบวนการเดียวเท่านั้น
กระบวนการของผู้ปฏิบัติงานหลายกระบวนการบนเซิร์ฟเวอร์เดียวทำให้สามารถใช้จำนวน RAM และทรัพยากรตัวประมวลผลเพื่อดำเนินการตามคำขอได้อย่างมีประสิทธิภาพ รวมถึงเชื่อมต่อเซสชันไคลเอนต์กับกระบวนการของผู้ปฏิบัติงานอื่นหากกระบวนการปัจจุบัน "ขัดข้อง"
โปรแกรม Server Agent (ragent) มีหน้าที่ทำความเข้าใจว่ามีอะไรทำงานบนเซิร์ฟเวอร์เฉพาะ การหยุดเอเจนต์เซิร์ฟเวอร์จะทำให้เซิร์ฟเวอร์ไม่พร้อมใช้งานโดยคลัสเตอร์ เอเจนต์เก็บข้อมูลไว้ในไฟล์ srvribrg.lst
ข้อมูลเกี่ยวกับฐานข้อมูลงานและกระบวนการทำงานที่เกี่ยวข้องเป็นของ “Server Manager” (rmngr) โดยเก็บข้อมูลนี้ไว้ในไฟล์ 1CV8Reg.lst การหยุดตัวจัดการเซิร์ฟเวอร์อาจนำไปสู่การรีสตาร์ทแอปพลิเคชันไคลเอนต์ หากตัวจัดการรีสตาร์ทสำเร็จหรือหยุดการทำงานของเซิร์ฟเวอร์ของคลัสเตอร์ทั้งหมดโดยสมบูรณ์
1C:Enterprise 8.1 ช่วยให้สามารถสร้างคลัสเตอร์อิสระหลายตัวบนเซิร์ฟเวอร์เดียวได้ แต่ละรายการจะถูกระบุบนเครือข่ายด้วย "พอร์ต IP" ที่ไม่ซ้ำกันและหมายเลขเฉพาะในไฟล์บริการ คลัสเตอร์แรกได้รับพอร์ต 1541 เป็นค่าเริ่มต้น
สแน็ปอินเซิร์ฟเวอร์องค์กรได้รับการออกแบบมาเพื่อจัดการคลัสเตอร์
คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ด้วยชื่อเซิร์ฟเวอร์หรือที่อยู่ IP
ตัวแทนเซิร์ฟเวอร์
ตัวแทนเซิร์ฟเวอร์ “รู้” เกี่ยวกับคลัสเตอร์ทั้งหมดที่ทำงานบนเซิร์ฟเวอร์ ข้อมูลนี้ถูกจัดเก็บไว้ในไฟล์ srvribrg.lst พร้อมด้วยรายชื่อคลัสเตอร์และผู้ดูแลระบบรายชื่อ พอร์ตหลักของเอเจนต์คือ 1540 บนเซิร์ฟเวอร์ที่ทำงานแต่ละเซิร์ฟเวอร์ สามารถเปิดใช้งานเอเจนต์ได้เพียงตัวเดียวเท่านั้น ซึ่งให้บริการคลัสเตอร์ที่เป็นไปได้ทั้งหมดบนเซิร์ฟเวอร์นี้
หากต้องการรับข้อมูลโดยละเอียดมากขึ้น ให้ใช้ยูทิลิตี้ Process Explorer (พัฒนาโดย Sysinternals) โปรแกรมนี้ช่วยให้คุณสามารถมองลึกลงไปภายในกระบวนการที่ทำงานอยู่ รวมถึงคลัสเตอร์เซิร์ฟเวอร์ 1C:Enterprise 8.1
ผู้จัดการคลัสเตอร์
ผู้จัดการคลัสเตอร์มีหน้าที่รับผิดชอบการทำงานของคลัสเตอร์ แต่ละคลัสเตอร์มีผู้จัดการของตัวเอง ตัวจัดการจัดเก็บข้อมูลเกี่ยวกับคลัสเตอร์ในไฟล์ 1CV8Reg.lst (รีจิสทรีคลัสเตอร์) ตัวจัดการคลัสเตอร์แต่ละตัวยังมีพอร์ตของตัวเองบนเซิร์ฟเวอร์งานอีกด้วย สำหรับคลัสเตอร์แรก พอร์ต Manager เริ่มต้นคือ 1541 ซึ่งเป็นพอร์ตนี้ที่แสดงในสแน็ปอิน 1C:Enterprise Servers ในสาขาคลัสเตอร์ เพื่อระบุคลัสเตอร์
ผู้จัดการได้รับคำขอจากส่วนไคลเอนต์ของ 1C:Enterprise 8.1 และตัดสินใจว่าเวิร์กโฟลว์ใดที่จะส่งคำขอบริการนี้
ผู้จัดการใช้พอร์ตบริการเพื่อโต้ตอบกับกระบวนการของผู้ปฏิบัติงาน
ขั้นตอนการทำงาน
กระบวนการทำงานมีหน้าที่ “ทำงานร่วมกับลูกค้า” เราสามารถพูดได้ว่าใน 1C:Enterprise 8.0 เวอร์ชันก่อนหน้ามี "เวิร์กโฟลว์" เพียงอันเดียว
อาจมีกระบวนการของผู้ปฏิบัติงานได้หลายกระบวนการในคลัสเตอร์ 1C:Enterprise 8.1 ผู้จัดการเซิร์ฟเวอร์ตัดสินใจว่ากระบวนการของผู้ปฏิบัติงานใดที่จะให้บริการการเชื่อมต่อกับไคลเอนต์ สำหรับการเชื่อมต่อไคลเอนต์ กระบวนการของผู้ปฏิบัติงานจะได้รับการจัดสรรช่วงของพอร์ต IP 1560 – 1591 ตามค่าเริ่มต้น นอกจากนี้ แต่ละกระบวนการของผู้ปฏิบัติงานจะได้รับการกำหนดพอร์ตบริการสำหรับการสื่อสารกับผู้จัดการคลัสเตอร์ กระบวนการของผู้ปฏิบัติงานแต่ละกระบวนการใช้ RAM สูงสุด 2 Gb ในระบบปฏิบัติการ 32 บิต ในระบบปฏิบัติการ 64 บิต ข้อจำกัดถูกกำหนดโดยจำนวน RAM จริง
คลัสเตอร์ 1C 8.2
คลัสเตอร์เซิร์ฟเวอร์ 1C:Enterprise 8.2 – การพัฒนาเพิ่มเติมของเทคโนโลยีเซิร์ฟเวอร์ 8.2
เซิร์ฟเวอร์สามารถทำงานได้ "เหมือน 8.1" เช่น มันยังคงเข้ากันได้กับเทคโนโลยีก่อนหน้านี้
และบวกกับการนำแนวทางใหม่ในการทำงานของเซิร์ฟเวอร์มาใช้ ตอนนี้ แทนที่จะเป็นกระบวนการ เซสชันมีบทบาทสำคัญ
เซสชันเปิดใช้งานการปรับสมดุลโหลดและความทนทานต่อข้อผิดพลาดภายในแอปพลิเคชันที่ได้รับการจัดการ
ผู้จัดการคลัสเตอร์
ขณะนี้ตัวจัดการคลัสเตอร์มีความซับซ้อนมากขึ้น ขณะนี้บางฟังก์ชันสามารถแยกออกเป็นกระบวนการแยกกันและยังวางไว้บนเซิร์ฟเวอร์ที่ทำงานอื่นในคลัสเตอร์ได้อีกด้วย สิ่งนี้ช่วยให้คุณปรับสมดุลโหลดเซิร์ฟเวอร์ได้
การยอมรับข้อผิดพลาดของเซิร์ฟเวอร์ 8.2 ทำได้ผ่าน:
- จัดเก็บข้อมูลเกี่ยวกับเซสชันของผู้ใช้
- ผู้ใช้ไม่เชื่อมโยงกับเวิร์กโฟลว์อีกต่อไป
- การสำรองกระบวนการทำงานแบบคลัสเตอร์
- ควรมีกระบวนการของผู้ปฏิบัติงานหลายกระบวนการ รวมถึงกระบวนการที่ซ้ำซ้อนด้วย
- การจองคลัสเตอร์
- คลัสเตอร์สำรองจะถูกระบุ เมื่อมีการเชื่อมต่อ คลัสเตอร์เหล่านั้นจะแสดงอยู่ในสายการเชื่อมต่อ
ช่วยให้สามารถดำเนินงานได้อย่างต่อเนื่อง:
หากการเชื่อมต่อทางกายภาพของไคลเอนต์กับคลัสเตอร์ขาด (พนักงานทำความสะอาดดึงสายเคเบิลออก ไฟที่ส่งไปยังอุปกรณ์เครือข่ายถูกปิด มีปัญหากับผู้ให้บริการ) ไม่จำเป็นต้องเชื่อมต่อกับฐานข้อมูลอีกครั้งและเริ่มต้นทั้งหมด งานทั้งหมดอีกครั้ง หลังจากคืนค่าการเชื่อมต่อทางกายภาพแล้ว ผู้ใช้สามารถทำงานต่อจากจุดที่ถูกขัดจังหวะได้
หากจำเป็นต้องมีการบำรุงรักษาคอมพิวเตอร์คลัสเตอร์ ก็สามารถปิดได้ระหว่างการดำเนินการโดยไม่ต้องหยุดผู้ใช้จากการทำงานกับฐานข้อมูล
หากเซิร์ฟเวอร์ใด ๆ ในคลัสเตอร์ล้มเหลว งานของผู้ใช้จะไม่หยุดลง จะถูกโอนไปยังคลัสเตอร์สำรองและ/หรือกระบวนการทำงานสำรองข้อมูลโดยอัตโนมัติ สำหรับผู้ใช้ การเปลี่ยนแปลงดังกล่าวจะมองไม่เห็น
หากกระบวนการของผู้ปฏิบัติงานรายใดรายหนึ่งของคลัสเตอร์ล้มเหลว ผู้ใช้ที่เชื่อมต่อกับคลัสเตอร์จะถูกโอนไปยังกระบวนการอื่นหรือกระบวนการของผู้ปฏิบัติงานสำรองโดยอัตโนมัติ การเปลี่ยนแปลงดังกล่าวจะไม่ปรากฏแก่ผู้ใช้เช่นกัน
คลัสเตอร์ 1C 8.3
เซิร์ฟเวอร์ 8.3 มีลักษณะพิเศษคือโค้ดภายในที่ออกแบบใหม่ แม้ว่า "จากภายนอก" อาจดูเหมือนเป็นเวอร์ชัน 8.2 ที่ได้รับการแก้ไขเล็กน้อย
เซิร์ฟเวอร์มี "การกำหนดค่าอัตโนมัติ" มากขึ้น พารามิเตอร์บางอย่าง เช่น จำนวนกระบวนการของผู้ปฏิบัติงาน จะไม่ถูกสร้างขึ้นด้วยตนเองอีกต่อไป แต่คำนวณตามคำอธิบายข้อกำหนดของความทนทานต่อข้อผิดพลาดและงานความน่าเชื่อถือ
กลไกการปรับสมดุลโหลดได้รับการพัฒนาซึ่งสามารถใช้เพื่อเพิ่มประสิทธิภาพของระบบโดยรวม หรือใช้โหมด "ประหยัดหน่วยความจำ" ใหม่ ซึ่งช่วยให้คุณทำงาน "ด้วยหน่วยความจำที่จำกัด" ในกรณีที่การกำหนดค่า ใช้คำว่า “ชอบกินความจำ”
ความเสถียรของการทำงานเมื่อใช้หน่วยความจำจำนวนมากจะถูกกำหนดโดยพารามิเตอร์ใหม่ของเซิร์ฟเวอร์ที่ใช้งานจริง
พารามิเตอร์ "การใช้หน่วยความจำที่ปลอดภัยต่อการโทร" มีความน่าสนใจเป็นพิเศษ สำหรับผู้ที่ไม่ค่อยรู้ว่ามันคืออะไร ไม่ควรฝึกแบบ "มีประสิทธิผล" จะดีกว่า พารามิเตอร์ "ขนาดหน่วยความจำสูงสุดของกระบวนการทำงาน" อนุญาตให้ในกรณี "ล้น" ไม่ให้ขัดข้องกระบวนการทำงานทั้งหมด แต่จะมีเพียงเซสชันเดียว "กับผู้แพ้" “ จำนวนหน่วยความจำสำหรับกระบวนการทำงานซึ่งเซิร์ฟเวอร์ถือว่ามีประสิทธิผล” ช่วยให้คุณสามารถบล็อกการเชื่อมต่อใหม่ได้ทันทีที่เกินเกณฑ์หน่วยความจำนี้
ฉันแนะนำให้แยกกระบวนการทำงานตามฐานข้อมูล เช่น ระบุพารามิเตอร์ “จำนวนความปลอดภัยของข้อมูลต่อกระบวนการ = 1” ด้วยฐานข้อมูลที่มีการโหลดสูงจำนวนมาก สิ่งนี้จะลดอิทธิพลร่วมกันทั้งในแง่ของความน่าเชื่อถือและประสิทธิภาพ
การสนับสนุนที่แยกต่างหากเพื่อความเสถียรของระบบนั้นมาจาก "ค่าใช้จ่าย" ของใบอนุญาต/คีย์ ใน 8.3 มีความเป็นไปได้ที่จะใช้ "ตัวจัดการลิขสิทธิ์ซอฟต์แวร์" ซึ่งชวนให้นึกถึงตัวจัดการ "aladin" เป้าหมายคือสามารถวางกุญแจไว้บนเครื่องแยกต่างหากได้
มันถูกนำไปใช้เป็น “บริการ” อื่นในตัวจัดการคลัสเตอร์ คุณสามารถใช้แล็ปท็อป "ฟรี" ได้ เพิ่มลงในคลัสเตอร์ 1C 8.3 สร้างผู้จัดการแยกต่างหากด้วยบริการ "บริการลิขสิทธิ์" คุณสามารถใส่คีย์ hasp ของฮาร์ดแวร์ลงในแล็ปท็อปของคุณ หรือเปิดใช้งานลิขสิทธิ์ซอฟต์แวร์ได้
สิ่งที่น่าสนใจที่สุดสำหรับโปรแกรมเมอร์ควรเป็น "ข้อกำหนดในการกำหนดฟังก์ชันการทำงาน"
ดังนั้นบนแล็ปท็อปที่มีรหัสความปลอดภัย เพื่อไม่ให้ผู้ใช้เปิดใช้งานบนเซิร์ฟเวอร์คลัสเตอร์ คุณต้องเพิ่ม "ข้อกำหนด" สำหรับออบเจ็กต์ข้อกำหนด "การเชื่อมต่อไคลเอ็นต์กับความปลอดภัยของข้อมูล" - "อย่ากำหนด" เช่น ป้องกันไม่ให้กระบวนการของผู้ปฏิบัติงานบนเซิร์ฟเวอร์นี้ประมวลผลการเชื่อมต่อไคลเอ็นต์
สิ่งที่น่าสนใจยิ่งกว่านั้นคือความสามารถในการรัน "งานพื้นหลังเท่านั้น" บนเซิร์ฟเวอร์ที่ใช้งานจริงของคลัสเตอร์โดยไม่มีเซสชันผู้ใช้ วิธีนี้ทำให้คุณสามารถย้ายงานที่โหลดสูง (โค้ด) ไปยังเครื่องอื่นได้ นอกจากนี้ คุณสามารถรันงานพื้นหลังหนึ่งงานในการ "ปิดเดือน" โดยใช้ "ค่าของพารามิเตอร์เพิ่มเติม" บนคอมพิวเตอร์เครื่องหนึ่ง และงานพื้นหลัง "การอัปเดตดัชนีข้อความแบบเต็ม" ในอีกเครื่องหนึ่ง การชี้แจงเกิดขึ้นผ่านการบ่งชี้ "ค่าของ พารามิเตอร์เพิ่มเติม” ตัวอย่างเช่น หากคุณระบุ BackgroundJob.CommonModule เป็นค่า คุณสามารถจำกัดการทำงานของเซิร์ฟเวอร์ผู้ปฏิบัติงานในคลัสเตอร์ให้เหลือเฉพาะงานพื้นหลังที่มีเนื้อหาใดๆ ได้ ค่า BackgroundJob.CommonModule<Имя модуля>.<Имя метода>- จะระบุรหัสเฉพาะ
แก้ไขปัญหาการติดตั้งที่เป็นไปได้
เมื่อติดตั้งส่วนเซิร์ฟเวอร์ 1C:Enterprise 8.1 คุณสามารถสร้างผู้ใช้ใหม่หรือเลือกบัญชีที่มีอยู่ได้
ในกรณีที่เลือกบัญชีที่มีอยู่ คุณต้องระบุรหัสผ่านและการยืนยันที่ถูกต้อง มิฉะนั้นการเริ่มต้นแบ็กเอนด์จะส่งผลให้เกิดข้อผิดพลาด
เมื่อคุณรัน Cluster Agent เป็นครั้งแรก คลัสเตอร์เริ่มต้นจะถูกสร้างขึ้น
คลัสเตอร์เริ่มต้นมีลักษณะดังต่อไปนี้:
· หมายเลขพอร์ต – 1541;
· ช่วงพอร์ต IP – 1560:1591;
· รองรับเวิร์กโฟลว์จำนวนมาก - ปิดการใช้งาน;
· หนึ่งกระบวนการของผู้ปฏิบัติงาน หมายเลขพอร์ตจะถูกตั้งค่าจากช่วงที่ระบุ
หากมีปัญหาใดๆ เมื่อคุณเริ่ม Cluster Agent เป็นครั้งแรก คลัสเตอร์เริ่มต้นอาจไม่ถูกสร้างขึ้น สิ่งนี้แสดงให้เห็นในความจริงที่ว่าเมื่อเอเจนต์เซิร์ฟเวอร์ (ragent) เริ่มต้น มันจะเริ่มทำงาน แต่ไม่ได้เริ่มกระบวนการคลัสเตอร์อื่น ๆ (rmngr, rphost) รายการคลัสเตอร์ srvribrg.lst มีลักษณะดังนี้:
{
{0},
ในกรณีนี้ คุณสามารถหยุดกระบวนการ ragent ลบรายการคลัสเตอร์ (srvribrg.lst) และเริ่มต้น ragent อีกครั้ง
ตรวจสอบว่าพอร์ตที่ระบุในพารามิเตอร์บรรทัดคำสั่งพอร์ตสำหรับการเริ่มต้นบริการตัวแทนเซิร์ฟเวอร์ตรงกันและพอร์ตที่ระบุในกล่องโต้ตอบพารามิเตอร์เซิร์ฟเวอร์กลางของคอนโซลคลัสเตอร์:
— หยุดบริการตัวแทนเซิร์ฟเวอร์ 1C:Enterprise 8.1
หาก Server Agent ทำงานเป็นแอปพลิเคชัน คุณสามารถหยุดการทำงานได้โดยการกดปุ่ม Ctrl+C ร่วมกัน
- ตรวจสอบให้แน่ใจว่าในตัวจัดการงานว่ากระบวนการทั้งหมด ragent, rmngr, rphost ได้สิ้นสุดลงแล้ว หากจำเป็น ให้ดำเนินการให้เสร็จสิ้นโดยใช้ตัวจัดการงาน
— เปิดคุณสมบัติของบริการ 1C:Enterprise 8.1 Server Agent
- ให้ความสนใจกับบรรทัด “ไฟล์ปฏิบัติการ” (เส้นทางสู่ปฏิบัติการ) โดยมีพารามิเตอร์ -d ตามด้วยไดเร็กทอรีข้อมูลคลัสเตอร์ ไฟล์ทั้งหมดที่เกี่ยวข้องกับคลัสเตอร์จะอยู่ในไดเร็กทอรีนี้
- ลบเนื้อหาทั้งหมดของไดเร็กทอรีนี้
— เริ่มบริการตัวแทนเซิร์ฟเวอร์ 1C:Enterprise 8.1
- ตรวจสอบให้แน่ใจว่าในตัวจัดการงานว่ากระบวนการทั้งหมด ragent, rmngr, rphost ได้เริ่มต้นแล้ว
— เรียกใช้คอนโซลคลัสเตอร์และลงทะเบียนเซิร์ฟเวอร์กลางในนั้น คอนโซลควรเชื่อมต่อกับเซิร์ฟเวอร์กลางและแสดงหนึ่งคลัสเตอร์ที่สร้างขึ้นตามค่าเริ่มต้น
ปัญหาที่เป็นไปได้กับความล้มเหลวของคลัสเตอร์เซิร์ฟเวอร์รวมถึงปัญหาเกี่ยวกับคีย์ความปลอดภัย สิทธิ์ของบัญชีบริการ และพารามิเตอร์การเริ่มต้นที่ไม่ถูกต้อง
- มีการติดตั้งคีย์การป้องกันเซิร์ฟเวอร์ในเครื่องในแต่ละเซิร์ฟเวอร์ในองค์กร
- อย่าตั้งค่าบัญชีบริการด้วยรหัสผ่านที่ว่างเปล่า
- เมื่อมีหลายคลัสเตอร์ พอร์ตที่ใช้ไม่ควรทับซ้อนกัน
โปรดทราบว่าในระหว่างกระบวนการติดตั้งแพลตฟอร์ม 1C:Enterprise 8.1 ข้อความแสดงข้อผิดพลาดอาจปรากฏขึ้น ข้อความที่น่าจะเป็นไปได้มากที่สุดแสดงอยู่ด้านล่าง ระบุเหตุผลที่ทำให้เกิดข้อความและขั้นตอนในการกำจัดข้อความเหล่านั้น
ข้อผิดพลาด 1,069: บริการไม่ทำงานเนื่องจากข้อผิดพลาดในการเข้าสู่ระบบ
ปัญหาเกี่ยวข้องกับสิทธิ์ของบัญชีในการทำงานเป็นบริการระบบ เปิดโปรแกรมอรรถประโยชน์นโยบายความปลอดภัยท้องถิ่น และเพิ่มผู้ใช้ (ซึ่งมีการเปิดตัวเซิร์ฟเวอร์งานคลัสเตอร์ในนาม) ลงในนโยบายการเข้าสู่ระบบเป็นบริการและเข้าสู่ระบบเป็นชุดงาน
หากข้อมูลที่จัดเก็บไว้ในไฟล์บริการเสียหาย การเริ่มต้นเซิร์ฟเวอร์การผลิตของคลัสเตอร์อาจล้มเหลว ตรวจสอบให้แน่ใจว่าตัวแทนเซิร์ฟเวอร์ 1C:Enterprise 8.1 กำลังทำงานอยู่ (กระบวนการตัวแทนในตัวจัดการงาน)
อย่าลืมว่า Windows Event Auditing ก็เป็นเครื่องมือวิเคราะห์เช่นกัน ในการดำเนินการนี้ ให้ตรวจดูว่ามีข้อความ "น่าสงสัย" ปรากฏในบันทึกเหตุการณ์ของ Windows หรือไม่
ข้อผิดพลาด 8007056B / 800708C5
รหัสผ่านใหม่ไม่เป็นไปตามนโยบายรหัสผ่าน รหัสผ่านอาจสั้นเกินไปหรือคุณเพิ่งใช้รหัสผ่านนี้ไปแล้ว
เหตุผล: รหัสผ่านที่ระบุสำหรับบัญชีในกล่องโต้ตอบ "ติดตั้ง 1C: เซิร์ฟเวอร์องค์กร" ไม่ตรงตามข้อกำหนดของนโยบายความปลอดภัย
วิธีแก้ไข: ตั้งรหัสผ่านใหม่สำหรับบัญชีที่เลือกซึ่งตรงตามข้อกำหนดของนโยบายความปลอดภัยหรือลดข้อกำหนดของนโยบายความปลอดภัยที่ใช้ เช่น ไม่ต้องใช้รหัสผ่าน "ซับซ้อน" ไม่จำกัดจำนวนตัวอักษรในรหัสผ่าน ห้ามตรวจสอบความพยายามในการทำซ้ำ ฯลฯ
ข้อผิดพลาด 1923: ไม่มีสิทธิ์ในการติดตั้งโดยบริการ
สาเหตุ: ข้อผิดพลาดเกี่ยวข้องกับสิทธิ์ในการติดตั้งบัญชีเป็นแอปพลิเคชัน ข้อผิดพลาดนี้เป็นเรื่องปกติสำหรับความพยายามในการติดตั้งเซิร์ฟเวอร์บนตัวควบคุมโดเมนที่จำเป็นต้องมีมาตรการรักษาความปลอดภัยที่เพิ่มขึ้น
วิธีแก้ไข: อย่าใช้ตัวควบคุมโดเมนเพื่อโฮสต์เซิร์ฟเวอร์องค์กรหรือผ่อนคลายข้อกำหนดด้านความปลอดภัยและระบุสิทธิ์ "เรียกใช้เป็นบริการ" หรือ "เรียกใช้เป็นงานแบทช์" สำหรับบัญชีที่เลือก
ข้อผิดพลาด 80070056
รหัสผ่านของคุณไม่สามารถเปลี่ยนได้ รหัสผ่านแต่ละอันต้องใช้เป็นเวลาอย่างน้อย x วัน
สาเหตุและวิธีแก้ไข: ข้อผิดพลาดอื่นที่เกิดขึ้นเมื่อข้อกำหนดนโยบายความปลอดภัยสำหรับรหัสผ่านที่ใช้ถูกละเมิด วิธีแก้ไขคล้ายกับข้อผิดพลาด 800708C5
ซ็อกเก็ต Windows - 11004(0x00002AFC)
1) ตรวจสอบให้แน่ใจว่าบนเซิร์ฟเวอร์การทำงานของคลัสเตอร์ในตัวจัดการงานสิ่งต่อไปนี้กำลังทำงานอยู่:
ตัวแทนเซิร์ฟเวอร์ (ragent.exe)
ตัวจัดการคลัสเตอร์ (rmngr.exe)
กระบวนการของผู้ปฏิบัติงานคลัสเตอร์ (rphost.exe)
2) หากต้องการตรวจสอบการจำแนกชื่อที่อยู่ IP ให้รันบนบรรทัดคำสั่ง:
ชื่อเครื่องปิง
ในการตอบสนองต่อคำสั่งของระบบ เราสนใจที่จะพิจารณาว่ามีการกำหนดที่อยู่ IP หรือไม่
3) หากมีการกำหนดชื่อ แต่ยังไม่พบกระบวนการของผู้ปฏิบัติงาน ตรวจสอบให้แน่ใจว่าได้กำหนดที่อยู่ IP ของชื่อแล้ว<имя машины>และ<имя машины>.<имя домена>ไม่ได้กำหนดไว้แตกต่างกัน
(ซ็อกเก็ต Windows - 10054(0x00002746)
โฮสต์ระยะไกลบังคับให้ปิดการเชื่อมต่อ
ข้อความนี้อาจได้รับถ้าเซิร์ฟเวอร์ถูกรีบูตหรือกระบวนการของผู้ปฏิบัติงานถูกบังคับให้ลบ
ข้อผิดพลาดนี้มักจะไม่ปรากฏขึ้นเมื่อทำการเชื่อมต่อใหม่ หากข้อผิดพลาดยังคงอยู่ จำเป็นต้องตรวจสอบสาเหตุของความล้มเหลวของเซิร์ฟเวอร์ที่ใช้งานจริงของคลัสเตอร์
ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อกระบวนการของผู้ปฏิบัติงานถึงความจุหน่วยความจำสูงสุดบนระบบ 32 บิต
อีกกรณีหนึ่งคือความพยายามในการเชื่อมต่อจากไคลเอนต์โดยมีข้อความแสดงข้อผิดพลาด:
(ซ็อกเก็ต Windows - 10060(0x0000274C)
ความพยายามสร้างการเชื่อมต่อไม่สำเร็จเนื่องจาก... ไม่ได้รับการตอบสนองที่ต้องการจากคอมพิวเตอร์เครื่องอื่นภายในเวลาที่กำหนด หรือการเชื่อมต่อที่สร้างไว้แล้วถูกยกเลิกเนื่องจากการตอบสนองที่ไม่ถูกต้องจากคอมพิวเตอร์ที่เชื่อมต่ออยู่แล้ว
สาระสำคัญของข้อผิดพลาดนี้คือการขาดการตอบสนองภายในระยะเวลาหนึ่ง (หมดเวลา)
1) ตรวจสอบให้แน่ใจว่าไฟร์วอลล์ของคุณไม่ได้ปิดกั้นการรับส่งข้อมูลของแอปพลิเคชัน ปิดไฟร์วอลล์ของคุณ
หากต้องการทำสิ่งนี้ ให้รันคำสั่งบนบรรทัดคำสั่ง (คำสั่งพร้อมใช้งานตั้งแต่ Windows XP และ Windows Server 2003 เวอร์ชันก่อนหน้าไม่มีไฟร์วอลล์ในตัว แต่สามารถติดตั้งซอฟต์แวร์บุคคลที่สามได้):
เน็ตชไฟร์วอลล์ชุดออปโหมดปิดการใช้งาน
หากคำสั่งสำเร็จ คุณจะได้รับข้อความ:
ตกลง.
นอกจากไฟร์วอลล์แล้ว ตัวกรองเครือข่ายยังสามารถบล็อกการรับส่งข้อมูลได้ พวกเขาถูกปิดใช้งานโดยค่าเริ่มต้น อย่างไรก็ตาม ตรวจสอบให้แน่ใจว่าเป็นเช่นนั้น:
- เปิดโฟลเดอร์การเชื่อมต่อเครือข่าย
- คลิกขวาที่การเชื่อมต่อเครือข่ายที่คุณต้องการกำหนดค่าและเลือก คุณสมบัติ.
- บนแท็บ ทั่วไป(สำหรับการเชื่อมต่อเครือข่ายท้องถิ่น) หรือบนแท็บ สุทธิ(สำหรับการเชื่อมต่ออื่นๆ ทั้งหมด) เลือก อินเทอร์เน็ตโปรโตคอล (TCP/IP)และกดปุ่ม คุณสมบัติ.
- คลิกปุ่ม นอกจากนี้.
- เปิดแท็บ ตัวเลือกให้เลือกตัวเลือก การกรอง TCP/IPและกดปุ่ม คุณสมบัติ.
- ตรวจสอบให้แน่ใจว่าช่องทำเครื่องหมาย เปิดใช้งานการกรอง TCP/IP (อะแดปเตอร์ทั้งหมด)ลบออก.
2) ตรวจสอบให้แน่ใจว่าทรัพยากรตัวประมวลผลไม่ได้โหลด 100% (CPU%)
3) วัดกิจกรรมเครือข่ายของอินเทอร์เฟซไคลเอ็นต์และเซิร์ฟเวอร์ โหลดบนอะแดปเตอร์เครือข่ายไม่ควรเกิน 60%
(ซ็อกเก็ต Windows - 10061(0x0000274D)
ไม่สามารถเชื่อมต่อได้เนื่องจาก คอมพิวเตอร์ปลายทางปฏิเสธการร้องขอการเชื่อมต่อ
สาเหตุทั่วไปของข้อผิดพลาดนี้คือไม่มีตัวแทนเซิร์ฟเวอร์ที่ทำงานอยู่ เริ่มเซิร์ฟเวอร์ด้วยตนเองหรือรีบูตเซิร์ฟเวอร์เพื่อเริ่มโดยอัตโนมัติ
คำตอบสำหรับคำถาม
มัลติแพลตฟอร์ม 1C
การติดตั้งเซิร์ฟเวอร์
ถาม: เกิดข้อผิดพลาดในการติดตั้งเซิร์ฟเวอร์ 1c บน MS Server 2008 R2 x64 เมื่อติดตั้งเซิร์ฟเวอร์ 1c ผ่านทางบรรทัดคำสั่ง เช่น ragent.exe -instsrvc -port 2040 -regport 2041 -range 2060:2091 -d “C:\Program Files\1cv82 \ (นำมาจากดิสก์ ITS) บรรทัดคำสั่งจะเขียนข้อความ: "ข้อผิดพลาด! ข้อผิดพลาด OpenSCManager!” บริการไม่ได้ถูกสร้างขึ้นในกรณีนี้ ทดสอบเมื่อ 8.1.15.14 และ 8.2.10.77
ตอบ: หากต้องการติดตั้งจากบรรทัดคำสั่งบนระบบปฏิบัติการที่มี UAC คุณจะต้องใช้บริการ RunAs เนื่องจาก แม้ว่าผู้ใช้จะเป็นสมาชิกของกลุ่มผู้ดูแลระบบ UAC จะบล็อกการดำเนินการที่เปลี่ยนสถานะของระบบ
กุญแจป้องกัน
ถาม: คีย์ป้องกันสำหรับ Server 8.2 อนุญาตให้ฉันเรียกใช้ Server 8.1 ได้หรือไม่
ตอบ: ใช่แล้ว
ถาม: ในการเริ่มเซิร์ฟเวอร์ 1C ฉันจำเป็นต้องมีคีย์ hasp ของเซิร์ฟเวอร์บางประเภทหรือไม่ ท้องถิ่นหรือจะไม่ทำงานสำหรับผู้ใช้ 5 คน?
ตอบ: ใช่ เซิร์ฟเวอร์จำเป็นต้องมีรหัสของตัวเอง ผู้ใช้ภายในเครื่องและคีย์เครือข่ายจะไม่ทำงาน รายละเอียดเพิ่มเติมใน « « , สไลด์หมายเลข 30
ถาม: สมมติว่าคลัสเตอร์เซิร์ฟเวอร์ 1C ประกอบด้วยเซิร์ฟเวอร์จริง 3 ตัว ต้องใช้คีย์ความปลอดภัยกี่อัน?
ถาม: มีเทอร์มินัลเซิร์ฟเวอร์และคีย์สำหรับใบอนุญาต 5 ใบ โดยจะต้องซื้อใบอนุญาตเพิ่มเติมใบที่ 6 ใบอนุญาต. เป็นไปได้ไหมที่จะติดตั้งบนเซิร์ฟเวอร์ถัดจากคีย์ที่ 5? และผู้ใช้ทั้ง 6 คนจะทำงานในเซสชันเทอร์มินัลหรือ 5 - ใต้เทอร์มินัลและ 1 คนในเวอร์ชันไฟล์
ตอบ: ไม่ พวกเขาจะไม่ทำ ใบอนุญาตที่ 6 ในรูปแบบของคีย์ท้องถิ่นจะต้องเสียบเข้ากับคอมพิวเตอร์ของผู้ใช้ แต่ต้องไม่เสียบเข้ากับเทอร์มินัล
อัพเดตเซิร์ฟเวอร์ 1C
ถาม: เมื่อมีการเปิดตัวแพลตฟอร์มเวอร์ชัน 8.2.xxx ใหม่ ขั้นตอนการอัปเดตเซิร์ฟเวอร์และไคลเอนต์เป็นอย่างไร?
ตอบ: 8.2 ดิสทริบิวชันจะติดตั้งไฟล์ในโฟลเดอร์ที่แตกต่างกัน (แต่ละเวอร์ชันมีโฟลเดอร์ของตัวเอง) เช่น ตามทฤษฎีแล้ว ยังคงสามารถเรียกเซิร์ฟเวอร์หลายเวอร์ชันพร้อมกันได้
ฉันไม่ได้มีปัญหาใดๆ อย่างไรก็ตาม คุณต้องตรวจสอบพอร์ตที่อินสแตนซ์เซิร์ฟเวอร์ 1C ครอบครองอย่างระมัดระวัง ไม่ควรมีทางแยก
การตั้งค่าเซิร์ฟเวอร์ 1C
ถาม: ใน 1C 8.1 วิธีที่ดีที่สุดในการวางฐานข้อมูลคืออะไร หากมีหลายฐานข้อมูลในคลัสเตอร์เดียว หรือสร้างคลัสเตอร์แยกสำหรับแต่ละฐานข้อมูล ตอบ: เมื่อมีปริมาณหรือโหลดมาก ฐานข้อมูลทดสอบจะต้องถูกแยกไว้ในคลัสเตอร์ที่แยกจากกัน!
ถาม: คำถาม: เวิร์กโฟลว์ 1C:Enterprise 8.1 เป็นแอปพลิเคชันแบบเธรดเดียวหรือแบบมัลติเธรดหรือไม่ เหล่านั้น. ผู้ใช้ที่เชื่อมต่อหนึ่งคนสามารถโหลดคอร์หลายคอร์ได้หรือไม่ มีหลายอัน? แล้วเวิร์กโฟลว์ 1C:Enterprise 8.2 ล่ะ? ขอบคุณ
ตอบ: 1Сv8.exe และ rphost.exe ในเวอร์ชัน 8.1 ใช้ 1 คอร์ เนื่องจากใน 8.1 การเชื่อมต่อไคลเอนต์เชื่อมโยงกับกระบวนการของผู้ปฏิบัติงานอย่างเคร่งครัด เราจึงสามารถสรุปได้ตามเงื่อนไขว่าการประมวลผลไคลเอนต์ 1C ดำเนินการภายในคอร์เดียว ข้อยกเว้นคือ DBMS ซึ่งใช้เคอร์เนลไม่ว่าเซิร์ฟเวอร์ 1C ทำงานอย่างไร
ในเวอร์ชัน 8.2 การเชื่อมต่อจะถูกแทนที่ด้วยเซสชัน เซสชันอาจทำงานอยู่ในกระบวนการของผู้ปฏิบัติงานที่แตกต่างกันอยู่แล้ว ดังนั้นการเรียก 8.2 single-threaded อาจไม่ถูกต้อง ไคลเอนต์ 8.2 ยังโหลดคอร์หลายคอร์ด้วยสายตา ดังนั้น:
แพลตฟอร์ม 8.2 ไม่ได้ใช้ความสามารถทั้งหมดของระบบมัลติเธรด แต่ใช้ความสามารถของฮาร์ดแวร์ได้ดีกว่ามากเมื่อเทียบกับ 8.1 รวมถึงในแง่ของความขนานด้วย
ถาม: จำเป็นต้องมีกระบวนการทำงาน 1C:Enterprise 8.1 หลายรายการสำหรับเซิร์ฟเวอร์ฐานข้อมูล (MS SQL) เพื่อโหลดหลายคอร์หรือไม่ (สังเกตว่าโดยปกติแล้ว MS SQL จะ "โหลด" เพียงคอร์เดียวเท่านั้น นั่นคือ "การทำให้ขนานกัน" การประมวลผลคำขอเดียวในหลายคอร์ ตามกฎแล้วจะไม่เกิดขึ้น) ขอบคุณ
ตอบ: ไม่จำเป็นต้องจัดการ MS SQL โดยเฉพาะ เนื่องจากเป็นระบบที่ปรับแต่งได้เองซึ่งใช้ทรัพยากรตามความจำเป็น คุณสามารถควบคุมการทำงานแบบขนานได้:
EXEC sys.sp_configure ระดับความขนานสูงสุดของ N', N'5'
ไป
กำหนดค่าใหม่ด้วยการแทนที่
ไป
คุณสามารถสร้างกระบวนการทำงานหลายอย่างบนเซิร์ฟเวอร์ 1C โดยอาศัยข้อเท็จจริงที่ว่ากระบวนการทำงานหนึ่งไม่ได้ให้ความสามารถแก่ผู้ใช้ในการเชื่อมต่อใหม่ในกรณีที่กระบวนการทำงานขัดข้อง กระบวนการที่ 2 (ใน 8.2 ควรทำเป็น "การสำรองข้อมูล") จะช่วยแก้ปัญหานี้ได้ แต่ควรเพิ่มกระบวนการทำงานที่สามขึ้นไปก็ต่อเมื่อกระบวนการทำงานสองรายการแรกมีการโหลดจำนวนมาก (มากกว่า 90%) ไม่มีประโยชน์ที่จะเพิ่มจำนวนกระบวนการทำงานโดยไม่จำเป็น ซึ่งจะทำให้ประสิทธิภาพการทำงานแย่ลง
ตอบ: ต้องมีกระบวนการของผู้ปฏิบัติงานสำรองอย่างน้อย 1 กระบวนการใน 8.2
คลัสเตอร์ล้มเหลว
ถาม: คำถามเกี่ยวกับการเปิดใช้งานการสำรองข้อมูลสำหรับคลัสเตอร์ 1s 8.2 หากเซิร์ฟเวอร์ของเราขัดข้อง (พนักงานทำความสะอาดดึงสายออก) ชื่อเครือข่าย เช่น "เซิร์ฟเวอร์: 2540" จะไม่สามารถใช้งานได้ ไคลเอนต์ที่มีสตริงการเชื่อมต่อระบุว่า “เซิร์ฟเวอร์:2540” รู้ได้อย่างไรว่าจำเป็นต้องเชื่อมต่อกับคลัสเตอร์สำรอง เขาจะได้ชื่อของเซิร์ฟเวอร์อื่นมาจากไหน? จะเกิดอะไรขึ้นหากคุณเขียนคลัสเตอร์โดยคั่นด้วยเครื่องหมายจุลภาคในสตริงการเชื่อมต่อฐานข้อมูล
ตอบ: หลายคลัสเตอร์จะรวมกันเป็น “กลุ่มสำรอง” เพื่อจุดประสงค์นี้ จะมี "รายการจอง" ในคลัสเตอร์สแน็ปอิน
เมื่อไคลเอ็นต์เข้าถึงคลัสเตอร์เป็นครั้งแรก จะได้รับรายการคลัสเตอร์ที่รวมอยู่ในกลุ่มสำรอง
หากลูกค้าไม่เคยติดต่อคุณ ในกรณีนี้ คุณจะต้องระบุที่อยู่ของคลัสเตอร์ทั้งหมดด้วยตนเอง เช่น storm:2541,monster:2541
ข้อมูลที่ซิงโครไนซ์จะถูกแลกเปลี่ยนระหว่างคลัสเตอร์ซ้ำซ้อน
ถาม: จะเกิดอะไรขึ้นหลังจากกู้คืนคลัสเตอร์หลักแล้ว เมื่อผู้ใช้เปลี่ยนไปใช้การสำรองข้อมูล
ตอบ: พวกเขากำลังกลับไป อาจมีการหยุดชั่วคราวระหว่างการสลับขณะซิงโครไนซ์คลัสเตอร์เหล่านี้
งานเบื้องหลัง
ถาม: จะลบงานพื้นหลังที่ทำงานบนเซิร์ฟเวอร์ 1C:8.1 และ 1C:8.2 ได้อย่างไร
ตอบ: ความสามารถในการยกเลิกงานประจำจะใช้งานได้ก็ต่อเมื่อมีการเรียกใช้โค้ดภายในภาษา 1C:Enterprise ในตัว หากโค้ดถูกดำเนินการในไลบรารีภายนอก งานดังกล่าวจะไม่สามารถยกเลิกได้ยกเว้นโดยการบังคับยุติเวิร์กโฟลว์ หากในกระบวนการนี้มีบล็อก StartTransaction() - CommitTransaction() ก็ไม่น่าเป็นไปได้ งานพื้นหลังอื่นๆ สามารถลบได้ผ่านคอนโซลงาน
ขั้นตอนการปฏิบัติตามกฎระเบียบ
ถาม: เป็นไปได้ไหมที่จะทำลายฐานในช่วงป.ล.?
ตอบ: ฉันไม่ทราบถึงกรณีดังกล่าว แต่ IMHO อะไรก็เป็นไปได้ ดังนั้นจึงเป็นความคิดที่ดีที่จะทำการสำรองข้อมูลก่อน T&I
ถาม: Vyacheslav ด้วยเหตุผลอะไรที่คุณไม่ทำการจัดทำดัชนีใหม่โดยใช้การทดสอบและการแก้ไข 1C
ตอบ: ความสามารถของ DBMS เหมาะสมกว่าสำหรับวัตถุประสงค์เหล่านี้ เนื่องจากโดยพื้นฐานแล้วความสามารถเหล่านี้จะสร้างดัชนีใหม่ด้วย แต่ไม่จำเป็นต้องยึดฐานข้อมูลแต่เพียงผู้เดียว
นิตยสารเทคโนโลยี
ถาม: สวัสดีตอนบ่าย คำถามจากนิตยสารเทคโนโลยี: ฉันต้องได้รับสำเนาหน้าจอเวิร์กสเตชันในกรณีที่เกิดข้อผิดพลาด 1C ฉันจำเป็นต้องตั้งค่าบันทึกทางเทคโนโลยีบนเวิร์กสเตชันสำหรับสิ่งนี้หรือไม่ หรือสำหรับเซิร์ฟเวอร์เท่านั้น
ตอบ: คุณสามารถกำหนดค่าการรับภาพหน้าจอได้เฉพาะเมื่อแพลตฟอร์มล่มเท่านั้น ไม่ใช่เมื่อมีข้อผิดพลาดใดๆ อย่างไรก็ตาม การดำเนินการดังกล่าวไม่มีประโยชน์มากนัก การรวบรวมสถานการณ์ข้อยกเว้นโดยใช้บันทึกทางเทคโนโลยีก็เพียงพอแล้ว ในเวลาเดียวกัน ข้อผิดพลาดส่วนใหญ่สามารถเห็นได้โดยใช้ TZ บนฝั่งเซิร์ฟเวอร์ 1C ข้อยกเว้นจะเป็นเหตุการณ์เช่น "ข้อผิดพลาดของสตรีมรูปแบบ" ที่เกี่ยวข้องกับแคชข้อมูลเมตาที่ล้าสมัย
ปัญหาและข้อผิดพลาด
ถาม: คุณเคยประสบปัญหา - การตั้งค่ารายงานหายไปสำหรับผู้ใช้เมื่ออัปเดตการกำหนดค่าแบบไดนามิกบนแพลตฟอร์ม 8.2 หรือไม่ มีข้อเสนอแนะเกี่ยวกับวิธีการจัดการกับเรื่องนี้หรือไม่?
ตอบ: ปัญหาที่เกี่ยวข้องกับการอัปเดตแบบไดนามิกจะสะท้อนให้เห็นใน “เซิร์ฟเวอร์ 1C: Enterprise 8.1 และ 8.2 - กินอะไรดี”), สไลด์หมายเลข 60 ล้างแคช บางทีในบางกรณีจำเป็นต้องเข้าใจว่าการตั้งค่าผู้ใช้ถูกจัดเก็บไว้ที่ไหน หากจำเป็น ให้จัดเก็บเป็นข้อมูลไบนารีในการลงทะเบียนข้อมูล
ถาม: คำถามที่เกี่ยวข้องกัน เพราะ... สิ่งนี้เกี่ยวข้องกับโหมดไฟล์: chdbfl.exe แก้ไขข้อผิดพลาดอะไรบ้าง
ตอบ: นี่เป็นเครื่องมือแก้ไขข้อผิดพลาดของโครงสร้างการจัดเก็บข้อมูล นี่อาจเป็นสถานการณ์ที่ปรากฏขึ้น เช่น “ไฟล์ฐานข้อมูลเสียหาย.../1Cv8.1CD” เหล่านั้น. แก้ไขความเสียหายของไฟล์ฐานข้อมูล อย่างไรก็ตาม มันไม่ได้ทำหน้าที่ T&I ฉันรัน chdbfl.exe หาก T&I ทำงานไม่สำเร็จ
ถาม: โปรดบอกฉันหากคุณประสบปัญหาดังกล่าว เมื่อมีผู้ใช้จำนวนมากในฐานข้อมูล (ประมาณ 40) เมื่อประมวลผลเอกสารขนาดใหญ่ เช่น สะท้อนถึง PO ใน reg บัญชีประมาณ 8000 เส้น ข้อความแสดงข้อผิดพลาดคือมีหน่วยความจำไม่เพียงพอบนเซิร์ฟเวอร์ 1C ขององค์กรและผู้ใช้ที่เริ่มต้นเอกสารนี้หลุดออกไป เอกสารสามารถประมวลผลได้หลังจากรีสตาร์ทเอเจนต์เซิร์ฟเวอร์ 1C เท่านั้น
ตอบ: ดูเหมือนว่าหน่วยความจำรั่ว:
1. รีสตาร์ทเซิร์ฟเวอร์ 1C เพิ่มจำนวนกระบวนการของผู้ปฏิบัติงาน และเก็บฐานข้อมูลนี้ไว้เพียงฐานข้อมูลเดียวในคลัสเตอร์
2. เอาชนะการถือครองในส่วนต่างๆ พูดครั้งละ 1,000 บรรทัด การใช้ TZ ติดตามวัตถุที่ใช้หน่วยความจำเมื่อเริ่มต้นการดำเนินการ แต่อย่าปล่อยหน่วยความจำเมื่อเสร็จสิ้น
3. ติดตั้งเวอร์ชัน x64 เพิ่มจำนวน RAM เปลี่ยนเป็น 8.2
ถาม: คำถามเกี่ยวกับการทดสอบและการจัดการ เป็นไปได้ไหมที่จะรัน “Referential Integrity Check” ตาม URDB พร้อมการเลือกตามข้อมูลที่ส่ง (เช่น ในบางโหนดไม่มีวัตถุทางกายภาพ แต่มีลิงก์ไปยังวัตถุเหล่านั้น) ขอบคุณ!
ตอบ: น่าเสียดายที่ยังไม่สามารถทำได้
ถาม: เหตุใดการทดสอบและแก้ไขจึงไม่แก้ปัญหาทั้งหมดในคราวเดียว คุณต้องเรียกใช้หลายครั้งหรือไม่
ตอบ: มีเพียงนักพัฒนาเท่านั้นที่สามารถตอบได้อย่างแม่นยำ ฉันดำเนินการ T&I ตามกฎข้อบังคับ (เป็นรอบ) ดังนั้นปัญหานี้จึงไม่เกี่ยวข้องกับฉันมากนัก T&I จะต้องทำไม่ใช่แค่ครั้งเดียว แต่ต้องทำอย่างต่อเนื่อง เช่น “MOT for a car”
ถาม: มีความแตกต่างระหว่าง T&I 8.1 และ 8.2 หรือไม่
ตอบ: ในขณะที่เขียนคำตอบและเผยแพร่ 8.2.10 ฉันไม่ทราบความแตกต่าง
ถาม: จำเป็นต้องจัดทำดัชนีใหม่ระหว่างการปรับโครงสร้างใหม่หรือไม่
ตอบ: ไม่จำเป็น
อื่น
ถาม: ท่านที่รัก มีใครพยายามจำลองฐานข้อมูลโดยใช้ MSSql 2008 บ้างไหม?
ถาม: คำถามเกี่ยวกับการบังคับใช้หน่วยความจำที่ใช้ร่วมกันบนเซิร์ฟเวอร์ 1s 8.2
ตอบ: ไม่จำเป็นต้องบังคับอะไร เซิฟเวอร์จะเข้าใจ
ถาม: สำหรับ 1C:Enterprise 8.1 มีการสังเกตสถานการณ์เมื่อบนฮาร์ดแวร์เดียวกัน เวอร์ชันไฟล์เซิร์ฟเวอร์ที่มีการดำเนินการ "หนัก" และผู้ใช้รายเดียวทำงานเร็วกว่าเวอร์ชันไคลเอนต์-เซิร์ฟเวอร์มาก เมื่อ "ลิงก์" ทั้งหมด (ฐานข้อมูล เซิร์ฟเวอร์, เซิร์ฟเวอร์ 1C :องค์กรและไคลเอนต์) ได้รับการติดตั้งบนเซิร์ฟเวอร์เดียวกัน นอกจากนี้ เมื่อดำเนินการ "หนัก" นี้ จะไม่มีการโอเวอร์โหลดฮาร์ดแวร์ที่ชัดเจน (โหลดบนโปรเซสเซอร์ หน่วยความจำ และฮาร์ดไดรฟ์มีน้อยมาก) นั่นคือมีทรัพยากรฮาร์ดแวร์มากมาย แต่ทำงานช้า เราจะ “พักต่อต้าน” อะไรได้บ้าง? ขอบคุณ
ตอบ: ข้อดีของสถาปัตยกรรมไคลเอ็นต์-เซิร์ฟเวอร์จากมุมมองด้านประสิทธิภาพคือความสามารถในการประมวลผลคำขอข้อมูลของไคลเอ็นต์ในรูปแบบ PARALLEL เหล่านั้น. ความเร็วการไหลไม่ใช่ตัวบ่งชี้ที่จะสรุปผลทั่วไป กลไกที่ปรับปรุงการทำงานพร้อมกันอาจยังลดประสิทธิภาพภายในเธรดเดียวเล็กน้อย
เพื่อที่จะค้นหาคอขวดในกรณีของคุณได้อย่างไม่คลุมเครือ คุณจะต้องรับปริมาณงานของอุปกรณ์เซิร์ฟเวอร์และเปรียบเทียบกับการดำเนินการที่ยาวนานที่สุดในโหมดไคลเอนต์-เซิร์ฟเวอร์ บ่อยครั้งนี่เป็นการเคลื่อนย้ายข้อมูลไปยังฝั่งไคลเอ็นต์มากเกินไป เหล่านั้น. แทนที่จะดำเนินการบนเซิร์ฟเวอร์ 1C ข้อมูลจากฐานข้อมูลจะถูกถ่ายโอนผ่านเซิร์ฟเวอร์ไปยังไคลเอนต์
ความเร็วในหนึ่งเธรดของเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์จะตามทันประสิทธิภาพของเวอร์ชันไฟล์เท่านั้น การแก้ปัญหานี้คุ้มค่าหากวัดเวลาการทำงานเป็นจำนวนสัมบูรณ์ได้ภายในเวลาไม่น้อยกว่านาที การเพิ่มประสิทธิภาพภายในการค้นหา 1-3 วินาทีถือเป็นเรื่องที่น่าสงสัย
ถาม: เกี่ยวกับความแตกต่างระหว่างเทอร์มินัล Windows และไคลเอ็นต์แบบบาง 1C
ตอบ: จนกว่าโซลูชันส่วนใหญ่จะได้รับการแปลเป็น 8.2 โดยสมบูรณ์ เป็นการยากที่จะพูดถึงการเปรียบเทียบเชิงปฏิบัติของเทคโนโลยีเหล่านี้
เป็นที่ชัดเจนว่าไคลเอ็นต์แบบบาง 1C ควรใช้การรับส่งข้อมูลน้อยลงและให้ความสามารถในการทำงานผ่านเว็บ แต่นี่คือสิ่งที่ยังไม่ได้ดำเนินการ และตอนนี้โซลูชันเทอร์มินัลก็ถูกนำมาใช้กันอย่างแพร่หลาย
สำหรับผู้จัดการโครงการเชิงอนุรักษ์นิยมที่แปลง 8.1 เป็น 8.2 - โซลูชันเทอร์มินัล สำหรับโครงการขนาดเล็กที่มีต้นทุนข้อผิดพลาดต่ำและการกำหนดค่าที่ใช้งานได้ทันทีด้วยแบบฟอร์มที่ได้รับการจัดการและระบบควบคุมการเข้าถึง IMHO ควรใช้ไคลเอ็นต์แบบบาง
ถาม: จะทำการทดสอบโหลดใกล้กับสภาวะจริงได้อย่างไร ท้ายที่สุดแล้ว คุณไม่สามารถบังคับให้ผู้ใช้ "คลิกอะไรบางอย่าง"
A: 1C: ศูนย์ทดสอบที่มีตัวเลือกการดำเนินการที่ยากที่สุด ไม่จำเป็นต้องสร้างซ้ำ 100% การคลิกนั้นไม่ยาก โดยหลักๆ แล้วการดำเนินการและขอรายงาน จะมีการสัมมนาผ่านเว็บเกี่ยวกับการทดสอบแยกต่างหาก ฉันจะบอกคุณในรายละเอียดเพิ่มเติมด้วย
ก่อนอื่น หลังจากติดตั้งคลัสเตอร์ 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<Имя модуля>.<Имя метода>– จะระบุรหัสเฉพาะ
โปรดทราบว่าการตั้งค่าคลัสเตอร์มีหน้าที่รับผิดชอบในการตั้งค่าของเซิร์ฟเวอร์ทั้งหมดที่อยู่ในคลัสเตอร์ที่กำหนดค่าไว้ คลัสเตอร์เกี่ยวข้องกับการทำงานของเซิร์ฟเวอร์จริงหรือเซิร์ฟเวอร์เสมือนหลายตัวที่ทำงานกับฐานข้อมูลเดียวกัน
รีสตาร์ทช่วงเวลา– รับผิดชอบความถี่ในการรีสตาร์ทกระบวนการของผู้ปฏิบัติงานคลัสเตอร์ ต้องตั้งค่าพารามิเตอร์นี้เมื่อเซิร์ฟเวอร์ทำงานตลอดเวลา ขอแนะนำให้เชื่อมโยงความถี่การรีสตาร์ทกับวงจรเทคโนโลยีของฐานข้อมูลคลัสเตอร์ โดยปกติจะเป็นทุกๆ 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% หากสูงกว่า แนะนำให้จัดทำดัชนีใหม่
แผนการใช้พลังงาน– ตั้งค่าการตั้งค่าพลังงานของระบบปฏิบัติการเป็นประสิทธิภาพสูง