จาก blog เรื่อง ว่าด้วยเรื่อง Project CRaC กับ Spring framework
ยังขาดตัวอย่างการใช้งาน
จึงทำการสร้าง project ตัวอย่าง สำหรับการใช้งาน Spring Boot 3 กับ CRaC
เพื่อทำให้เห็นว่าเวลาในการ start up ดีขึ้นอย่างไรบ้าง
มาเริ่มกันเลย
ขั้นตอนที่ 1 สร้าง Apache Maven project และเพิ่ม library crac ใน pom.xml
ขั้นตอนที่ 2 ตอนนี้ CRaC นั้นสนับสนุน Linux OS เท่านั้น และ JDK 17, 21 เท่านั้น
จึงใช้งาน docker มาช่วยจัดการ มีขั้นตอนดังนี้
- ทำการ Download JDK + CRaC มาใช้งาน
- ทำการ build JAR file ของ Spring Boot project
- ทำการ build docker image และ container
- ในการ run java จะเพิ่ม parameter เพื่อสร้าง checkpoint ของการทำงานไว้คือ java -XX:CRaCCheckpointTo
- จากนั้นทำการบันทึก checkpoint ไว้โดยทำการ commit container มาเป็น image (demo:checkpoint) เพื่อใช้ในการ start ครั้งต่อไป
Dockerfile เป็นดังนี้
การทำการอยู่ในไฟล์ entrypoint.sh
จากนั้นทำการ run เพื่อสร้าง image ของการ checkpoint ไว้
ขั้นตอนที่ 3 ทำการ run container เพื่อดูผลจากการบันทึก checkpoint ด้วย CRaC
จะเห็นได้ว่า เวลาในการ start จะเร็วมาก ๆ
ปกติที่เครื่องจะใช้เวลา 0.6 วินาที แต่พอใช้ CRac จะเหลือเพียง 0.039
Reference Websites