Posts tagged: svn

การคำนวณตาราง Office ที่ใช้สภาพแวดล้อมเสมือนจริง - ส่วนที่ 4

โดย , วันศุกร์ 4 ธันวาคม 2009 11:59

การแนะนำ

ผมทำงานใน บริษัท ที่เราเรียกใช้งานชุดการประมวลผลหลายล้านระเบียนของข้อมูลในแต่ละวันและฉันได้รับเมื่อเร็ว ๆ นี้เกี่ยวกับการคิดทุกเครื่องที่นั่งรอบในแต่ละวันและทุกการทำอะไรเป็นเวลาหลายชั่วโมง มันจะไม่ดีถ้าเราสามารถใช้เครื่องที่เพื่อหนุนพลังการประมวลผลของระบบของเราหรือไม่ ในชุดของบทความนี้ฉันจะมองผลประโยชน์ที่อาจเกิดขึ้นจากการจ้างสำนักงาน กริด ใช้สภาพแวดล้อม virtualised

ใน ส่วนที่ 3 เราได้สร้างเครื่องประมวลผลของเราเสมือนและการตั้งค่าเครื่อง Windows จะกลายเป็นแรงงานไม่ได้ใช้งานตลอดเวลา

วิ่งรหัสล่าสุด

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

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

วิธีแรกจะเป็นเพียงแค่เชื่อมต่อกับเซิร์ฟเวอร์การควบคุมของเราสมัครงาน (ผ่าน Samba, FTP, หรือคล้ายกัน) และดึงลงรุ่นล่าสุดของรหัส ไม่มากอย่างมีประสิทธิภาพ แต่จะทำงาน ช่วยปรับปรุงในที่ค่อนข้างวิธีการเกี่ยวกับการสร้างสคริปต์ rsync และการใช้ว่าแต่ละครั้งที่แทน? หรือสิ่งที่เกี่ยวกับการวางสคริปต์ในการประมวลผลใหม่ล่าสุดของเราในการโค่นล้มการตรวจสอบจากรหัสในขั้นต้นแล้วเพียงแค่อัปเดตรหัสของเราที่ทำงาน (แต่ละ svn update )?

ในที่สุดเราอาจจบลงด้วยการทุบตีสคริปต์ (เรียกโดย cron ทุกๆ 10 นาที) ซึ่งมีลักษณะเรียบง่ายเช่นนี้:

  #! / bin / sh
 ถ้า PS ขวาน | grep-V grep | grep PHP > / dev / null
 แล้ว
     echo "งานอยู่ในขณะนี้การประมวลผลที่ออก"
 อื่น
     echo "งานไม่ทำงานเริ่มต้นตอนนี้"
     cd เส้นทาง / / to / ที่ทำงาน / สำเนา
     การปรับปรุง svn
     yourJobProcessingScript.php PHP
 สาย 

ตอนนี้เราสามารถมั่นใจได้ว่ามีการทำงานแต่ละที่เรากำลังทำงานอย่างแน่นอนรหัสล่าสุด เรากำลังสร้างความมั่นใจนี้โดยการปรับปรุงฐานรหัสของเราในแต่ละครั้งและทุกครั้งที่เราดำเนินการทำงานและลดการจราจรของเครือข่ายโดยเฉพาะการถ่ายโอนไฟล์ที่แตกต่างกันในเครือข่ายของเรา

ในการตั้งค่าการสาธิตของฉันที่ฉันไม่ตรงตามที่กล่าวข้างต้น การโค่นล้มถูกติดตั้งบนเซิร์ฟเวอร์ในการประมวลผลของฉันทำงานและฉันก็ดึงรหัสล่าสุดจาก 'คน' สาขาการใช้ 'svn update' ฉันยังเพิ่มแท็กจำนวนรุ่นที่จะใช้สคริปต์ในการประมวลผลของฉันที่ถูกส่งกลับไปยังฐานข้อมูลเป็นส่วนหนึ่งของผลตอบแทนจากผลการ วิธีนี้ฉันจะได้เห็นว่ารหัสของฉันคือการปรับปรุงทุกครั้งที่ผมคัดลอกลำของฉันเป็นเช่นสาขาของผู้ปฏิบัติงานแต่ละครั้งที่ฉันถูกแน่นอนใช้สคริปต์ในการประมวลผลใหม่ล่าสุด

