นี่คือคำสั่ง pgreplay ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pgreplay - ตัวเล่นไฟล์บันทึก PostgreSQL สำหรับการทดสอบประสิทธิภาพ
เรื่องย่อ
เล่นก่อน [วิเคราะห์คำ ตัวเลือก] [เล่นใหม่ ตัวเลือก] [-d ระดับ] [แฟ้ม]
เล่นก่อน -f [วิเคราะห์คำ ตัวเลือก] [-o ออกจากไฟล์] [-d ระดับ] [แฟ้ม]
เล่นก่อน -r [เล่นใหม่ ตัวเลือก] [-d ระดับ] [แฟ้ม]
DESCRIPTION
เล่นก่อน อ่านไฟล์บันทึก PostgreSQL (ไม่ ไฟล์ WAL) แยกคำสั่ง SQL และ
ดำเนินการในลำดับเดียวกันและเวลาสัมพัทธ์กับคลัสเตอร์ฐานข้อมูล PostgreSQL
รายงานฉบับสมบูรณ์จะให้การวิเคราะห์ทางสถิติที่เป็นประโยชน์เกี่ยวกับปริมาณงานและการดำเนินการ
ในรูปแบบแรกล็อกไฟล์ แฟ้ม เล่นซ้ำในขณะที่อ่าน
กับ -f ตัวเลือก เล่นก่อน จะไม่ดำเนินการคำสั่ง แต่เขียนลงใน 'replay
ไฟล์' ออกจากไฟล์ ที่สามารถเล่นซ้ำได้ด้วยรูปแบบที่สาม
กับ -r ตัวเลือก เล่นก่อน จะรันคำสั่งในไฟล์รีเพลย์ แฟ้ม ที่
ถูกสร้างขึ้นโดยรูปแบบที่สอง
หากการดำเนินการตามคำสั่งล่าช้าจะมีข้อความเตือนว่า
ระบุว่าเซิร์ฟเวอร์ไม่สามารถจัดการโหลดได้ทันท่วงที ความคิดคือการ
เล่นซ้ำปริมาณงานฐานข้อมูลในโลกแห่งความเป็นจริงให้มากที่สุด
เพื่อสร้างไฟล์บันทึกที่สามารถแยกวิเคราะห์โดย เล่นก่อน, คุณต้องตั้งค่าดังต่อไปนี้
พารามิเตอร์ใน postgresql.conf:
log_min_messages=ข้อผิดพลาด (หรือมากกว่า)
log_min_error_statement=บันทึก (หรือมากกว่า)
log_connections=เปิด
log_disconnections=เปิด
log_line_prefix='%m|%u|%d|%c|' (หากคุณไม่ได้ใช้การบันทึก CSV)
log_statement='ทั้งหมด'
lc_messages ต้องตั้งค่าเป็นภาษาอังกฤษ (การเข้ารหัสไม่สำคัญ)
bytea_output=หนี (ตั้งแต่เวอร์ชัน 9.0 เป็นต้นไป เฉพาะในกรณีที่คุณต้องการเล่นบันทึกซ้ำใน 8.4
หรือก่อนหน้านั้น)
คลัสเตอร์ฐานข้อมูลที่คุณเล่นซ้ำคำสั่ง SQL ต้องเป็นโคลนของ
คลัสเตอร์ฐานข้อมูลที่สร้างบันทึกจากเวลา ทันที ก่อน บันทึกเป็น
สร้างขึ้น
เล่นก่อน มีประโยชน์สำหรับการทดสอบประสิทธิภาพ โดยเฉพาะอย่างยิ่งในสถานการณ์ต่อไปนี้:
* คุณต้องการเปรียบเทียบประสิทธิภาพของแอปพลิเคชัน PostgreSQL ของคุณกับที่แตกต่างกัน
ฮาร์ดแวร์หรือระบบปฏิบัติการต่างๆ
* คุณต้องการอัพเกรดฐานข้อมูลของคุณและต้องการให้แน่ใจว่าฐานข้อมูลเวอร์ชันใหม่
ไม่ได้รับผลกระทบจากการถดถอยของประสิทธิภาพที่ส่งผลกระทบต่อคุณ
ยิ่งไปกว่านั้น เล่นก่อน สามารถให้ความรู้สึกบางอย่างเกี่ยวกับวิธีการสมัครของคุณ อาจ ขนาดโดย
ให้คุณลองเล่นซ้ำปริมาณงานด้วยความเร็วสูงขึ้น ถูกเตือนว่า 500
ผู้ใช้ที่ทำงานด้วยความเร็วสองเท่านั้นไม่เหมือนกับผู้ใช้ 1000 คนที่ทำงานตามปกติ
ความเร็ว.
OPTIONS
วิเคราะห์คำ ตัวเลือก:
-c ระบุว่าล็อกไฟล์อยู่ในรูปแบบ 'csvlog' (แนะนำเป็นอย่างยิ่ง) และไม่อยู่ใน
รูปแบบ 'stderr'
-b การประทับเวลา
เฉพาะรายการบันทึกที่มากกว่าหรือเท่ากับการประทับเวลานั้นเท่านั้นที่จะถูกแยกวิเคราะห์ รูปแบบคือ
YYYY-MM-DD HH:MM:SS.FFF เหมือนในไฟล์บันทึก ส่วนโซนเวลาที่เลือกได้จะเป็น
ละเว้น
-e การประทับเวลา
เฉพาะรายการบันทึกที่น้อยกว่าหรือเท่ากับการประทับเวลานั้นจะถูกแยกวิเคราะห์ รูปแบบคือ
YYYY-MM-DD HH:MM:SS.FFF เหมือนในไฟล์บันทึก ส่วนโซนเวลาที่เลือกได้จะเป็น
ละเว้น
-q ระบุว่าแบ็กสแลชในสตริงตามตัวอักษรอย่างง่ายจะหลีกเลี่ยงสิ่งต่อไปนี้
อ้างเดียว ขึ้นอยู่กับตัวเลือกการกำหนดค่าเช่น
standard_conforming_strings และเป็นค่าเริ่มต้นสำหรับเซิร์ฟเวอร์เวอร์ชัน 9.0 และต่ำกว่า
Replay ตัวเลือก:
-h ชื่อโฮสต์
ชื่อโฮสต์ที่คลัสเตอร์ฐานข้อมูลเป้าหมายกำลังทำงาน (หรือไดเร็กทอรีที่ UNIX
ซ็อกเก็ตสามารถพบได้) ค่าเริ่มต้นสำหรับการเชื่อมต่อภายในเครื่อง
ใช้งานได้เหมือนกับ -h ตัวเลือกของ psql.
-p พอร์ต
พอร์ต TCP ที่สามารถเข้าถึงคลัสเตอร์ฐานข้อมูลเป้าหมายได้
-W รหัสผ่าน
โดยค่าเริ่มต้น เล่นก่อน ถือว่าคลัสเตอร์ฐานข้อมูลเป้าหมายได้รับการกำหนดค่าสำหรับ
เชื่อถือได้ การรับรองความถูกต้อง กับ -W ตัวเลือกที่คุณสามารถระบุรหัสผ่านที่จะ
ใช้สำหรับผู้ใช้ทั้งหมดในคลัสเตอร์
-s ปัจจัย
ตัวประกอบความเร็วสำหรับการเล่นซ้ำ โดยค่าเริ่มต้น 1 นี่อาจเป็นค่าการลอยตัวที่เป็นบวกใดๆ ก็ได้
หมายเลขจุด NS ปัจจัย น้อยกว่า 1 จะเล่นซ้ำภาระงานใน 'สโลว์โมชั่น' ในขณะที่
a ปัจจัย มากกว่า 1 หมายถึง 'กรอไปข้างหน้า'
-E การเข้ารหัส
ระบุการเข้ารหัสของล็อกไฟล์ ซึ่งจะใช้เป็นการเข้ารหัสไคลเอ็นต์
ระหว่างเล่นซ้ำ หากไม่ระบุ ระบบจะใช้การเข้ารหัสไคลเอ็นต์เริ่มต้นของคุณ
-j หากการเชื่อมต่อทั้งหมดไม่ได้ใช้งาน ให้ข้ามไปยังคำขอถัดไปแทนการพักเครื่อง
การดำเนินการนี้จะทำให้การเล่นซ้ำเร็วขึ้น การดำเนินการล่าช้าจะยังคงได้รับการรายงานอย่างถูกต้อง แต่
สถิติการเล่นซ้ำจะไม่มีเวลาว่าง
เอาท์พุต ตัวเลือก:
-o ออกจากไฟล์
ระบุไฟล์เล่นซ้ำที่จะเขียนคำสั่งเพื่อเล่นซ้ำในภายหลัง
การแก้ปัญหา ตัวเลือก:
-d ระดับ
ระบุระดับการติดตาม (ระหว่าง 1 ถึง 3) ระดับที่เพิ่มขึ้นจะผลิตมากขึ้น
ข้อมูลรายละเอียดเกี่ยวกับสิ่งที่ เล่นก่อน กำลังทำ.
-v พิมพ์เวอร์ชันของโปรแกรมและออก
และพวกเรา
ผี ระบุค่าเริ่มต้นสำหรับ -h ตัวเลือก
พีจีพอร์ต ระบุค่าเริ่มต้นสำหรับ -p ตัวเลือก
PGCLIENTENCODING
ระบุค่าเริ่มต้นสำหรับ -E ตัวเลือก
ข้อ จำกัด
เล่นก่อน สามารถเล่นซ้ำได้เฉพาะสิ่งที่บันทึกโดย PostgreSQL สิ่งนี้นำไปสู่ข้อ จำกัด บางประการ:
* คัดลอก คำสั่งจะไม่ถูกเล่นซ้ำ เนื่องจากข้อมูลการคัดลอกจะไม่ถูกบันทึก
* การเรียกใช้ฟังก์ชัน Fast-path API จะไม่ถูกบันทึกและจะไม่ถูกเล่นซ้ำ น่าเสียดาย,
ซึ่งรวมถึง Large Object API
* เนื่องจากไฟล์บันทึกอยู่ในการเข้ารหัสเซิร์ฟเวอร์เสมอ (ซึ่งคุณสามารถระบุด้วยปุ่ม -E
เปลี่ยนของ เล่นก่อน), ทั้งหมด ตลาดหลักทรัพย์ ลูกค้า_การเข้ารหัส งบจะถูกละเว้น
* เนื่องจากเวลาเตรียมของคำสั่งที่เตรียมไว้จะไม่ถูกบันทึก (เว้นแต่
log_min_messages is ดีบัก 2 ขึ้นไป) ข้อความเหล่านี้จะถูกจัดทำขึ้นทันที
ก่อนที่จะดำเนินการครั้งแรกระหว่างการเล่นซ้ำ
* เนื่องจากไฟล์บันทึกมีเฉพาะข้อความ พารามิเตอร์การสืบค้นและค่าส่งคืนจะ
อยู่ในข้อความเสมอและไม่เคยอยู่ในรูปแบบไบนารี หากคุณใช้โหมดไบนารีเพื่อพูดโอน
ข้อมูลไบนารีขนาดใหญ่ เล่นก่อน อาจทำให้ทราฟฟิกเครือข่ายมากกว่า
วิ่งเดิม.
* บางครั้งหากการเชื่อมต่อใช้เวลานานกว่าจะเสร็จสมบูรณ์ ID เซสชันโดยไม่คาดคิด
การเปลี่ยนแปลงในไฟล์บันทึก PostgreSQL สิ่งนี้ทำให้เกิด เล่นก่อน เพื่อรักษาเซสชั่นเป็นสอง
ต่าง ๆ ทำให้เกิดการเชื่อมต่อเพิ่มเติม นี่เป็นข้อผิดพลาดใน
PostgreSQL
ใช้ pgreplay ออนไลน์โดยใช้บริการ onworks.net