วิธีวัดประสิทธิภาพเครื่องขุด Blocknet

· อ่าน 3 นาที

วัดเครื่องของคุณด้วยเครื่องมือใน seine และเก็บบันทึกไว้เปรียบเทียบ คู่มือนี้ใช้รุ่นสาธารณะ v0.2.36 กับตัวอย่าง CPU เท่านั้น โดยไม่ได้อ้างผลฮาร์ดแวร์ใหม่ เริ่มจากคู่มือติดตั้ง ส่วนผลเดิมและเงื่อนไขอยู่ในคู่มือฮาร์ดแวร์

วัดประสิทธิภาพ seine อย่างไร?

คำตอบสั้นๆ

ใช้ --bench เลือกแบ็กเอนด์และโหมด เพิ่มรอบอุ่นเครื่อง แล้วบันทึก JSON ทำงานแบบเดิมซ้ำในสภาพใกล้เคียงก่อนเปลี่ยนค่าหนึ่งค่า ไม่ต้องใช้พูลหรือ daemon และควรตรวจแชร์ที่ยอมรับแยกเมื่อกลับไปขุดปกติ

รอบอุ่นเครื่องมาก่อนสามรอบวัดและการบันทึกรายงาน จากนั้นการตั้งค่าอีกชุดทำตามลำดับเดียวกัน

เตรียมจุดเริ่มต้นให้สม่ำเสมอ

บันทึกรุ่น ระบบปฏิบัติการ รุ่น CPU ที่แน่นอน RAM ที่ใช้ได้ และคำสั่ง หากใช้ NVIDIA ให้บันทึกรุ่น GPU และไดรเวอร์ด้วย รักษาภาระเบื้องหลังให้ใกล้กัน เกม การคอมไพล์ หรือเครื่องขุดอีกตัวที่ทำงานเฉพาะการทดสอบหนึ่งจะเปลี่ยนเงื่อนไข

กำหนดว่าจะหาค่าฐาน CPU เปรียบเทียบจำนวนเธรด หรือวิธีใช้เพจหน่วยความจำ คงการจัด CPU พลังงาน และหน่วยความจำไว้ ยกเว้นตัวแปรที่ทดสอบ ดูคู่มือ RAM และเพจขนาดใหญ่ แล้วบันทึกทั้งโหมดเพจที่ขอและที่ได้จริง

ทดสอบ CPU และบันทึกรายงาน

ในโฟลเดอร์ที่แตกไฟล์ คำสั่งแรกใช้กับ Linux/macOS คำสั่งที่สองใช้กับ Windows PowerShell ทั้งคู่เลือก CPU และ backend พร้อมอุ่นเครื่องหนึ่งรอบ วัดสามรอบ โดยขอรอบละ 20 วินาที ตำแหน่งไฟล์อิงโฟลเดอร์ทำงาน ใช้ชื่อใหม่ทุกครั้ง

./seine --bench --bench-kind backend --backend cpu --bench-secs 20 --bench-rounds 3 --bench-warmup-rounds 1 --bench-output cpu-baseline.json
.\seine.exe --bench --bench-kind backend --backend cpu --bench-secs 20 --bench-rounds 3 --bench-warmup-rounds 1 --bench-output cpu-baseline.json

จำนวนเธรดและเคอร์เนลคำนวณยังเลือกอัตโนมัติ การเตรียมและปรับแต่งอาจใช้เวลาก่อนเริ่มรอบ และงานที่เริ่มแล้วอาจจบหลังช่วงที่ขอ รอให้เขียน cpu-baseline.json เสร็จ รอบอุ่นเครื่องไม่รวมในสรุป เวลาเต็มอาจเกินสี่ช่วง ดังนั้น 20 วินาทีไม่ใช่เวลาของคำสั่งทั้งหมด

ควรอ่านอะไรในรายงาน?

