วิธีการตั้งค่าขีดจำกัดหน่วยความจำของ SAP HANA บน SUSE Linux Enterprise Server

การควบคุมหน่วยความจำของ SAP HANA บน SUSE Linux Enterprise Server จะได้ผลดีที่สุดเมื่อคุณแยกงานสองอย่างออกจากกัน: การจำกัดสิ่งที่ HANA สามารถจัดสรรได้ และการปกป้องเวิร์กโหลดของ SAP เมื่อโฮสต์ Linux อยู่ภายใต้แรงกดดันด้านหน่วยความจำ SAP HANA จัดการงานแรกด้วยพารามิเตอร์ฐานข้อมูล เช่นglobal_allocation_limitและ ส่วนstatement_memory_limitกลไกการป้องกันหน่วยความจำของเวิร์กโหลดที่ใช้ systemd/cgroup ของ SUSE จะจัดการงานที่สองด้วยMemoryLowบนSAP.sliceกลไกเหล่านี้เสริมซึ่งกันและกัน แต่ไม่สามารถใช้แทนกันได้

คู่มือนี้ใช้เอกสาร SAP HANA Platform 2.0 SPS 08 และคำแนะนำปัจจุบันสำหรับ SUSE Linux Enterprise Server for SAP Applications ที่มีให้ใช้งานในเดือนตุลาคม 2026 ก่อนที่จะทำการเปลี่ยนแปลงระบบที่ใช้งานจริง โปรดตรวจสอบให้แน่ใจว่าเวอร์ชัน HANA และ Service Pack ของ SLES ของคุณได้รับการสนับสนุน คู่มือการติดตั้งของ SAP แนะนำให้ผู้ดูแลระบบดูหมายเหตุ SAP 2235581 สำหรับระบบปฏิบัติการที่ได้รับการสนับสนุน: คู่มือการติดตั้งและการอัปเด ตSAP HANA Server

คุณควรใช้การควบคุมหน่วยความจำแบบใด?

ควบคุมมันทำอะไรได้บ้างเหมาะสมที่สุดข้อแลกเปลี่ยนหลัก
global_allocation_limitจำกัดจำนวนหน่วยความจำที่ SAP HANA สามารถจัดสรรให้กับโฮสต์ได้เซิร์ฟเวอร์ HANA เฉพาะ, ระบบ SAP ที่ตั้งอยู่ร่วมกัน หรือสภาพแวดล้อมที่ HANA ต้องจัดสรร RAM ไว้สำหรับระบบปฏิบัติการและบริการอื่นๆหากตั้งค่าต่ำเกินไป อาจทำให้เกิดความล้มเหลวในการจัดสรรหรือประสิทธิภาพการทำงานที่ไม่ดี ในขณะที่หากตั้งค่าสูงเกินไป จะเหลือพื้นที่ว่างนอกเหนือจาก HANA น้อยลง
statement_memory_limitจำกัดปริมาณหน่วยความจำที่ใช้โดยคำสั่ง SQL แต่ละคำสั่งภาระงานที่หลากหลาย ซึ่งคำสั่งค้นหาขนาดใหญ่คำสั่งเดียวไม่ควรใช้หน่วยความจำมากเกินไปการกำหนดวงเงินที่ต่ำเกินไปอาจทำให้รายงานวิเคราะห์หรือรายงานบริหารที่ถูกต้องตามกฎหมายต้องถูกยกเลิกได้
ขีดจำกัดคำสั่งเฉพาะผู้ใช้ยกเลิกข้อจำกัดหน่วยความจำคำสั่งทั่วโลกสำหรับผู้ใช้ฐานข้อมูลรายหนึ่งการรายงาน การวิเคราะห์เฉพาะกิจ ETL หรือผู้ใช้รายอื่นที่มีระดับความเสี่ยงแตกต่างกันทำให้การกำหนดนโยบายมีความซับซ้อนมากขึ้น และต้องมีการปรับปรุงแก้ไขเมื่อผู้ใช้งานและปริมาณงานเปลี่ยนแปลงไป
SUSE MemoryLowบนSAP.sliceปกป้องปริมาณหน่วยความจำขั้นต่ำสำหรับกระบวนการ SAP ภายใต้สภาวะหน่วยความจำไม่เพียงพอของ cgroup v2โฮสต์ที่กระบวนการที่ไม่เกี่ยวข้องกับ SAP อาจแย่งใช้ RAM กับ SAP ได้นี่คือระบบป้องกัน ไม่ใช่ข้อจำกัดที่ตายตัวของ HANA การตั้งค่าให้ใกล้กับ RAM ทางกายภาพมากเกินไปอาจทำให้บริการของระบบทำงานไม่ทัน

