jMeter ServerAgent ล้มเหลวใน Windows Server 2016
เรากำลังโหลดการทดสอบแอปพลิเคชัน. NET โดยใช้ปลั๊กอิน JMeter และ Perfmon เรากำลังเรียกใช้ Perfmon ServerAgent เพื่อรวบรวม CPU และ Memory Metrics ใน Windows Server 2008 R2 (ใช้สำหรับแอป) และ Windows Server 2016 R2 (ใช้สำหรับ SQL Server 2016) ServerAgent ทำงานได้ดีใน 2008 R2 แต่ ServerAgent ใน 2016 R2 หยุดทำงานทันทีที่ JMeter เริ่มทำงาน เซิร์ฟเวอร์ทั้งสองกำลังใช้งาน JRE 8 เวอร์ชันเดียวกัน
บันทึกข้อขัดข้อง:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000010014ed4, pid=6340, tid=0x000000000000214c
#
# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [sigar-amd64-winnt.dll+0x14ed4]
#
ด้านล่างนี้เป็นวิธีแก้ปัญหาที่พยายามแล้วและไม่มีโชค
PerMon ทำงานบนเซิร์ฟเวอร์และจับการใช้งาน CPU และหน่วยความจำ
ไม่มีปัญหาเกี่ยวกับการรับส่งข้อมูลพอร์ตหรือเครือข่าย เซิร์ฟเวอร์เอเจนต์กำลังรับคำร้องขอบนพอร์ต 4444 บนเซิร์ฟเวอร์ทั้งสองหลังจากหยุดทำงาน JMeter จะแสดงข้อผิดพลาดหมดเวลาเนื่องจากไม่สามารถเข้าถึงเซิร์ฟเวอร์เอเจนต์ได้
เราพยายามปิดการใช้งาน DEP โดยตั้งค่าเป็น - เปิด DEP สำหรับโปรแกรมและบริการ Windows ที่จำเป็นเท่านั้น
การเรียกใช้ ServerAgent ด้วยสิทธิ์ผู้ดูแลระบบจะไม่มีผล มันยังขัดข้อง
การเรียกใช้ ServerAgent ในโหมดความเข้ากันได้จะไม่มีผล มันยังขัดข้อง
คำตอบ
ดูเหมือนจะเป็นข้อบกพร่องของ SIGARและน่าเสียดายที่ไม่มีอะไรที่คุณสามารถทำได้ (เว้นแต่คุณต้องการตรวจสอบปัญหาsigar-amd64-winnt.dllใช้วิธีแก้ปัญหาร่วมสนับสนุน SIGAR upstream และอัปเดต JMeter PerfMon Plugin เป็นเวอร์ชันคงที่)
ในระหว่างนี้คุณสามารถพิจารณาSSHMon Samples Collectorเป็นวิธีแก้ปัญหาได้โปรดดูวิธีการตรวจสอบการใช้ทรัพยากรเซิร์ฟเวอร์ด้วยบทความSSHMon Listener ของ JMeterสำหรับรายละเอียดเพิ่มเติม