การใช้ข้อมูลล่าสุด

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

ถือคุณม้ามี! เกิดอะไรขึ้นถ้าแหล่งข้อมูลของฉันมีขนาดใหญ่? อย่างนี้จริงๆเป็นกรณีที่เท่าใดข้อมูลที่เราพูดถึง? มันอาจจะเป็นค่าใช้จ่ายมีประสิทธิภาพมากขึ้นที่จะติดตั้งเพิ่มเติมฮาร์ดไดรฟ์ขนาดใหญ่เข้าไปในเครื่องแต่ละกว่าที่จะซื้อเซิร์ฟเวอร์ในการประมวลผลเพิ่มเติม นี่คือคำถามของงบประมาณและขึ้นอยู่กับการตัดสินใจทางธุรกิจ มันอาจจะเป็นแหล่งข้อมูลของคุณมีขนาดใหญ่เพื่อที่ว่ามันทำไม่ได้เพียงเพื่อให้จำนวนของข้อมูลที่อยู่ในเครื่องของผู้ปฏิบัติงานของคุณ ในกรณีที่สิ่งที่คุณจะทำอย่างไร ดีที่เราสามารถมองไปที่การเรียกข้อมูลเซิร์ฟเวอร์ในประเทศ แต่นี้อาจทำให้เกิดปัญหากับเครือข่าย ในกรณีนี้ระบบกริดเช่นนี้อาจกลายเป็นไม่สมจริงให้รวมอยู่ในสภาพแวดล้อมที่ทำงานของคุณ นอกจากนี้ยังอาจเป็นได้ว่าคุณสามารถมองเข้าไปในกลยุทธ์ทางเลือกที่ทำงานเช่นเดียวเรียกคนงานของคุณ 08:00-6:00 แต่ละคืนและ / หรือการควบคุมปริมาณข้อมูลที่ร้องขอมา

ย้ายที่ให้บอกข้อมูลจำนวนเงินของเราแหล่งที่มาเพื่อ 100GB ของข้อมูล ดีใช่ว่าไม่น้อยของข้อมูลที่จะย้ายไปรอบ ๆ เครือข่ายในการปรับปรุง วิธีที่เราจะให้แน่ใจว่าเรามีสำเนาล่าสุดของข้อมูลในกรณีนี้หรือไม่? Rsync ความเป็นไปได้ แต่ส่วนตัวผมคิดว่าโดยใช้แหล่งข้อมูลของคุณที่ต่างๆบนเซิร์ฟเวอร์ในการประมวลผลของงานและการตั้งค่านี้เป็นหลักในการจำลองแบบ (มีบันทึก bin ดีนาน) อาจจะมีวิธีที่จะไป:

การทำซ้ำ โดยการตั้งค่าของแต่ละคนงานของคุณเป็นทาสเพื่อการควบคุมงานปรับปรุงเซิร์ฟเวอร์ไปยังแหล่งข้อมูลของคุณจะหยดลงอย่างสวยงามกับแรงงานของคุณโดยไม่เพิ่มขึ้นมากในกิจกรรมของเครือข่าย (นั่นคือถ้าคุณไม่ดำเนินการปรับปรุงข้อมูลมากและทุกคนงานของคุณเตะใน ในครั้งเดียว) นี้มีข้อดีมากกว่า rsync ในการที่คุณจะไม่ได้รับหยุดยาวก่อนที่จะสมัครงานในแต่ละขณะที่การปรับปรุงฐานข้อมูล MySQL daemon เมื่อคนงานของคุณอย่างต่อเนื่องจะปรับปรุงข้อมูลในขณะที่การประมวลผลอย่างต่อเนื่อง