เอกสาร SAP global_allocation_limitระบุหน่วยเป็นเมกะไบต์ (MB) หากตั้งค่าพารามิเตอร์ไว้ที่ค่าเริ่มต้น 0 HANA จะคำนวณขีดจำกัดอัตโนมัติโดยอิงจากหน่วยความจำทางกายภาพที่มีอยู่ คู่มือการดูแลระบบ SPS 08 อธิบายสูตรปัจจุบันว่าคือ 90% ของ 64 GB แรก บวก 97% ของแต่ละ GB เพิ่มเติม โดยมีการจัดการพิเศษสำหรับระบบขนาดเล็กมาก คู่มือเดียวกันนี้ระบุว่าการเปลี่ยนพารามิเตอร์ไม่จำเป็นต้องรีสตาร์ท ดูคู่มือการดูแลระบบ SAP HANA 2.0 SPS 08

ขั้นตอนที่ 1: วัดหน่วยความจำของโฮสต์ก่อนตั้งค่าขีดจำกัด

เริ่มต้นที่ SLES โดยตรวจสอบ RAM ทางกายภาพ หน่วยความจำที่ใช้งานได้ กิจกรรมสวอป และว่ากระบวนการ SAP ได้ถูกจัดกลุ่มไว้แล้วหรือไม่ ขั้นSAP.sliceตอนนี้จะช่วยให้คุณทราบเงื่อนไขขอบเขตก่อนที่จะตัดสินใจว่า HANA จะใช้หน่วยความจำได้มากน้อยเพียงใด

free -h
grep MemTotal /proc/meminfo
systemctl status SAP.slice

อย่ากำหนดขีดจำกัดของ HANA โดยการหักจำนวนกิกะไบต์คงที่ออกจาก RAM ที่ติดตั้งไว้ ควรสำรองหน่วยความจำไว้สำหรับเคอร์เนล Linux, SAP Host Agent, ซอฟต์แวร์ตรวจสอบ, เครื่องมือสำรองข้อมูล, ส่วนประกอบคลัสเตอร์ และเซิร์ฟเวอร์แอปพลิเคชันที่อยู่ร่วมกัน หาก ABAP และ HANA ใช้โฮสต์เดียวกัน SAP กำหนดไว้อย่างชัดเจนว่าขนาดของทั้งสองระบบต้องพอดีกับหน่วยความจำทางกายภาพ และแนะนำให้ประสานขีดจำกัดการจัดสรรโดยรวมของ HANA กับPHYS_MEMSIZEการตั้งค่า ABAP: การกำหนดค่าการ ตั้งค่าหน่วยความจำของ SAP

เทอร์มินัล SUSE Linux แสดงสถานะ free -h, meminfo และ SAP.slice ก่อนเปลี่ยนการตั้งค่าหน่วยความจำของ SAP HANA
SUSE Linux จะตรวจสอบหน่วยความจำที่ติดตั้ง ความพร้อมใช้งานในปัจจุบัน และ cgroup SAP.slice ก่อนที่จะเลือกขีดจำกัดการจัดสรร HANA

ขั้นตอนที่ 2: อ่านค่าพารามิเตอร์หน่วยความจำ HANA ที่มีอยู่

ก่อนทำการเปลี่ยนแปลงใดๆ โปรดบันทึกการตั้งค่าปัจจุบัน คุณสามารถตรวจสอบได้M_INIFILE_CONTENTSจาก SAP HANA Database Explorer, คอนโซล Cockpit SQL หรือไคลเอ็นต์ SQL ที่ได้รับอนุญาตอื่นๆ

SELECT FILE_NAME, SECTION, KEY, VALUE, LAYER_NAME
FROM M_INIFILE_CONTENTS
WHERE FILE_NAME = 'global.ini'
  AND SECTION = 'memorymanager'
  AND KEY IN ('global_allocation_limit',
              'statement_memory_limit',
              'statement_memory_limit_threshold')
ORDER BY KEY, LAYER_NAME;

ระดับการเชื่อมต่อมีความสำคัญ ในระบบแบบหลายผู้เช่า การตั้งค่าระดับระบบและระดับฐานข้อมูลอาจมีขอบเขตที่แตกต่างกัน อย่าคัดลอกคำสั่งจากตัวอย่างระบบแบบคอนเทนเนอร์เดียวโดยไม่ตรวจสอบว่าคุณเชื่อมต่อกับ SYSTEMDB หรือฐานข้อมูลของผู้เช่า และคุณต้องการเปลี่ยนแปลงในระดับใด

