Dynamips/Dynagen ทำ LAB cisco ตอนที่ 4 (CPU and Memory Optimization)

Dynamips/Dynagen ทำ LAB cisco ตอนที่ 4 (CPU and Memory  Optimization)


                       หลายคนคงเจอปัญหาว่า ทำไม เจ้า Dynamips/Dynagen มันกินทรัพยากร เครื่องเราจนอืดทำอะไรไม่ได้เลย ถ้า run router 2-3 ตัวไม่เห็นความแตกต่างหรอกครับ ลอง run ให้มากกว่านั้นดู จะเห็นว่า เครื่องที่ว่าแรงๆ จอดทุกราย

           โปรแกรมนี้ กิน ทั้ง RAM ทั้ง CPU ลองนึกภาพดูว่า router ตัวนึง มันมี CPU กับ RAM เท่าไร เมื่อเราจำลองมาไว้ใน คอมเรามันก็ต้องช้าเป็นธรรมดา

Memory Usage Optimizations

เป็นการปรับแต่งเพื่อลดการใช้งานของ memory ในเครื่องของเราให้น้อยลง
คำสั่ง "ghostios"
โดยปกติ virtual router ที่เราสร้างขึ้นแต่ละตัวจะทำการสร้าง ios image แต่ล่ะตัวออกมาไว้ใน virtual RAM ของมันเอง การใช้คำสั่งนี้จะ ช่วยลด RAM ที่ใช้งาน ในกรณีที่เรา run router หลายๆตัวที่ใช้ IOS image ตัวเดียวกัน มันจะทำการ ghost image IOS มาเพียงครั้งเดียวเพื่อใช้ใน router ที่เราจำลองขึ้นหลายๆตัว
เช่นถ้าเรา run 10 router โดยใช้ IOS image ตัวเดียวกัน ถ้า image นี้กิน 60M จะช่วยลด 9*60M =540M ของ ram จริง สามารถวางคำสั่งนี้ได้หลายจุดดังนี้

-วางที่ด้านบนของคำสั่ง คำสั่งนี้จะถูกใช้ในทุกๆ router ทุกๆ image ในlab
-วางในส่วน default section เช่น [[7200]] จะใช้ได้ในเฉพาะ model router ios image บน dynamips server
นั้นๆ
รูปคำสั่ง
ghostios = true

คำสั่ง "sparsemem" แทนที่มันจะกินทรัพยากร real memory ของเราเมื่อใช้คำสั่งนี้มันจะไปใช้ virtual memory ด้วย การใช้งาน วางคำสั่งในส่วนบนเหมือนกับ ghostios

sparsemem = true

-การลด ram ของ router เราสามารถลดได้บ้างแต่อย่าน้อยเกินไปไม่อย่างนั้นอาจจะรัน dynagenไม่ผ่านหรือเมื่อผ่านอาจจะ ใช้งานได้บ้างไม่ได้บ้างเพราะอาการ ramน้อย ควรดูเทียบกับ ความต้องการของ ios แต่ล่ะรุ่นด้วย
อย่างเช่น IOS cisco 7200ผมลดเหลือ 160MBได้จาก 256MB เช่น

[[7200]]
image = c:\Program Files\Dynamips\images\c7200-advipservicesk9_li-mz.124-11.T.bin
npe = npe-400
ram = 160

CPU Usage Optimizations



เพื่อนๆคงจะเจอปัญหา cpu 100% เมื่อรัน Lab เพราะว่า Dynamips ไม่รู้ว่า เมื่อไรที่ virtual router idle และ ตอนทำงานเต็มประสิทธิภาพ. เมื่อใส่ค่า idlepc ของตัวแปร routerแต่ล่ะตัวจะช่วยลด CPU ลงมาได้ ถ้ายังไม่มีการใส่ idlepc เมื่อรัน dynagenขึ้นมาจะฟ้องว่าเรายังไม่ได้ใส่ idlepc ลงไปให้ router




วิธีการหาค่า idlepc ที่ dynagen เรา พิพม์ "idlepc get ชื่อ router" เช่น idlepc get R1



                 จะขึ้น idlepc value มา ให้เราเลือกเอาค่าที่มี * อยู่ข้างหน้า ถ้าไม่มีให้เรา รันcommand นี้ไปเรื่อยๆกดenterโดยไม่ต้องใส่หมายเลข จนกว่าจะได้ ถ้าลองหลายๆครั้งยังไม่ได้ลองวิธี เปลี่ยนไป get ค่า idlepc router ตัวอื่นๆที่เหลือ แล้วค่อยกลับมาget ค่า idlepc อันที่ไม่ได้เมื่อครั้งที่แล้ว วิธีนี้ส่วนมากจะได้มาง่ายกว่า runซ้ำๆโดยไม่เปลี่ยนนะครับอันนี้ความเห็นส่วนตัว หลังจากค่ามาแล้ว จะมี 2 วิธีที่จะ apply นี้เข้าไป ใน ios image
-ใช้คำสั่ง idlepc save routername db เช่น idlepc save R1 db



-นำค่า idle pc ที่ได้ไปใส่ใน netfile configuration file โดยใส่ในส่วน router instances เช่น [[Router RA]] model = 7200 idlepc = 0x607a4a98 <<ใส่ค่า idlepcที่ได้มาลงตรงนี้ใต้ [[Router routername]] slot0 = C7200-IO-GE-E slot2 = PA-GE slot1 = PA-4T+ G0/0 = RB G0/0 G2/0 = RB G2/0 ทำให้ครบทุกตัว แล้ว run dynagenใหม่อีกครั้ง เป็นอันเสร็จพิธี

*** หมายเหตุ เป็นบทความเก่า จากเวบ version เดิม ตั้งแต่ 2008  เนื้อหาอาจจะเก่าไปบ้าง ***

รูปภาพธีมโดย sandsun. ขับเคลื่อนโดย Blogger.