อ่านโหมด ค่าที่ใช้จริง และแต่ละรอบก่อนอัตราสรุป JSON มี avg_hps, median_hps, min_hps, max_hps และ runs พร้อมการตั้งค่าและสภาพแวดล้อม เก็บต้นฉบับแทนการจดเฉพาะค่าสูงสุด เอกสารแฟล็ก อธิบายรายงานและการเทียบค่าฐาน

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

เปรียบเทียบหนึ่งการเปลี่ยนแปลงด้วยคู่ซ้ำ

เรียกชุดเดิม A และชุดใหม่ B รัน A แล้ว B ทำคู่ซ้ำและสลับว่าชุดใดเริ่มก่อน รักษาเวลาและนโยบายอุ่นเครื่อง บันทึกแยก เช่น cpu-a-1.json และ cpu-b-1.json เพื่อเห็นผลจากลำดับหรือสภาพแวดล้อม

ใช้แคชนโยบายเดียวกัน การเริ่มครั้งแรกด้วยข้อมูลปรับแต่งใหม่กับการเริ่มใหม่ด้วยค่าที่บันทึกตอบคนละคำถาม เก็บโฟลเดอร์ประจำไว้และใช้โฟลเดอร์ทดสอบแยกสำหรับสถานะใหม่ คู่มือปรับอัตโนมัติ อธิบายการใช้ซ้ำ --threads เปลี่ยนพฤติกรรมปรับแต่ง จึงต้องบันทึกเมื่อนำไปเทียบกับอัตโนมัติ

ทำไมโหมดทดสอบต้องตรงกัน?

backend ทดสอบแบ็กเอนด์ขุด ส่วน kernel เน้นเส้นทางคำนวณแฮช kernel-effective รวมเวลาวงจรการทำงานและเส้นทางเป้าหมาย/ประเมินของแบ็กเอนด์ ขอบเขตต่างกันแม้อยู่เครื่องเดียวกัน ระบุโหมดข้างอัตรา หน่วยตรงกันไม่ได้ทำให้การวัดเทียบเท่ากัน

end-to-end รวมวงจรขุดมากกว่า คงรุ่นและความหมายของเวลาด้วย เอกสารห้องทดสอบ อธิบายคู่ทดสอบ บันทึกสภาพแวดล้อม และความเข้ากันได้ ใช้เครื่องมือเหล่านี้เมื่อตัดสินจากความต่างเล็กน้อย และเก็บทุกครั้งไม่ใช่เฉพาะครั้งเร็วสุด

กลับไปขุดและตรวจงานที่ส่งได้

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

พูลประเมินแฮชเรตจากแชร์ที่เข้ามาตามเวลา จึงเป็นอีกข้อมูลหนึ่งจากการทดสอบสั้นในเครื่อง ติดตามผ่านคู่มือพูล เก็บรุ่น คำสั่ง เครื่อง หน่วยความจำ/เพจ แคช ภาระเบื้องหลัง และ JSON ทุกไฟล์เพื่อทำซ้ำและตีความได้

คำถามที่พบบ่อย

การทดสอบ seine ส่งแชร์ไปยังพูลหรือไม่?

ไม่ส่ง --bench รันทดสอบในเครื่องแทนการขุดจริง จึงไม่ต้องใช้พูลหรือ daemon รายงานวัดงานในเครื่องที่เลือก หลังจากนั้นให้เริ่มขุดตามปกติเพื่อตรวจการเชื่อมต่อและแชร์ที่ได้รับการยอมรับแยกกัน

ควรเริ่มด้วยโหมดใด?

เริ่มที่ backend เพื่อทดสอบแบ็กเอนด์ที่เลือก ใช้โหมด รุ่น และการตั้งค่าเดียวกันเมื่อเปรียบเทียบ Kernel, kernel-effective และ end-to-end วัดคนละขอบเขต จึงควรเก็บชื่อโหมดและข้อมูลเวลาคู่กับแฮชเรต

ทำอย่างไรให้สองการทดสอบเปรียบเทียบกันได้?

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