กำลังสอบถามข้อมูลจาก M_INIFILE_CONTENTS ใน SAP HANA SQL console เพื่อตรวจสอบ global_allocation_limit และ statement_memory_limit
คอนโซล HANA SQL ใช้สำหรับตรวจสอบพารามิเตอร์ตัวจัดการหน่วยความจำที่มีอยู่ก่อนทำการเปลี่ยนแปลง

ขั้นตอนที่ 3: กำหนดขีดจำกัดการจัดสรร HANA ทั่วโลก

ใช้global_allocation_limitเมื่อเป้าหมายคือการกำหนดขอบเขตการจัดสรรหน่วยความจำทั้งหมดของ HANA ค่าเช่น 180000 หมายถึง 180,000 MB เป็นเพียงตัวอย่าง ไม่ใช่คำแนะนำสากล ตัวเลขที่ถูกต้องต้องมาจากขนาด การใช้งานในอดีต ข้อกำหนดด้านความพร้อมใช้งานสูง และหน่วยความจำที่ต้องคงเหลือไว้สำหรับระบบปฏิบัติการและกระบวนการอื่นๆ

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('memorymanager', 'global_allocation_limit') = '180000'
WITH RECONFIGURE;

ข้อดีของการกำหนดขีดจำกัดโดยรวมที่ต่ำกว่าคือ สามารถคาดการณ์พื้นที่ว่างเพิ่มเติมสำหรับการใช้งานนอกเหนือจาก HANA ได้ ส่วนข้อเสียคือ พื้นที่สำหรับการเติบโตของคอลัมน์สโตร์ แคช ผลลัพธ์การค้นหาชั่วคราว และค่าใช้จ่ายในการให้บริการจะลดลง หากโฮสต์นั้นถูกจัดสรรให้กับ HANA โดยเฉพาะ ค่าเริ่มต้นอัตโนมัติอาจเหมาะสมหลังจากตรวจสอบขนาดแล้ว แต่หากโฮสต์นั้นเป็นแบบใช้ร่วมกัน การกำหนดขีดจำกัดอย่างชัดเจนมักจะเข้าใจได้ง่ายกว่า เพราะแต่ละเวิร์กโหลดที่ใช้งานอยู่จะมีงบประมาณที่กำหนดไว้แล้ว

คอนโซล SQL ของ SAP HANA Database Explorer กำหนดค่า global_allocation_limit เป็น 180000 MB ด้วยคำสั่ง ALTER SYSTEM ALTER CONFIGURATION
ตัวอย่างการเปลี่ยนแปลงระดับ SYSTEM global_allocation_limit: ค่าตัวเลขต้องถูกแทนที่ด้วยผลลัพธ์จากการกำหนดขนาดของคุณเอง

ขั้นตอนที่ 4: ตัดสินใจว่าจะจำกัดคำสั่ง SQL แต่ละรายการหรือไม่

statement_memory_limitฟังก์ชันนี้ควบคุมการจัดสรรหน่วยความจำสูงสุดสำหรับคำสั่งเดียว และแสดงเป็นหน่วย GB SAP ระบุค่าเริ่มต้นเป็น 0 ซึ่งหมายความว่าไม่มีการจำกัดเฉพาะคำสั่ง การกำหนดค่าที่แน่นอนจะมีประโยชน์เมื่อการสืบค้นข้อมูลเชิงวิเคราะห์แบบเฉพาะกิจหรือการเชื่อมต่อข้อมูลที่กรองไม่ดีอาจใช้หน่วยความจำส่วนกลางจำนวนมาก

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('memorymanager', 'statement_memory_limit') = '5'
WITH RECONFIGURE;

ข้อแลกเปลี่ยนนั้นชัดเจน: การกำหนดขีดจำกัดที่เข้มงวดมากขึ้นจะช่วยป้องกันการทำงานพร้อมกัน แต่ก็อาจทำให้คำสั่งที่ใช้หน่วยความจำมากซึ่งจำเป็นต่อธุรกิจของคุณถูกยกเลิกได้ SAP ระบุว่าการถึงขีดจำกัดจะทำให้คำสั่งถูกยกเลิกและอาจทำให้เกิดข้อผิดพลาด (dump) ที่compositelimit_oomมีชื่อไฟล์ว่า .dump สำหรับรายละเอียดเพิ่มเติม โปรดดูส่วนการจัดการหน่วยความจำในคู่มือการแก้ไขปัญหาและการวิเคราะห์ประสิทธิภาพของ SAP HANA