นี่คือวิธีที่ผมตั้งค่าเซิร์ฟเวอร์สาธิตของฉัน เมื่อต้องการตั้งค่าการจำลองแบบผมทำตามคู่มือในเว็บไซต์ของ MySQL ( การตั้งค่าการจำลองแบบ ) และภายใน 20 นาทีฉันมีคนงาน inital ของฉันจำลองการควบคุมงานชุดเซิร์ฟเวอร์ สำหรับผู้ปฏิบัติงานเพิ่มเติมในแต่ละการตั้งค่าการจำลองแบบและกระบวนการทำงานในแต่ละครั้งเมื่อ VM ถูกคัดลอก

ข้อมูลอย่างย่อ

ในส่วนของบทความนี้เราได้มองที่วิธีการที่ง่ายและไม่เจ็บปวดก็คือการให้รหัสการประมวลผลของคุณให้ทันสมัย​​โดยusing rsync หรือ subverion (SVN) ในการทำงานและลดการจราจรในเครือข่ายที่time.Âเดียวกันเรายังกล่าวถึงวิธีการ ในการเก็บข้อมูลแหล่งที่มาของข้อมูล up-to-date โดยปล่อยให้มันหยดลงไปในแต่ละคนของคุณ ดังนั้นเรามั่นใจว่าพื้นที่ที่เราให้ทันกับตรรกะทางธุรกิจและข้อมูลในระบบกริดของเราที่สำนักงาน มีเห็นได้ชัดจะเป็นทางเลือกที่นับไม่ถ้วนที่จะดำเนินการงานเหล่านี้ แต่ที่นี่คือสองตัวอย่างง่ายที่จะแสดงวิธีที่ง่ายวิธีการแก้ปัญหาคือการมาโดย

ครั้งต่อไป

ในส่วนสุดท้ายของชุดนี้ชื่อ aptly ส่วนที่ 5 เราจะหารือเกี่ยวกับการปรับใช้ระบบนี้เพื่อ ผมจะสรุปสิ่งที่ได้รับการเรียนรู้และสิ่งที่ฉันจัดการเพื่อสร้าง

การคำนวณตาราง Office ที่ใช้สภาพแวดล้อมเสมือนจริง - Part 1

โดย , วันศุกร์ 4 ธันวาคม 2009 11:23

การแนะนำ

ผมทำงานใน บริษัท ที่เราเรียกใช้งานชุดการประมวลผลหลายล้านระเบียนของข้อมูลในแต่ละวันและฉันได้รับเมื่อเร็ว ๆ นี้เกี่ยวกับการคิดทุกเครื่องที่นั่งรอบในแต่ละวันและทุกการทำอะไรเป็นเวลาหลายชั่วโมง มันจะไม่ดีถ้าเราสามารถใช้เครื่องที่เพื่อหนุนพลังการประมวลผลของระบบของเราหรือไม่ ในชุดของบทความนี้ฉันจะมองผลประโยชน์ที่อาจเกิดขึ้นจากการจ้างสำนักงาน กริด ใช้สภาพแวดล้อม virtualised

ในฐานะที่เป็น PHP นักพัฒนาที่ฉันจะใช้เครื่องมือที่ผมใช้ในแต่ละวันคือ Linux, mySQL , PHP, VirtualBox และโค่นล้ม (SVN) แต่ฉันหวังว่าคู่มือนี้จะปรับให้เข้ากับภาษาอื่น ๆ และเทคโนโลยีก็เช่นกัน

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

เหล่านี้สภาพแวดล้อม virtualised จะทำงานบนเครื่อง Windows ตั้งแต่นี้คือสิ่งที่คนส่วนใหญ่ของสำนักงานรัน การประมวลผลที่เครื่องใช้สำนักงานทำไม่ควรยุ่งเกี่ยวกับบุคลากรที่ใช้เครื่องเหล่านั้นควรจะต้องมีการบำรุงรักษาเครื่องที่ไม่มีและจะได้อย่างง่ายดาย deployable ไปยังเครื่องใหม่ที่พวกเขาเป็นใช้ได้ นอกจากนี้เสมือนเครื่องใหม่ไม่ควรต้องกำหนดค่าใด ๆ เพิ่มเติมเช่นนี้ช่วยลดความยืดหยุ่นและความสะดวกที่ระบบกริดสามารถขยาย

