การแนะนำ
WWW เป็นหนึ่งในแอปพลิเคชั่นที่ได้รับความนิยมมากที่สุดบนอินเทอร์เน็ต การเติบโตอย่างรวดเร็วทำให้เกิดความแออัดของเครือข่ายและเซิร์ฟเวอร์โอเวอร์โหลด ส่งผลให้การเข้าถึงของลูกค้าล่าช้ามากขึ้นและปัญหาคุณภาพการบริการ WWW เทคโนโลยีแคชถือเป็นวิธีหนึ่งที่มีประสิทธิภาพในการลดภาระของเซิร์ฟเวอร์ ลดความแออัดของเครือข่าย และเพิ่มความสามารถในการปรับขนาด WWW แนวคิดพื้นฐานคือการใช้หลักการของการเข้าถึงพื้นที่ชั่วคราวของลูกค้าเพื่อจัดเก็บเนื้อหาที่ลูกค้าเข้าถึง แคช เก็บสำเนา เมื่อมีการเข้าถึงเนื้อหาในครั้งต่อไป เนื้อหานั้นไม่จำเป็นต้องเชื่อมต่อกับเว็บไซต์โฮสติ้ง แต่จะมีให้โดยสำเนาที่เก็บไว้ในแคช
เนื้อหาเว็บสามารถแคชไว้บนไคลเอ็นต์ พร็อกซีเซิร์ฟเวอร์ และฝั่งเซิร์ฟเวอร์ได้ การวิจัยแสดงให้เห็นว่าเทคโนโลยีแคชสามารถปรับปรุงประสิทธิภาพ WWW ได้อย่างมีนัยสำคัญ [1] [2] และสามารถนำคุณประโยชน์ดังต่อไปนี้:
(1) ลดการรับส่งข้อมูลเครือข่าย ซึ่งจะช่วยบรรเทาความแออัดของเครือข่าย
(2) ลดความล่าช้าในการเข้าถึงของลูกค้า สาเหตุหลักคือ: 1 สำหรับเนื้อหาที่แคชไว้ในพร็อกซีเซิร์ฟเวอร์ ลูกค้าสามารถรับเนื้อหาได้โดยตรงจากพร็อกซีแทนจากเซิร์ฟเวอร์ระยะไกล ซึ่งจะช่วยลดความล่าช้าในการส่งข้อมูล 2) เนื้อหาที่ไม่ถูกแคชถึงกำหนด ความแออัดของเครือข่ายและโหลดเซิร์ฟเวอร์ลดลงเพื่อให้ลูกค้าสามารถรับได้เร็วยิ่งขึ้น
(3) เนื่องจากส่วนหนึ่งของเนื้อหาคำขอของลูกค้าสามารถรับได้จากพร็อกซี ภาระบนเซิร์ฟเวอร์ระยะไกลจึงลดลง
(4) หากเซิร์ฟเวอร์ระยะไกลไม่สามารถตอบสนองต่อคำขอของไคลเอนต์ได้เนื่องจากเซิร์ฟเวอร์ระยะไกลล้มเหลวหรือเครือข่ายล้มเหลว ไคลเอนต์สามารถรับสำเนาแคชของเนื้อหาจากพร็อกซี ซึ่งช่วยเพิ่มความแข็งแกร่งของบริการ WWW
ระบบแคชของเว็บยังนำมาซึ่งปัญหาต่อไปนี้:
(1) เนื้อหาที่ลูกค้าได้รับผ่านตัวแทนอาจล้าสมัย
(2) หากแคชใช้ไม่ได้ เวลาแฝงในการเข้าถึงของไคลเอ็นต์จะเพิ่มขึ้นเนื่องจากค่าใช้จ่ายในการประมวลผลพร็อกซีเพิ่มเติม ดังนั้น เมื่อออกแบบระบบเว็บแคช ควรพยายามเพิ่มอัตราการเข้าถึงแคชให้สูงสุด และลดต้นทุนความล้มเหลว
(3) ตัวแทนอาจกลายเป็นคอขวด ดังนั้น ควรกำหนดขีดจำกัดบนของจำนวนลูกค้าบริการและขีดจำกัดล่างของประสิทธิภาพการบริการสำหรับตัวแทน เพื่อให้ประสิทธิภาพของระบบตัวแทนอย่างน้อยมีประสิทธิภาพพอๆ กับประสิทธิภาพของไคลเอนต์ที่เชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ระยะไกล
ในปัจจุบัน มีการดำเนินการวิจัยอย่างกว้างขวางและเชิงลึกเกี่ยวกับระบบแคชของเว็บและปัญหาการปรับให้เหมาะสม และงานวิจัยเหล่านี้มุ่งเน้นไปที่บทบาทของพรอกซีเป็นหลัก
2 คุณลักษณะในอุดมคติของระบบแคชเว็บ ระบบแคชเว็บในอุดมคติควรมีคุณสมบัติดังต่อไปนี้:
(1) ความเร็ว: ระบบแคชควรจะสามารถลดความล่าช้าในการเข้าถึงของลูกค้าได้อย่างมีประสิทธิภาพ
(2) ความทนทาน: ความทนทานหมายถึงความพร้อมใช้งาน และลูกค้าต้องการให้บริการบนเว็บพร้อมใช้งานได้ตลอดเวลา
(3) ความโปร่งใส: ระบบแคชควรโปร่งใสต่อลูกค้า และผลลัพธ์ที่ลูกค้าได้รับเป็นเพียงการตอบสนองที่รวดเร็วและความพร้อมที่ดีเท่านั้น
(4) ความสามารถในการขยายขนาด: ระบบแคชของเว็บควรจะสามารถขยายขนาดได้ เช่นเดียวกับขนาดเครือข่ายและความหนาแน่นที่เพิ่มขึ้นอย่างต่อเนื่อง
(5) ประสิทธิภาพ: ยิ่งระบบเว็บแคชนำค่าใช้จ่ายมาสู่เครือข่ายน้อยลงเท่าใดก็ยิ่งดีเท่านั้น
(6) ความสามารถในการปรับตัว: ระบบแคชสามารถปรับให้เข้ากับการเปลี่ยนแปลงแบบไดนามิกในคำขอของลูกค้าและสภาพแวดล้อมเครือข่าย ซึ่งเกี่ยวข้องกับการจัดการแคช การกำหนดเส้นทางแคช การกำหนดค่าพร็อกซี ฯลฯ และมีความสำคัญอย่างยิ่งต่อการได้รับประสิทธิภาพของแคชในอุดมคติ
(7) ความเสถียร: โซลูชันที่ใช้โดยระบบเว็บแคชไม่ควรนำความไม่เสถียรมาสู่เครือข่าย
(8) การปรับสมดุลโหลด: โซลูชันแคชที่เหมาะสมที่สุดควรจะสามารถกระจายโหลดไปยังเครือข่ายทั้งหมดได้อย่างเท่าเทียมกัน เพื่อหลีกเลี่ยงไม่ให้เอเจนต์หรือเซิร์ฟเวอร์บางตัวกลายเป็นคอขวดหรือฮอตสปอต ส่งผลให้ประสิทธิภาพของบางส่วนของระบบหรือแม้แต่ทั้งระบบลดลง
(9) ความสามารถในการประมวลผลที่แตกต่างกัน: เนื่องจากขนาดเครือข่ายและพื้นที่ครอบคลุมเพิ่มขึ้นอย่างต่อเนื่อง เครือข่ายจะขยายสถาปัตยกรรมฮาร์ดแวร์และซอฟต์แวร์ที่แตกต่างกันออกไป ระบบแคชของเว็บควรสามารถปรับให้เข้ากับสถาปัตยกรรมเครือข่ายที่แตกต่างกันได้
(10) ความเรียบง่าย: โซลูชันที่เรียบง่ายนั้นใช้งานง่ายและเป็นที่ยอมรับโดยทั่วไป โซลูชันแคชเว็บในอุดมคติควรเรียบง่ายและกำหนดค่าได้ง่าย
โดยเน้นไปที่คุณลักษณะข้างต้น ระบบเว็บแคชต้องแก้ไขปัญหาต่อไปนี้:
(1) สถาปัตยกรรมแคช: วิธีจัดระเบียบและกำหนดค่าพร็อกซีแคชในเครือข่าย
(2) ความร่วมมือของตัวแทน: วิธีการร่วมมือระหว่างตัวแทนที่ร่วมมือกันสามารถเพิ่มอัตราการเข้าชมและปรับปรุงประสิทธิภาพของระบบแคช
(3) การกำหนดเส้นทางแคช: เมื่อพร็อกซีแคชตัวหนึ่งล้มเหลว วิธีส่งต่อคำขอไปยังพร็อกซีแคชอื่น
(4) อัลกอริธึมการแทนที่แคช: เมื่อพื้นที่แคชไม่เพียงพอ วิธีการแทนที่เนื้อหาแคช
(5) ความสอดคล้องของแคช: นั่นคือ ความทันเวลาของเนื้อหาที่แคช และวิธีการป้องกันไม่ให้เนื้อหาที่แคชล้าสมัย
(6) การดึงเนื้อหาล่วงหน้า: วิธีที่ตัวแทนตัดสินใจดึงเนื้อหาล่วงหน้าจากเซิร์ฟเวอร์หรือตัวแทนอื่น ๆ เพื่อลดความล่าช้าในการเข้าถึงของลูกค้า
(7) การปรับสมดุลโหลด: วิธีแก้ปัญหาปรากฏการณ์ "ฮอตสปอต" ในเครือข่าย
(8) เนื้อหาแคช: เนื้อหาประเภทใดที่สามารถแคชได้
เมื่อออกแบบระบบแคชเว็บ จะต้องแก้ไขปัญหาข้างต้น
3 ภาพรวมของโซลูชันการแคชเว็บ
3.1 สถาปัตยกรรมเว็บแคช ประสิทธิภาพของระบบเว็บแคชขึ้นอยู่กับขนาดของฐานลูกค้า ยิ่งฐานลูกค้ามีขนาดใหญ่เท่าใด ความน่าจะเป็นที่เนื้อหาแคชจะถูกร้องขออีกครั้งก็จะยิ่งสูงขึ้นเท่านั้น กลุ่มแคชที่ทำงานร่วมกันอาจเพิ่มอัตราการเข้าชมและปรับปรุงประสิทธิภาพของระบบแคช ดังนั้น สถาปัตยกรรมของระบบแคชควรตรวจสอบให้แน่ใจว่าตัวแทนสามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพ สถาปัตยกรรมแคชทั่วไปมีดังต่อไปนี้: แบบลำดับชั้น แบบกระจาย และแบบไฮบริด
รูปที่ 1 แผนภาพสถาปัตยกรรมระบบแคชเว็บ
3.1.1 สถาปัตยกรรมแคชแบบลำดับชั้น
โครงการ Harvest [3] เสนอสถาปัตยกรรมแคชเว็บแบบลำดับชั้นเป็นครั้งแรก ในสถาปัตยกรรมแคชแบบลำดับชั้น แคชได้รับการกำหนดค่าหลายระดับในเครือข่าย ดังแสดงในรูปที่ 1(a) เพื่อความเรียบง่าย จะถือว่ามีสี่ระดับ: แคชเลเยอร์ด้านล่าง, แคชเลเยอร์ในเครื่อง, แคชของเลเยอร์ระดับภูมิภาค และแคชของเลเยอร์บริเวณกว้าง เลเยอร์ด้านล่างคือแคชของไคลเอ็นต์/เบราว์เซอร์ เมื่อแคชของไคลเอ็นต์ไม่สามารถตอบสนองคำขอของไคลเอ็นต์ได้ คำขอจะถูกส่งต่อไปยังแคชของเลเยอร์ในพื้นที่ หากยังไม่เป็นที่พอใจ คำขอจะถูกส่งต่อไปยังแคชของเลเยอร์ระดับภูมิภาคจนกว่าจะถึงขอบเขตกว้าง แคชชั้นพื้นที่ หากไม่สามารถดำเนินการตามคำขอในแคชในทุกระดับ ในที่สุดคำขอจะถูกส่งต่อไปยังเซิร์ฟเวอร์ จากนั้นการตอบสนองของเซิร์ฟเวอร์ต่อคำขอจะถูกส่งจากบนลงล่างไปยังไคลเอนต์ โดยทิ้งสำเนาไว้ในแคชระดับกลางแต่ละอันตลอดทาง คำขออื่นๆ สำหรับเนื้อหาเดียวกันจะถูกส่งต่อจากล่างขึ้นบนจนกว่าจะได้รับการตอบสนองในแคชระดับหนึ่ง
สถาปัตยกรรมแคชแบบลำดับชั้นมีประสิทธิภาพแบนด์วิธสูง และเนื้อหาเว็บที่มีอัตราการคลิกผ่านสูงสามารถกระจายไปยังเครือข่ายได้อย่างรวดเร็วและมีประสิทธิภาพ อย่างไรก็ตาม สถาปัตยกรรมนี้ก็มีข้อบกพร่องบางประการเช่นกัน[4]:
(1) สร้างสถาปัตยกรรมแคชแบบลำดับชั้น เซิร์ฟเวอร์แคชจะต้องได้รับการกำหนดค่าที่จุดเชื่อมต่อที่สำคัญในเครือข่าย และเซิร์ฟเวอร์แคชจะต้องทำงานร่วมกัน
(2) แต่ละระดับของแคชจะทำให้เกิดความล่าช้าเพิ่มเติม
(3) แคชระดับสูงอาจกลายเป็นคอขวดและทำให้เกิดความล่าช้าในการเข้าคิวเป็นเวลานาน
(4) สำเนาหลายชุดของเนื้อหาเดียวกันจะถูกจัดเก็บไว้ในแคชที่แตกต่างกัน และการใช้พื้นที่แคชของทั้งระบบไม่สูงนัก
3.1.2 สถาปัตยกรรมแคชแบบกระจาย ในมุมมองของข้อบกพร่องที่กล่าวมาข้างต้นของโครงสร้างแคชแบบลำดับชั้น นักวิจัยบางคนได้เสนอสถาปัตยกรรมแคชแบบกระจาย ในโครงสร้างนี้ มีเพียงแคชระดับต่ำ ดังแสดงในรูปที่ 1(b) ในโครงสร้างแคชของเว็บแบบกระจายในวรรณกรรม [5] ไม่มีเลเยอร์แคชระดับกลางเกินกว่าเลเยอร์ในเครื่อง และแคชจะทำงานร่วมกันเพื่อจัดการกับความล้มเหลว เพื่อพิจารณาว่าแคชเลเยอร์พื้นที่ท้องถิ่นใดที่จะส่งต่อคำขอไคลเอ็นต์เพื่อรับเนื้อหาที่ไม่ถูกต้อง แคชเลเยอร์พื้นที่ท้องถิ่นแต่ละแห่งจะเก็บสำเนาของข้อมูลไดเร็กทอรีของเนื้อหาที่แคชไว้ในแคชเลเยอร์พื้นที่ท้องถิ่นอื่น ๆ เพื่อให้คำขอของลูกค้าสามารถ ส่งต่ออย่างถูกต้องเมื่อเกิดการใช้งานไม่ได้ไปยังแคชเลเยอร์ในเครื่องที่เกี่ยวข้อง Cache Array Routing Protocol CARP [6] (โปรโตคอลการกำหนดเส้นทางแคช Array) เป็นรูปแบบแคชแบบกระจายที่แบ่งพื้นที่ URL ออกเป็นส่วนต่างๆ และกำหนดแต่ละส่วนให้กับกลุ่มแคชที่เชื่อมต่อกันอย่างอิสระ แต่ละแคชสามารถแคชเนื้อหาเว็บที่มีการกำหนด URL เท่านั้น ทำให้สามารถกำหนดได้ว่าแคชใดที่จะส่งต่อคำขอไปตาม URL ที่ไคลเอนต์ร้องขอเนื้อหา
ในโครงสร้างแคชแบบกระจาย การรับส่งข้อมูลเครือข่ายส่วนใหญ่เกิดขึ้นที่ด้านล่างของเครือข่าย ซึ่งมีโอกาสน้อยที่จะทำให้เกิดความแออัดของเครือข่าย การใช้พื้นที่แคชสูง การแบ่งปันโหลดสามารถทำได้ดีกว่า และความทนทานต่อข้อผิดพลาดก็ดีกว่า อย่างไรก็ตาม การกำหนดค่าของระบบแคชแบบกระจายขนาดใหญ่อาจประสบปัญหาหลายประการ ได้แก่ จำนวนการเชื่อมต่อที่สูง ข้อกำหนดแบนด์วิธสูง และการจัดการที่ยากลำบาก [4]
3.1.3 สถาปัตยกรรมแคชไฮบริด สถาปัตยกรรมไฮบริดแสดงในรูปที่ 1(c) แคชในระดับเดียวกันใช้โครงสร้างแคชแบบกระจายและทำงานร่วมกัน Internet Cache Protocol ICP (Internet Cache Protocol) ที่ออกแบบโดย Harvest Group รองรับการรับเนื้อหาที่สอดคล้องกันจากแคชพาเรนต์หรือแคชข้างเคียงด้วย RTT ที่เล็กที่สุด
3.1.4 การวิจัยการเพิ่มประสิทธิภาพบนสถาปัตยกรรมแคชแสดงให้เห็นว่า [4] เมื่อเทียบกับโครงสร้างแคชแบบกระจาย สถาปัตยกรรมแคชแบบลำดับชั้นมีเวลาการเชื่อมต่อที่สั้นกว่า ดังนั้นเอกสารที่มีขนาดเล็กกว่าจะถูกแคชในแคชเลเยอร์กลางจึงสามารถลดเวลาแฝงในการเข้าถึงได้ เวลาในการส่งข้อมูลและการใช้แบนด์วิธที่สูงขึ้น ทางออกที่ดีที่สุดคือการรวมทั้งสองเข้าด้วยกันเพื่อให้เกิดจุดแข็งของตนอย่างเต็มที่ ในขณะเดียวกันก็ลดเวลาการเชื่อมต่อและเวลาในการส่งสัญญาณ
3.2 การกำหนดเส้นทางแคช เมื่อพิจารณาถึงความสามารถในการปรับขนาดของระบบแคชของเว็บ ระบบแคชส่วนใหญ่จะกระจายแคชจำนวนมากบนอินเทอร์เน็ต ปัญหาที่ใหญ่ที่สุดที่เกิดขึ้นคือวิธีการค้นหาแคชที่แคชเนื้อหาที่ต้องการอย่างรวดเร็ว นี่คือคำถามเกี่ยวกับการกำหนดเส้นทางแคช . ปัญหานี้ค่อนข้างคล้ายกับการกำหนดเส้นทางเครือข่าย แต่ไม่สามารถแก้ไขได้ในลักษณะเดียวกัน การกำหนดเส้นทางเครือข่ายแบบเดิมอาจขึ้นอยู่กับการจัดกลุ่มที่อยู่ (การแสดงที่อยู่แบบลำดับชั้นทำให้การจัดกลุ่มที่อยู่เป็นไปได้) แต่ใน WWW เอกสารที่มีคำนำหน้า URL เดียวกันหรือคำนำหน้าที่อยู่เซิร์ฟเวอร์อาจไม่ถูกส่งไปยังไคลเอนต์เดียวกัน ทำให้ยากต่อการกำหนดเส้นทางที่อยู่ ทำคลัสเตอร์เพื่อให้ตารางเส้นทางแคชมีขนาดใหญ่จนไม่สามารถจัดการได้ นอกจากนี้ เนื้อหาแคชยังได้รับการอัปเดตอย่างต่อเนื่อง และข้อมูลการกำหนดเส้นทางแคชที่ล้าสมัยจะทำให้แคชใช้ไม่ได้ เพื่อลดต้นทุนของความล้มเหลวของแคช อัลกอริธึมการกำหนดเส้นทางแคชในอุดมคติควรกำหนดเส้นทางคำขอของไคลเอนต์ไปยังพร็อกซีถัดไป ซึ่งมีความเป็นไปได้สูงกว่าที่จะโดนโจมตี และอยู่บนหรือใกล้กับเส้นทางเครือข่ายจากไคลเอนต์ไปยังเซิร์ฟเวอร์
3.2.1 วิธีการแคชตารางเส้นทาง
Malpani และคณะ [7] รวมกลุ่มของแคช เมื่อคำขอของลูกค้าถูกส่งต่อไปยังแคชที่ระบุ หากแคชมีเนื้อหาที่ร้องขอ มันจะถูกส่งต่อไปยังไคลเอนต์ ผ่าน IP multicast แคชอื่น ๆ ในกลุ่มเดียวกันตอบสนองต่อคำขอของลูกค้าจากแคชที่แคชเนื้อหาที่เกี่ยวข้อง หากเนื้อหาที่ร้องขอไม่ได้ถูกแคชไว้ในแคชใด ๆ คำขอจะถูกส่งต่อไปยังเซิร์ฟเวอร์ต้นทาง ระบบแคช Harvest[3] จะจัดระเบียบแคชเป็นโครงสร้างแบบลำดับชั้นและใช้ Cache Resolution Protocol ICP (Internet Cache Protocol) เมื่อแคชล้มเหลวเกิดขึ้น แคชระดับล่างจะสอบถามแคชของโหนดพี่น้องก่อนที่จะส่งต่อคำขอของลูกค้าไปยัง แคชระดับบนว่าเนื้อหาที่เกี่ยวข้องถูกแคชไว้หรือไม่เพื่อหลีกเลี่ยงการโอเวอร์โหลดแคชระดับบนสุด ระบบแคชเว็บแบบปรับได้ [8] สร้างแผนผังแคชสำหรับแต่ละเซิร์ฟเวอร์ แคชในทรีถูกจัดระเบียบเป็นกลุ่มมัลติคาสต์ที่ทับซ้อนกัน และคำขอได้รับเนื้อหาแคชที่สอดคล้องกันผ่านกลุ่มการส่งข้อมูลเหล่านี้ เมธอดนี้จะสร้างโครงสร้างแคชที่แตกต่างกันสำหรับแต่ละเซิร์ฟเวอร์ ดังนั้นจึงไม่มีปัญหาโอเวอร์โหลดของโหนดรูท และการกำหนดค่าด้วยตนเองและความทนทานค่อนข้างดี อย่างไรก็ตาม คำขอเนื้อหาที่มีอัตราการคลิกผ่านต่ำอาจต้องผ่านแคชมากขึ้น ส่งผลให้มีค่าใช้จ่ายในการสื่อสารแคชมากขึ้น ผู้เขียนแนะนำให้จำกัดจำนวนแคชที่คำขอส่งผ่านเพื่อแก้ไขปัญหานี้
3.2.2 วิธีการฟังก์ชันแฮช
Cache Array Routing Protocol CARP [6] ใช้ฟังก์ชันแฮชตามรายชื่อสมาชิกอาร์เรย์และ URL เพื่อกำหนดที่อยู่แคชที่แน่นอนของวัตถุเว็บหรือตำแหน่งที่วัตถุเว็บควรถูกแคช ในแคชสรุป [9] แต่ละพร็อกซีจะบันทึกข้อมูลสรุป URL ของเนื้อหาที่แคชไว้โดยพรอกซีอื่น ๆ ในกลุ่มเดียวกัน พร็อกซีจะตรวจสอบข้อมูลสรุปเหล่านี้เมื่อส่งต่อคำขอของไคลเอ็นต์เพื่อกำหนดว่าพรอกซีใดที่จะส่งต่อคำขอไป เพื่อลดค่าใช้จ่าย ข้อมูลสรุปเหล่านี้จะได้รับการอัปเดตเป็นระยะๆ การทดลองแสดงให้เห็นว่าระบบนี้สามารถลดปริมาณข้อมูลระหว่างแคช การใช้แบนด์วิธ และโอเวอร์เฮดของ CPU ที่เกิดจากโปรโตคอลได้อย่างมาก ขณะเดียวกันก็รักษาอัตราการเข้าชมแคชเกือบเท่าเดิมกับ ICP
3.3 อัลกอริธึมการแทนที่แคช
อัลกอริธึมการแทนที่แคชเป็นปัจจัยสำคัญที่ส่งผลต่อประสิทธิภาพของระบบแคชพร็อกซี อัลกอริธึมการแทนที่แคชที่ดีสามารถสร้างอัตราการเข้าถึงที่สูงขึ้นได้ อัลกอริทึมที่ได้รับการเสนอจนถึงตอนนี้สามารถแบ่งออกเป็นสามประเภทดังต่อไปนี้:
(1) อัลกอริธึมการแทนที่แบบเดิมและวิวัฒนาการโดยตรง อัลกอริธึมตัวแทนคือ: 1อัลกอริธึม LRU (ใช้ล่าสุด): แทนที่เนื้อหาที่ใช้ล่าสุดน้อยที่สุดจากแคช 2) อัลกอริธึม LFU (ใช้บ่อยที่สุด): แทนที่เนื้อหาที่เข้าชมน้อยที่สุด แคชแคช 3Pitkow/Recker[10] เสนออัลกอริทึมการแทนที่: หากเนื้อหาทั้งหมดในแคชถูกแคชในวันเดียวกัน เอกสารที่ใหญ่ที่สุดจะถูกแทนที่ด้วยแคช มิฉะนั้นจะถูกแทนที่ตามอัลกอริทึม LRU
(2) อัลกอริธึมการแทนที่ตามลักษณะสำคัญของเนื้อหาแคช อัลกอริธึมตัวแทนประกอบด้วย: อัลกอริธึมการแทนที่ขนาด [10]: แทนที่เนื้อหาที่ใหญ่ที่สุดจากแคช ②อัลกอริธึมการแทนที่ LRU-MIN[11]: อัลกอริธึมนี้มุ่งมั่นที่จะทำให้ แทนที่เอกสารรายบุคคลจำนวนน้อยที่สุด สมมติว่าขนาดของเอกสารที่จะแคชคือ S และเอกสารแคชในแคชที่มีขนาดอย่างน้อย S จะถูกแทนที่ตามอัลกอริทึม LRU หากไม่มีวัตถุที่มีขนาดอย่างน้อย S LRU อัลกอริธึมถูกใช้จากเอกสารที่มีขนาดอย่างน้อย S/2 แทนที่ 3LRU—Threshold[11] อัลกอริธึมการแทนที่: เช่นเดียวกับอัลกอริธึม LRU ยกเว้นว่าเอกสารที่มีขนาดเกินเกณฑ์ที่กำหนดไม่สามารถแคชได้ 12] อัลกอริธึมการแทนที่: แทนที่เอกสารด้วยความล่าช้าในการเข้าถึงน้อยที่สุดจากแคช
(3) อัลกอริธึมการแทนที่ตามต้นทุน อัลกอริธึมประเภทนี้ใช้ฟังก์ชันต้นทุนเพื่อประเมินออบเจ็กต์ในแคช และสุดท้ายจะกำหนดออบเจ็กต์การแทนที่ตามมูลค่าต้นทุน อัลกอริธึมตัวแทนคือ: อัลกอริธึมไฮบริด[12] อัลกอริธึมจะกำหนดฟังก์ชันยูทิลิตี้ให้กับแต่ละออบเจ็กต์ในแคช และแทนที่ออบเจ็กต์ด้วยค่ายูทิลิตี้ที่เล็กที่สุดจากแคช อัลกอริธึมค่าสัมพัทธ์ต่ำสุด[13]: แทนที่ออบเจ็กต์ด้วย ค่าอรรถประโยชน์ที่ต่ำที่สุดจากแคช ; Least Normalized Cost Replacement (LCNR) [14] อัลกอริธึม: อัลกอริธึมนี้ใช้ฟังก์ชันอนุมานเกี่ยวกับความถี่ในการเข้าถึงเอกสาร เวลาการส่ง และขนาดเพื่อกำหนดเอกสารทดแทน ④ Bolot และคณะ เสนอวิธีการตามต้นทุนเวลาในการส่งเอกสาร ขนาด และฟังก์ชันการอนุมานถ่วงน้ำหนักของเวลาเข้าถึงล่าสุด เพื่อกำหนดการแทนที่เอกสาร ⑤Size-Adjust LRU (SLRU) [16] อัลกอริธึม: จัดเรียงออบเจ็กต์แคชตามอัตราส่วนของต้นทุน เพื่อปรับขนาด และเลือกวัตถุที่มีอัตราส่วนน้อยที่สุดเพื่อทดแทน
กล่าวโดยสรุป เพื่อเพิ่มอัตราการเข้าชมแคชให้สูงสุด จึงมีการทำงานหลายอย่างเกี่ยวกับอัลกอริธึมการแทนที่แคช อย่างไรก็ตาม ประสิทธิภาพของอัลกอริธึมการแทนที่ส่วนใหญ่ขึ้นอยู่กับลักษณะของการเข้าถึง WWW ไม่มีอัลกอริธึมการแทนที่ที่สามารถทำได้ จัดการโหมดการเข้าถึงเว็บทั้งหมดได้ดีกว่าอัลกอริธึมอื่น
3.4 ความสอดคล้องของแคช
ระบบแคชของเว็บสามารถลดเวลาแฝงในการเข้าถึงได้ แต่มีผลข้างเคียง: สำเนาแคชที่มอบให้กับลูกค้าอาจเป็นเนื้อหาที่ล้าสมัย ดังนั้นจึงต้องมีกลไกความสอดคล้องของแคชเพื่อให้แน่ใจว่าเนื้อหาที่แคชไว้สามารถอัปเดตและตรวจสอบได้ทันเวลา ลักษณะ เพื่อให้ลูกค้าได้รับเนื้อหาล่าสุด
ปัจจุบันความสอดคล้องของแคชมีสองประเภทหลัก: ความสอดคล้องของแคชที่เข้มข้น และความสอดคล้องของแคชที่อ่อนแอ
3.4.1 ความสอดคล้องของแคชที่แข็งแกร่ง (1) การยืนยันไคลเอนต์: สำหรับการเข้าถึงแต่ละครั้ง พร็อกซีจะถือว่าเนื้อหาแคชนั้นล้าสมัย และส่งส่วนหัว "IF-Modified-Since-date" ไปยังเซิร์ฟเวอร์พร้อมกับคำขอ หากเนื้อหาเปลี่ยนแปลงหลังจากเวลาที่กำหนด เซิร์ฟเวอร์จะส่งเนื้อหาที่อัปเดตไปยังตัวแทนและสุดท้ายไปยังไคลเอนต์ หากเนื้อหาที่ร้องขอไม่ได้รับการแก้ไข การตอบสนอง "304" จะถูกส่งกลับ โดยระบุว่าเอกสารไม่ได้รับการแก้ไข และเนื้อหาที่แคชไว้จะดำเนินต่อไปอย่างมีประสิทธิภาพ
(2) การยืนยันเซิร์ฟเวอร์: เมื่อเซิร์ฟเวอร์ตรวจพบว่าเนื้อหามีการเปลี่ยนแปลง เซิร์ฟเวอร์จะส่งข้อมูลที่ไม่ถูกต้องไปยังไคลเอนต์ทั้งหมดที่เพิ่งร้องขอเนื้อหาและอาจแคชเนื้อหาไว้ [17] วิธีการนี้กำหนดให้เซิร์ฟเวอร์ต้องบันทึกรายชื่อไคลเอนต์ที่เชื่อมโยงที่เข้าถึงเนื้อหาเพื่อส่งข้อมูลที่ไม่ถูกต้อง เมื่อจำนวนไคลเอนต์มีขนาดใหญ่ วิธีการนี้จะใช้งานไม่ได้ ในเวลาเดียวกัน รายการที่เชื่อมโยงเองก็อาจล้าสมัยเช่นกัน ทำให้เซิร์ฟเวอร์ส่งข้อความไปยังไคลเอนต์จำนวนมากที่ไม่ได้แคชอีกต่อไป ลูกค้าของเนื้อหานี้ได้รับการส่งข้อมูลที่ไม่ถูกต้อง
3.4.2 ความสอดคล้องของแคชที่อ่อนแอ (1) กลไก Adaptive TTL [18] (Time To Live): โดยการสังเกตอายุการใช้งานของเอกสารเพื่อปรับเวลาการอยู่รอด ซึ่งจะช่วยแก้ปัญหาความสอดคล้องของแคช หากเอกสารไม่ได้รับการแก้ไขเป็นระยะเวลาหนึ่ง ก็มีแนวโน้มที่จะไม่เปลี่ยนแปลงอีก ด้วยวิธีนี้ คุณลักษณะอายุการใช้งานของเอกสารจะได้รับการกำหนดเป็นเปอร์เซ็นต์ของ "อายุ" ปัจจุบันของเอกสาร (เท่ากับเวลาปัจจุบันลบด้วยเวลาของการแก้ไขครั้งล่าสุด) วิธี TTL แบบปรับเปลี่ยนสามารถควบคุมความเป็นไปได้ที่เอกสารจะล้าสมัยเหลือน้อยกว่า 5% พร็อกซีเซิร์ฟเวอร์ส่วนใหญ่ใช้กลไกนี้ แต่กลไกความสอดคล้องของแคชนี้ขึ้นอยู่กับอายุการใช้งานของเอกสารไม่รับประกันความถูกต้องของเนื้อหาที่แคชไว้
(2) กลไกการทำให้ Piggyback เป็นโมฆะ
Krishnamurthy และคณะ เสนอให้ใช้กลไกการทำให้เป็นโมฆะแบบ Piggy-back เพื่อปรับปรุงประสิทธิภาพของการเชื่อมโยงกันของแคช พวกเขาเสนอกลไกสามประการ: กลไก Piggyback Cache Validation (PCV) [19]: การใช้คำขอที่ส่งโดยพร็อกซีไปยังเซิร์ฟเวอร์เพื่อปรับปรุงความสอดคล้องของแคช ตัวอย่างเช่น เมื่อพร็อกซีส่งคำขอไปยังเซิร์ฟเวอร์ พร็อกซีจะมีชุดเนื้อหาที่แคชไว้แต่อาจล้าสมัยจากเซิร์ฟเวอร์เพื่อยืนยันความถูกต้อง กลไก Piggyback Service Invalidation (PSI) [20] (Piggyback Service Invalidation): แนวคิดพื้นฐาน คือเมื่อเซิร์ฟเวอร์ตอบสนองต่อพร็อกซี จะแจ้งให้พร็อกซีเซิร์ฟเวอร์ทราบถึงชุดเนื้อหาที่เปลี่ยนแปลงไปนับตั้งแต่การเข้าถึงพร็อกซีครั้งล่าสุด และพร็อกซีทำให้เนื้อหาเหล่านี้ใช้งานไม่ได้ ซึ่งจะขยายเวลาแคชของเนื้อหาแคชอื่น ๆ ในแคช และกลไกไฮบริด PCV [21]: กลไกนี้กำหนดกลไกที่จะใช้เพื่อให้ได้ประสิทธิภาพโดยรวมที่ดีที่สุด โดยพิจารณาจากขนาดของช่วงเวลาปัจจุบันนับตั้งแต่คำขอสุดท้ายถูกยกเลิกโดยเอเจนต์ หากช่วงเวลานี้น้อย จะใช้กลไก PSI มิฉะนั้นจะใช้กลไก PCV เพื่อยืนยันเนื้อหาแคช หลักการพื้นฐานคือ ยิ่งช่วงเวลาน้อยลง จำนวนช่องว่างที่ส่งพร้อมกับ PSI ก็จะยิ่งน้อยลงเท่านั้น แต่เมื่อเวลาเพิ่มขึ้น ค่าใช้จ่ายในการส่งช่องว่างจะมากกว่าค่าใช้จ่ายในการขอการยืนยัน
3.5 การดึงเนื้อหาล่วงหน้า
เทคโนโลยีแคชเว็บสามารถปรับปรุงประสิทธิภาพของเว็บได้ แต่การวิจัยแสดงให้เห็นว่า ไม่ว่าจะใช้รูปแบบแคชใดก็ตาม อัตราการเข้าถึงแคชสูงสุดมักจะไม่เกิน 40 ถึง 50% เพื่อปรับปรุงอัตราการเข้าชมแคชเพิ่มเติม จึงได้มีการนำเทคโนโลยีการดึงข้อมูลล่วงหน้ามาใช้ เทคโนโลยี Prefetch เป็นเทคโนโลยีแคชที่ใช้งานอยู่โดยพื้นฐานแล้วคือการใช้ความรู้เดิมเกี่ยวกับเนื้อหาหรือโหมดการเข้าถึงของลูกค้าเพื่อคาดการณ์เนื้อหาคำขอถัดไปของลูกค้าเมื่อประมวลผลคำขอปัจจุบันของลูกค้า และใช้เนื้อหาที่ร้องขอของลูกค้าเพื่อแคชเนื้อหาการคาดการณ์ใน Gap แคชเพื่อซ่อนเวลาแฝงได้ดีขึ้นและปรับปรุงคุณภาพการบริการ
การวิจัยเบื้องต้นมุ่งเน้นไปที่การดึงเนื้อหาล่วงหน้าระหว่างเบราว์เซอร์/ไคลเอนต์และเว็บเซิร์ฟเวอร์ เมื่อมีการเปิดตัวพร็อกซี ความสนใจในการวิจัยของผู้คนเปลี่ยนไปเป็นการดึงข้อมูลเทคโนโลยีล่วงหน้าระหว่างพร็อกซีและเซิร์ฟเวอร์ การวิจัยแสดงให้เห็นว่าเทคโนโลยีการดึงข้อมูลล่วงหน้าสามารถลดเวลาแฝงในการเข้าถึงของลูกค้าได้อย่างมีประสิทธิภาพ แต่เทคโนโลยีการดึงข้อมูลล่วงหน้ายังคงเป็นข้อโต้แย้งด้วยเหตุผลสองประการ:
(1) การดึงเนื้อหาล่วงหน้าเป็นงานที่มีความต้องการแบบเรียลไทม์สูง โดยส่วนใหญ่จะใช้ช่วงเวลาของคำขอของลูกค้า และโดยทั่วไปช่วงเวลานี้จะน้อยกว่าหนึ่งนาที [23] หากไม่สามารถดึงงานล่วงหน้าได้ภายในระยะเวลานี้ การดึงข้อมูลล่วงหน้าจะไม่มีความหมาย ดังนั้นจึงมีข้อกำหนดที่สูงกว่าสำหรับประสิทธิภาพของอัลกอริธึมการดึงข้อมูลล่วงหน้า
(2) การดึงเนื้อหาล่วงหน้าจะช่วยลดเวลาตอบสนองของไคลเอนต์ โดยเสียค่าใช้จ่ายในการเพิ่มภาระของเซิร์ฟเวอร์และการรับส่งข้อมูลเครือข่าย ดังนั้นจึงมีข้อกำหนดที่สูงขึ้นสำหรับการดึงข้อมูลล่วงหน้าที่แม่นยำ ในเวลาเดียวกัน โมเดลการดึงข้อมูลล่วงหน้าจะต้องพิจารณาลักษณะการเข้าถึงของลูกค้า โหลดของเซิร์ฟเวอร์ และเงื่อนไขการรับส่งข้อมูลเครือข่าย เมื่อพิจารณาจำนวนเอกสารที่ดึงข้อมูลล่วงหน้าโดยไม่มีปัจจัยเหล่านี้ อาจส่งผลเสียต่อการผลิต
กล่าวโดยสรุป โมเดลการดึงข้อมูลล่วงหน้าที่ดีจะต้องมีประสิทธิภาพและความแม่นยำสูงด้วยต้นทุนที่ต่ำ จำเป็นต้องมีการวิจัยเพิ่มเติมเกี่ยวกับประสิทธิภาพและความแม่นยำของการดึงข้อมูลล่วงหน้า
3.5 Load Balancing เมื่อลูกค้าจำนวนมากได้รับข้อมูลหรือบริการจากเซิร์ฟเวอร์ในเวลาเดียวกัน ปรากฏการณ์ Hot Spot จะเกิดขึ้น ส่งผลให้ประสิทธิภาพของเซิร์ฟเวอร์ลดลงหรือแม้กระทั่งเกิดความล้มเหลว วิธีการส่วนใหญ่ในปัจจุบันในการจัดการกับปัญหานี้คือการใช้กลยุทธ์การจำลองแบบเพื่อจัดเก็บเนื้อหาที่ร้องขอบนอินเทอร์เน็ต ดังนั้นจะกระจายโหลดไปยังเซิร์ฟเวอร์หลายเครื่อง (ตัวแทน) [24] เพื่อหลีกเลี่ยงไม่ให้เซิร์ฟเวอร์เดียวกลายเป็นคอขวด
3.6 การแคชเนื้อหา พร็อกซีอาจมีบทบาทหลายบทบาท นอกเหนือจากการแคชข้อมูลแล้ว ยังสามารถทำแคชการเชื่อมต่อและการคำนวณแคชได้อีกด้วย การแคชการเชื่อมต่อหมายถึงการใช้การเชื่อมต่อแบบถาวรระหว่างไคลเอนต์และเอเจนต์ และเอเจนต์และเซิร์ฟเวอร์ เพื่อลดค่าใช้จ่ายในการสร้างการเชื่อมต่อ TCP และค่าใช้จ่ายในการเริ่มต้นช้าเมื่อเซิร์ฟเวอร์ส่ง ซึ่งจะช่วยลดเวลาล่าช้าในการเข้าถึงของลูกค้า [25 ] การแคชเชิงคำนวณสามารถมองได้ว่าเป็นเว็บเซิร์ฟเวอร์ที่สามารถโยกย้ายบริการบางอย่างไปยังพร็อกซีเพื่อบรรเทาปัญหาคอขวดของเซิร์ฟเวอร์ หนึ่งในแอปพลิเคชันคือการแคชข้อมูลแบบไดนามิก ซึ่งจะแคชข้อมูลแบบไดนามิกผ่านพรอกซีและย้ายส่วนหนึ่งของการคำนวณไปยังพร็อกซีซึ่งสร้างขึ้นโดย พร็อกซีและรักษาข้อมูลไดนามิกที่แคชไว้ ซึ่งจะช่วยปรับปรุงประสิทธิภาพของลูกค้าในการรับข้อมูลไดนามิก
4 ประเด็นที่ต้องมีการวิจัยเพิ่มเติม มีการวิจัยจำนวนมากเกี่ยวกับเทคโนโลยีแคชเว็บและได้ผลลัพธ์ที่ประสบผลสำเร็จ แต่ยังมีบางประเด็นที่ต้องมีการวิจัยเพิ่มเติม ปัญหาเหล่านี้ได้แก่:
(1) การวิจัยเกี่ยวกับรูปแบบการเข้าถึงของลูกค้า: ด้วยการศึกษารูปแบบการเข้าถึงของลูกค้า เราสามารถดำเนินการจัดการแคชและการดึงเนื้อหาล่วงหน้าได้ดีขึ้น และปรับปรุงอัตราการเข้าถึงแคช
(2) การแคชข้อมูลแบบไดนามิก: เหตุผลสำคัญที่ทำให้อัตราการเข้าชมเว็บแคชในปัจจุบันไม่สูงก็คือเนื้อหาส่วนใหญ่ (ข้อมูลส่วนตัว ข้อมูลที่ได้รับอนุญาต ข้อมูลไดนามิก ฯลฯ) ไม่สามารถแคชได้ วิธีทำให้ข้อมูลสามารถแคชได้มากขึ้น และวิธีลดความล่าช้าในการเข้าถึงสำหรับลูกค้าในการเข้าถึงเพจที่ไม่ใช่แคช กลายเป็นประเด็นสำคัญในการปรับปรุงประสิทธิภาพของเว็บ
(3) ลักษณะการรับส่งข้อมูลเว็บ: ประสิทธิภาพของระบบแคชอยู่ที่เวลาท้องถิ่นของโฟลว์การเข้าถึงเว็บและกลยุทธ์การจัดการแคชที่ดี การทำความเข้าใจลักษณะการโหลดที่สร้างโดยเว็บไคลเอ็นต์มีความสำคัญอย่างยิ่งต่อการออกแบบและการให้บริการเว็บที่ดีขึ้น
(4) การกำหนดค่าพร็อกซี: เพื่อให้ได้ประสิทธิภาพเว็บที่ดี การกำหนดค่าพร็อกซีเป็นสิ่งสำคัญ
กล่าวโดยสรุป การวิจัยที่ล้ำหน้าเพื่อปรับปรุงประสิทธิภาพของเว็บนั้นอยู่ที่การพัฒนาโซลูชันแคชที่สามารถปรับขนาดได้ แข็งแกร่ง ปรับเปลี่ยนได้ เสถียร มีประสิทธิภาพ และสามารถกำหนดค่าได้ดีขึ้นในเครือข่ายปัจจุบันและอนาคต
หวังชิเก อู๋จีจิน ซื่อเหยา
(ห้องปฏิบัติการหลักของรัฐแห่งความเท่าเทียมและการกระจาย คณะวิทยาการคอมพิวเตอร์ มหาวิทยาลัยเทคโนโลยีการป้องกันประเทศ ฉางชา 410073)
-