SAP HANA Database Explorer ตั้งค่า statement_memory_limit เป็น 5 GB ในไฟล์ global.ini
ตัวอย่างเช่น กำหนดขีดจำกัด 5 GB ต่อคำสั่ง ควรตรวจสอบค่าการผลิตเทียบกับความต้องการใช้งานสูงสุดตามปกติ

ขั้นตอนที่ 5: ใช้ข้อจำกัดเฉพาะผู้ใช้เมื่อค่าทั่วไปค่าเดียวไม่ครอบคลุมเพียงพอ

การจำกัดจำนวนคำสั่งแต่ละรายการนั้นใช้งานง่าย แต่จะถือว่าบัญชี ETL ที่ใช้งานข้ามคืนนั้นเหมือนกับผู้ใช้รายงานแบบโต้ตอบ SAP รองรับการจำกัดเฉพาะผู้ใช้STATEMENT MEMORY LIMITซึ่งจะมีลำดับความสำคัญเหนือกว่าการจำกัดจำนวนคำสั่งโดยรวมสำหรับผู้ใช้นั้น

ALTER USER REPORT_USER
SET PARAMETER STATEMENT MEMORY LIMIT = '2';

วิธีการนี้มักจะดีกว่าการลดขีดจำกัดโดยรวมสำหรับทุกคน ตัวอย่างเช่น คุณสามารถจำกัดการรายงานแบบเฉพาะกิจ ในขณะที่ปล่อยให้บัญชีแบบแบตช์หรือบัญชีผู้ดูแลระบบมีขีดจำกัดที่มากขึ้น ข้อเสียคือเรื่องการกำกับดูแล: ข้อยกเว้นจะต้องได้รับการบันทึก ตรวจสอบ และยกเลิกเมื่อไม่จำเป็นอีกต่อไป SAP ยังได้บันทึกข้อจำกัดสำหรับการสืบค้นข้ามฐานข้อมูลและสถานการณ์ XS Classic บางอย่าง ซึ่งคลาสเวิร์กโหลดอาจเหมาะสมกว่า ดูSAP Setting User Parameters for Workload

คอนโซล SAP HANA SQL กำหนดขีดจำกัดหน่วยความจำคำสั่ง 2 GB ให้กับ REPORT_USER
การกำหนดขีดจำกัดหน่วยความจำสำหรับคำสั่งเฉพาะผู้ใช้ สามารถแยกผู้ใช้ที่ต้องการรายงานหรือใช้งานเฉพาะกิจได้ โดยไม่ลดปริมาณหน่วยความจำที่อนุญาตสำหรับภาระงานทั้งหมด

ขั้นตอนที่ 6: ปกป้องหน่วยความจำ SAP บน SUSE ด้วย MemoryLow ไม่ใช่การจำกัดหน่วยความจำแบบตายตัวครั้งที่สอง

บน SLES สำหรับแอปพลิเคชัน SAP นั้น SUSE แนะนำให้ใช้ Workload Memory Protection ผ่าน systemd และ cgroup v2 อินสแตนซ์ของ SAP จะถูกจัดวางไว้ในSAP.sliceและ SUSE ระบุว่าสำหรับ SAP HANA นั้น สามารถใช้ HANA Global Allocation Limit เป็นพื้นฐานMemoryLowได้

sudo systemctl set-property SAP.slice MemoryLow=180G
systemctl show SAP.slice -p MemoryLow

MemoryLowเป็นค่าขีดจำกัดการป้องกัน: ภายใต้สภาวะที่หน่วยความจำมีจำกัด เคอร์เนลจะพยายามปกป้องปริมาณนั้นสำหรับ cgroup มันไม่เหมือนกับMemoryMaxและไม่ได้มาแทนที่ตัวจัดสรรหน่วยความจำของ HANA เอง ความแตกต่างนี้มีความสำคัญเพราะข้อจำกัดระดับระบบปฏิบัติการที่เข้มงวดอาจสร้างโหมดความล้มเหลวที่แตกต่างจากการควบคุมการจัดสรรภายในของ HANA