ตารางคอมพิวเตอร์สำนักงานจัดวางทำไม?

ประการแรกคุณอาจจะคิดว่าทำไมไม่ใช้เพียงทรัพยากรคอมพิวเตอร์เมฆเช่น แพลตฟอร์มของ Amazon EC2 ? ดีด้วยเหตุผลหลายประการที่อาจจะยกตัวอย่างเช่น:

  • คุณจะไม่ได้มอบความไว้วางใจข้อมูลบางอย่างเพื่อสภาพแวดล้อมคอมพิวเตอร์เมฆ
  • คุณไม่สามารถใส่ข้อมูลบางอย่างเข้าไปในระบบคอมพิวเตอร์เมฆด้วยเหตุผลทางกฎหมาย (เช่นข้อมูลออกจากประเทศ) ที่อาจเกิดขึ้นด้วยเหตุผลทางกฎหมายเช่นระเบียนพลุกพล่าน
  • คุณต้องการให้หน่วยประมวลผลของคุณปิดและมีการควบคุมเต็มรูปแบบผ่านฮาร์ดแวร์มากเกินไป
  • คุณไม่ได้รับเงินทุนโครงการที่จะเรียกใช้อินสแตนซ์เมฆ
  • สำนักงานของคุณไม่ได้เชื่อมต่ออินเทอร์เน็ตและดังนั้นจึงไม่สามารถที่จะใช้ทรัพยากรเมฆ
  • คุณไม่ชอบฝนเมฆฝนแนะนำให้ดังนั้นคุณให้ดีออกไป

ฉันแน่ใจว่ารายการสามารถดำเนินการต่อ แต่ผมคิดว่าพอสำหรับตอนนี้

ข้อดีของตารางคอมพิวเตอร์สำนักงาน

ดีจะช่วยให้ทำคณิตศาสตร์บางคน (และในรูปแบบฟิสิกส์ที่แท้จริงช่วยให้ทำให้สมมติฐานกวาดบางส่วน) ลองนึกภาพคุณมีเซิร์ฟเวอร์ในการประมวลผลขนาดใหญ่อ้วนทำงาน 100 งานต่อวัน ในที่ทำงานของคุณคุณมี 50 เครื่องซึ่งไม่ได้ใช้งาน 16 ชั่วโมงต่อวันของแต่ละเครื่องเหล่านี้คือ 10% เป็นพลังเป็นตัดการประมวลผลของคุณอ้วน (ผลทั้งหมดที่นี่จะถูกปัดเศษให้ประมาทเพิ่มประสิทธิภาพการทำงาน)

ดังนั้น 1 เครื่อง * ไฟ 10% * เวลา 2/3 = 0.067 การประมวลผลเช่นเดสก์ทอปที่ 1 ในเวลาว่างสามารถประมวลผลงานที่เต็มรูปแบบ 6 ต่อวัน

ถ้าคุณตอนนี้ระดับขึ้นนี้ใช้เวลา 15 เดสก์ท็ว่างในการประมวลผลงานเป็นจำนวนมากต่อวันเป็นเซิร์ฟเวอร์การประมวลผลหลักของคุณไม่

ดังนั้นในสำนักงานของเราในการหลอก 50 เครื่องเราสามารถเพิ่มพลังการประมวลผลของเราตั้งแต่วันที่ 1 เซิร์ฟเวอร์ได้สูงสุดถึง 4 เซิร์ฟเวอร์ในการประมวลผลเต็มรูปแบบหรือเราอาจจะประมวลผล 400 งานต่อวันแทน 100

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

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

เทคโนโลยี

สิ่งที่คุณต้องการ? (หรือมากกว่าได้อย่างถูกต้องสิ่งที่ผมใช้):

  • เครื่องใช้สำนักงาน Idle (ในกรณีของฉันอะไหล่เก่าแล็ปท็อป Windows XP)
  • VirtualBox (หรืออื่นไคลเอ็นต์ซอฟต์แวร์ virtualisation)
  • เครื่องเสมือนกับ PHP, MySQL runningÂทำงานตัดลง OS, ฉันโทรเหล่านี้เซิร์ฟเวอร์ปวกเปียกของฉัน :)
  • เพื่อเรียกใช้งาน
  • เซิร์ฟเวอร์งาน (สามารถควบคุมเครื่องเสมือนที่อื่น)