SUSE ยังเตือนไม่ให้ตั้งค่าMemoryLowใกล้เคียงหรือสูงกว่าหน่วยความจำทางกายภาพทั้งหมด เนื่องจากบริการระบบและซอฟต์แวร์ที่ติดตั้งอื่นๆ ก็ต้องการหน่วยความจำเช่นกัน คำแนะนำล่าสุดมีอยู่ในเอกสาร SUSE Workload Memory Protection for SLES for SAP 15 SP6

ตั้งค่าเทอร์มินัล SUSE โดยกำหนดค่า SAP.slice MemoryLow เป็น 180G และตรวจสอบค่าด้วย systemctl
บน SLES MemoryLowจะช่วยปกป้อง SAP.slice ในระหว่างที่หน่วยความจำของโฮสต์มีปริมาณจำกัด และจะไม่กำหนดขีดจำกัดการจัดสรรหน่วยความจำของ HANA

ขั้นตอนที่ 7: ตรวจสอบให้แน่ใจว่าคุณไม่ได้เพิ่ม cgroup cap ที่ขัดแย้งกันโดยไม่ได้ตั้งใจ

หลังจากตั้งค่าเสร็จแล้วMemoryLowให้ตรวจสอบคุณสมบัติ systemd ที่เกี่ยวข้อง หากการออกแบบของคุณไม่ได้ใช้MemoryHighหรือMemoryMaxโดยเจตนา ให้ตรวจสอบว่าไม่ได้ถูกเพิ่มเข้ามาโดยโปรแกรมเสริมในเครื่อง ระบบอัตโนมัติ หรือนโยบายการปรับแต่งที่ไม่เกี่ยวข้อง

systemctl show SAP.slice | grep -E 'MemoryLow|MemoryHigh|MemoryMax'

เรื่องนี้สำคัญอย่างยิ่งบนโฮสต์ที่ใช้ร่วมกันซึ่งจัดการโดยระบบอัตโนมัติในการกำหนดค่า ระบบป้องกันหน่วยความจำของเวิร์กโหลดของ SUSE ออกแบบมาเพื่อปกป้อง SAP จากแรงกดดันจากเวิร์กโหลดที่อยู่นอก cgroup ที่ได้รับการป้องกัน แต่ไม่สามารถปกป้องระบบ SAP หรืออินสแตนซ์ SAP จากกันและกันได้เมื่อทั้งหมดใช้ cgroup เดียวกันSAP.sliceนั่นหมายความว่าการกำหนดขนาดในระดับแอปพลิเคชันยังคงมีความสำคัญแม้ว่าจะเปิดใช้งานการป้องกัน cgroup แล้วก็ตาม

เทอร์มินัล SUSE แสดงค่า MemoryLow, MemoryHigh และ MemoryMax สำหรับ SAP.slice
การตรวจสอบคุณสมบัติของ SAP.slice จะช่วยให้แยกแยะการป้องกันหน่วยความจำต่ำที่ตั้งใจไว้ ออกจากการควบคุมหน่วยความจำสูงหรือสูงสุดที่แยกต่างหากได้

ขั้นตอนที่ 8: ตรวจสอบการตั้งค่า HANA และสังเกตพฤติกรรมภายใต้ภาระงานจริง

หลังจากทำการเปลี่ยนแปลง แล้ว ให้สอบถามข้อมูลอีกครั้งM_INIFILE_CONTENTSและยืนยันเลเยอร์และค่าที่ต้องการ จากนั้นตรวจสอบระบบในช่วงเวลาการทำงานปกติและช่วงเวลาการทำงานสูงสุด การกำหนดค่าจะไม่ถือว่าสำเร็จเพียงเพราะคำสั่ง SQL ทำงานได้โดยไม่มีข้อผิดพลาด

SELECT FILE_NAME, SECTION, KEY, VALUE
FROM M_INIFILE_CONTENTS
WHERE FILE_NAME = 'global.ini'
  AND SECTION = 'memorymanager'
ORDER BY KEY;

คอยสังเกตเหตุการณ์หน่วยความจำไม่เพียงพอ การยกเลิกคำสั่ง แรงดันหน่วยความจำสูงอย่างต่อเนื่อง การสลับหน่วยความจำ และความหน่วงของเวิร์กโหลด หากคำสั่งที่เคยทำงานเสร็จสมบูรณ์เริ่มล้มเหลวด้วยข้อผิดพลาดเกี่ยวกับขีดจำกัดหน่วยความจำ ค่าต่อคำสั่งของคุณอาจเข้มงวดเกินไป หาก Linux มีพื้นที่เหลือน้อยมากในขณะที่ HANA ใกล้ถึงขีดจำกัดโดยรวมเป็นประจำ ขีดจำกัดโดยรวมอาจสูงเกินไปสำหรับเวิร์กโหลดรวมของโฮสต์ หาก HANA ยังคงต่ำกว่าขีดจำกัดมากในขณะที่การสืบค้นที่สำคัญกำลังเกิดการล้นหรือถูกยกเลิก ขีดจำกัดอาจต่ำเกินไป หรือเวิร์กโหลดอาจต้องการนโยบายที่ตรงเป้าหมายมากขึ้น

SAP HANA Database Explorer แสดงค่า global_allocation_limit และ statement_memory_limit ที่ได้รับการตรวจสอบแล้วจาก M_INIFILE_CONTENTS
การตรวจสอบขั้นสุดท้ายควรยืนยันค่าที่กำหนดไว้ใน HANA และตามด้วยการสังเกตการณ์ภายใต้ภาระงานที่เป็นตัวแทน

การเลือกนโยบายสำหรับรูปแบบการใช้งานทั่วไป

โฮสต์ HANA สำหรับการผลิตโดยเฉพาะ

ควรใช้การจัดการการจัดสรรหน่วยความจำส่วนกลางของ HANA เอง และเว้นพื้นที่ว่างในระบบปฏิบัติการให้เพียงพอตามขนาดของ SAP เพิ่มขีดจำกัดจำนวนคำสั่งเฉพาะเมื่อประวัติการทำงานแสดงให้เห็นว่าคำสั่งแต่ละรายการอาจคุกคามการทำงานพร้อมกัน ใช้ SUSE MemoryLowเมื่อคุณต้องการปกป้องภาระงานของ SAP จากแรงกดดันด้านหน่วยความจำที่ไม่เกี่ยวข้องกับ SAP บนโฮสต์

เซิร์ฟเวอร์แอปพลิเคชัน HANA Plus บนโฮสต์เดียว

ใช้การกำหนดงบประมาณอย่างชัดเจน ประสานงาน HANA global_allocation_limitกับการตั้งค่าหน่วยความจำของแอปพลิเคชันเซิร์ฟเวอร์ เช่น วิธีPHYS_MEMSIZEนี้มีความยืดหยุ่นน้อยกว่าการปล่อยให้ทั้งสองฝั่งเติบโตได้อย่างอิสระ แต่จะช่วยลดความเสี่ยงที่ส่วนประกอบหนึ่งจะใช้หน่วยความจำที่อีกส่วนประกอบหนึ่งต้องการ

การวิเคราะห์แบบผสมผสานพร้อมการสอบถามแบบเฉพาะกิจที่คาดเดาไม่ได้

ควรผสมผสานการกำหนดขีดจำกัดการจัดสรรหน่วยความจำโดยรวมที่เหมาะสมเข้ากับการควบคุมในระดับคำสั่ง โดยเริ่มต้นจากหลักฐานจากคำสั่งที่มีค่าใช้จ่ายสูงและการใช้งานหน่วยความจำสูงสุด แทนที่จะใช้ตัวเลขเล็กๆ ที่กำหนดขึ้นเอง การกำหนดขีดจำกัดเฉพาะผู้ใช้หรือคลาสของภาระงานจะเหมาะสมกว่าเมื่อมีเพียงผู้ใช้หรือแอปพลิเคชันบางส่วนเท่านั้นที่สร้างคำสั่งค้นหาที่มีความเสี่ยง

ระบบ HA หรือระบบ HANA แบบคลัสเตอร์