งานโดยทั่วไป

ประเภทของงานที่ระบบนี้ถูกออกแบบมาเพื่อใช้เป็นดังนี้:

  • System ได้รับรายการของข้อมูลตามที่เราต้องการเพื่อให้ตรงกับและส่งกลับผลลัพธ์
  • การจับคู่เกี่ยวข้องกับการตรวจสอบ / การค้นหาแหล่งข้อมูลหลาย ๆ (ที่ค่อนข้างคงที่)
  • ผลการค้นหาจากแหล่งข้อมูลที่อาจต้องใช้การตรวจสอบเพิ่มเติมได้ที่ผสานการตรวจสอบจากแหล่งข้อมูลเพิ่มเติมในการตอบสนองต่อผลการ
  • ข้อมูลจะถูกส่งกลับระเบียนที่ตรงกันกับ, การตรวจสอบและประมวลผลอย่างเต็มที่
  • บันทึกภายในงานแต่ละเป็นอิสระจากส่วนที่เหลือ

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

โซลูชั่นกริดไม่เพียง แต่ได้เปรียบสำหรับการประมวลผลงานประเภทนี้ โดยทั่วไปกระบวนการซึ่งสามารถแบ่งออกเป็นหน่วยงานอิสระที่สามารถทำงานแบบขนาน ดูวิกิพีเดียนี้ไว้เพื่อเป็นตัวอย่างและข้อมูลเพิ่มเติมได้ที่: คอมพิวเตอร์ Grid แต่คู่ของตัวอย่างที่มีชื่อเสียงเป็น SETI @ Home และ BIONC . มีกรอบสำหรับการเรียกใช้กริดคอมพิว, และเหล่านี้มีมูลค่ารวมกำลังมองหาใน

สิ่งที่เราจะบรรลุ?

ในตอนท้ายของบทความเหล่านี้ผมหวังว่าจะแสดงให้เห็นว่าการปรับใช้กริดสำนักงานไม่จำเป็นต้องมีราคาแพงมหาศาลหรือใช้เวลานาน ฉันจะไปหารือ:

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

ฉันจะเป็นอาคาร (OK ฉันสร้างขึ้นแล้วเขียนนี้) โปรแกรมตัวอย่างเพื่อทดสอบแนวคิดในเครื่องท้องถิ่นโดยใช้ Windows XP และ 'GridMachine' เครื่องของฉันเสมือน เซิร์ฟเวอร์การควบคุมของฉันในงานจะมีเครื่องหลักของฉันที่ทำงาน Fedora 11 .

นี้จะในทางไม่ได้หมายถึงการแสดงให้เห็นถึงระบบที่แข็งแกร่งอย่างเต็มที่ทำงานหมายมากขึ้นจากการสาธิตและการอภิปรายแสดงให้เห็นว่าสิ่งเหล่านี้สามารถเกิดขึ้นได้ในพื้นที่สั้นเหตุผลของเวลาและค่าใช้จ่ายเล็ก ๆ น้อย ๆ กรุณาอย่าลังเลที่จะส่งความคิดเห็นใด ๆ ที่แก้ไขหรือปรับปรุงและฉันจะทำของฉันดีที่สุดเพื่อให้บทความมีการปรับปรุงเพื่อให้ตรงกับวันนี้

ครั้งต่อไป

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













ธีมพาโนรามาโดย Themocracy

5 ผู้เข้าชมออนไลน์ในขณะนี้
ผู้เข้าพัก 3, 2 บอท, 0 สมาชิก
ผู้เข้าชมสูงสุดวันนี้: 8 ที่ 06:31 น. UTC
เดือนนี้: 18 ที่ 2012/07/05 04:35 UTC
ในปีนี้: 69 ที่ 27-02-2012 09:56 น. UTC
เวลาทั้งหมด: 130 ที่ 28-03-2011 10:40 UTC