กำหนดขนาดทั้งสถานะใช้งานและสถานะเข้าควบคุม โหนดรองที่กลายเป็นโหนดหลักอาจต้องการหน่วยความจำที่แตกต่างจากที่ใช้ในระหว่างการจำลองแบบในสถานะคงที่อย่างมาก พิจารณาการออกแบบการทำงานสำรอง ตัวแทนคลัสเตอร์ สแต็กการตรวจสอบ และเวิร์กโหลดที่อยู่ร่วมกันเป็นส่วนหนึ่งของงบประมาณหน่วยความจำ แทนที่จะกำหนดค่าแต่ละโฮสต์แยกกัน

ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยง

  • การมอง MemoryLow เป็นขีดจำกัดสูงสุดที่กำหนดไว้มันช่วยปกป้องหน่วยความจำ ไม่ได้จำกัดการใช้งาน HANA ให้อยู่ที่ปริมาณนั้น
  • การตั้งค่า MemoryMax นั้นฟังดูคล้ายกับขีดจำกัดการจัดสรรหน่วยความจำของ HANA แต่ความหมายนั้นแตกต่างกัน และขีดจำกัดสูงสุดที่กำหนดโดยระบบปฏิบัติการอาจไปรบกวนการจัดการหน่วยความจำของ HANA เองได้
  • การใช้ขีดจำกัดคำสั่งเดียวกันสำหรับผู้ใช้ทุกคนโดยไม่มีหลักฐานปริมาณงานการสืบค้นข้อมูลเพื่อการรายงานและการดำเนินการบำรุงรักษาอาจมีความต้องการหน่วยความจำที่แตกต่างกันอย่างมาก
  • ในระบบ MDC ไม่จำเป็นต้องสนใจเลเยอร์การกำหนดค่าโปรดตรวจสอบว่าคุณกำลังเปลี่ยนแปลงขอบเขตของ SYSTEM, HOST หรือ DATABASE และฐานข้อมูลใดที่เซสชัน SQL ของคุณกำหนดเป้าหมายไว้
  • นำตัวเลขตัวอย่างไปใช้ในระบบจริงค่า 180 GB และ 5 GB ที่แสดงในที่นี้เป็นเพียงค่าตัวอย่าง ไม่ใช่คำแนะนำเรื่องขนาด
  • ไม่เหลือพื้นที่ว่างสำหรับ SUSE และบริการสนับสนุน HANA ไม่ใช่ผู้ใช้ RAM ทางกายภาพเพียงรายเดียว

คำแนะนำสุดท้าย

ใช้ค่าของ SAP HANA global_allocation_limitเป็นขีดจำกัดหลักสำหรับหน่วยความจำ HANA เพิ่มหน่วยความจำstatement_memory_limitเฉพาะเมื่อต้องการควบคุมความเสี่ยงของแต่ละคิวรี และใช้การกำหนดนโยบายเฉพาะผู้ใช้หรือเฉพาะคลาสของเวิร์กโหลดเมื่อเวิร์กโหลดที่แตกต่างกันสมควรได้รับขีดจำกัดที่แตกต่างกัน บน SUSE Linux Enterprise Server สำหรับแอปพลิเคชัน SAP ให้ใช้SAP.slice MemoryLowเพื่อป้องกันเวิร์กโหลด SAP จากแรงกดดันระดับโฮสต์ แทนที่จะพยายามทำซ้ำขีดจำกัดของ HANA ด้วยการกำหนดขีดจำกัดสูงสุดแบบตายตัวใน cgroup

ข้อแลกเปลี่ยนที่สำคัญที่สุดคือระหว่างความจุสูงสุดของแคช/การสืบค้นข้อมูลของ HANA และพื้นที่ว่างบนโฮสต์ที่เพียงพอเพื่อให้ระบบปฏิบัติการและบริการที่ติดตั้งร่วมกันทำงานได้อย่างราบรื่น ควรพิจารณาตัวเลขสุดท้ายจากขนาดของ SAP และช่วงเวลาที่มีการใช้งานสูงสุดที่สังเกตได้ จากนั้นตรวจสอบทั้ง HANA และ SLES หลังจากการเปลี่ยนแปลง

ฝากความเห็น

วิธีการตั้งค่าขีดจำกัดหน่วยความจำของ SAP HANA บน SUSE Linux Enterprise Server

วิธีการตั้งค่าขีดจำกัดหน่วยความจำของ SAP HANA บน SUSE Linux Enterprise Server

เรียนรู้วิธีการตั้งค่าขีดจำกัดหน่วยความจำส่วนกลางและหน่วยความจำคำสั่งของ SAP HANA บน SUSE Linux Enterprise Server เปรียบเทียบขีดจำกัดของ HANA กับ SUSE MemoryLow และตรวจสอบการเปลี่ยนแปลงแต่ละครั้งอย่างปลอดภัย

How to Configure Gooroom OS Browser Isolation Settings Safely

How to Configure Gooroom OS Browser Isolation Settings Safely

Learn how Gooroom OS browser isolation works, prepare trusted and blocked URL policies, coordinate GPMS configuration, and verify the settings on your build.

คู่มือข้อกำหนดระบบและความเข้ากันได้ของระบบปฏิบัติการ Harmonica สำหรับแล็ปท็อปรุ่นเก่า

คู่มือข้อกำหนดระบบและความเข้ากันได้ของระบบปฏิบัติการ Harmonica สำหรับแล็ปท็อปรุ่นเก่า

ตรวจสอบข้อกำหนดของระบบ HamoniKR 8.0, ความต้องการของรุ่น Lite และรุ่นเต็ม และการตรวจสอบความเข้ากันได้กับแล็ปท็อป 64 บิตรุ่นเก่าก่อนทำการติดตั้ง

แก้ไขปัญหาการใช้งาน CPU สูงของ tracker-miner-3 ใน Ubuntu GNOME

แก้ไขปัญหาการใช้งาน CPU สูงของ tracker-miner-3 ใน Ubuntu GNOME

เรียนรู้ว่าเหตุใด tracker-miner-fs-3 จึงใช้ CPU สูงใน Ubuntu GNOME วิธีตรวจสอบสถานะการจัดทำดัชนี ลดจำนวนตำแหน่งที่ค้นหาได้ และสร้างดัชนี Tracker ใหม่ได้อย่างปลอดภัย

วิธีการติดตั้งระบบปฏิบัติการ Ubuntu 24.04 และ Windows 11 แบบ Dual-Boot โดยเปิดใช้งาน BitLocker

วิธีการติดตั้งระบบปฏิบัติการ Ubuntu 24.04 และ Windows 11 แบบ Dual-Boot โดยเปิดใช้งาน BitLocker

เรียนรู้ว่าเมื่อใดที่ Ubuntu 24.04 สามารถบูตแบบ Dual-boot ได้ในขณะที่เปิดใช้งาน BitLocker วิธีการปกป้องรหัสกู้คืนของคุณ และเส้นทางการติดตั้งที่ปลอดภัยบนไดรฟ์เดียวกันหรือไดรฟ์แยกต่างหาก

วิธีเชื่อมต่อไคลเอ็นต์ Pardus Linux เข้ากับโดเมน Active Directory

วิธีเชื่อมต่อไคลเอ็นต์ Pardus Linux เข้ากับโดเมน Active Directory

เชื่อมต่อ Pardus Linux เข้ากับ Active Directory ด้วย Pardus Domain Joiner ตรวจสอบ DNS และเวลา ติดตั้ง CLI เชื่อมต่อด้วย SSSD และตรวจสอบสิทธิ์การเข้าสู่ระบบโดเมน

วิธีการตั้งค่า Pardus Image Creator สำหรับการติดตั้งระบบปฏิบัติการแบบกำหนดเอง

วิธีการตั้งค่า Pardus Image Creator สำหรับการติดตั้งระบบปฏิบัติการแบบกำหนดเอง

เรียนรู้ความสามารถของ Pardus Image Writer วิธีการติดตั้ง และวิธีการใช้งานไฟล์ ISO ที่กำหนดเองซึ่งได้รับการตรวจสอบแล้วไปยัง USB อย่างปลอดภัย รวมถึงคำแนะนำในการสร้างและทดสอบ

แก้ไขข้อผิดพลาด “Failed to Start Load Kernel Modules” ระหว่างการบูต SLES

แก้ไขข้อผิดพลาด “Failed to Start Load Kernel Modules” ระหว่างการบูต SLES

ตรวจสอบและแก้ไขข้อผิดพลาดของ systemd-modules-load.service บน SLES โดยการค้นหาโมดูลที่มีปัญหา แก้ไขการกำหนดค่าการบูต และสร้าง initramfs ใหม่เฉพาะเมื่อจำเป็นเท่านั้น

วิธีการย้ายเดสก์ท็อป Debian ไปยังระบบปฏิบัติการที่ไม่สามารถเปลี่ยนแปลงได้โดยใช้ OSTree

วิธีการย้ายเดสก์ท็อป Debian ไปยังระบบปฏิบัติการที่ไม่สามารถเปลี่ยนแปลงได้โดยใช้ OSTree

เรียนรู้ว่าเหตุใด Debian จึงไม่สามารถทำให้เป็น OSTree ที่ไม่สามารถเปลี่ยนแปลงได้ด้วยการติดตั้งแพ็กเกจเพียงแพ็กเกจเดียว จากนั้นจึงทำการย้ายไปยังเดสก์ท็อป OSTree อย่างปลอดภัย หรือวางแผนสร้างอิมเมจ Debian แบบกำหนดเอง

Fix Touchpad Gestures Not Working on Wayland in Ubuntu 24.04

Fix Touchpad Gestures Not Working on Wayland in Ubuntu 24.04

Fix missing three-finger touchpad gestures on Ubuntu 24.04 Wayland by checking GNOME settings, libinput events, updates, and extensions.