1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu một số thuật toán cho web caching và ứng dụng

92 414 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 1,31 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bộ nhớ đệm Web caching là một giải pháp giảm thiểu các dịch vụ và tải giao thông mạng nút cổ chai, cải thiện thời gian đáp ứng yêu cầu và cải thiện các đối tượng Web có sẵn bằng cách lưu

Trang 1

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS.TS Nguyễn Văn Tam

Thái Nguyên, năm 2016

Trang 2

LỜI CAM ĐOAN

Luận văn là kết quả nghiên cứu và tổng hợp các kiến thức mà học viên đã thu thập được trong quá trình học tập tại trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên, dưới sự hướng dẫn, giúp đỡ của các thầy cô và bạn bè đồng nghiệp, đặc biệt là sự hướng dẫn, giúp đỡ của PGS.TS

Nguyễn Văn Tam

Tôi xin cam đoan luận văn không phải là sản phẩm sao chép của bất kỳ tài liệu khoa học nào

Học viên

NGUYỄN QUANG THÀNH

Trang 3

Tôi xin cảm ơn các thầy cô trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên đã giảng dạy và truyền đạt kiến thức cho tôi

Cuối cùng, tôi xin cảm ơn những người thân và các bạn bè chia sẻ, gúp

đỡ tôi hoàn thành luận văn này

Mặc dù đã hết sức cố gắng hoàn thành luận văn với tất cả sự nỗ lực của bản thân, nhưng luận văn vẫn còn những thiếu sót Kính mong nhận được những ý kiến đóng góp của quý Thầy, Cô và bạn bè đồng nghiệp

Tôi xin chân thành cảm ơn!

Trang 4

MỤC LỤC

TRANG PHỤ BÌA

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

PHỤ LỤCDANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT iv

DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT v

DANH MỤC CÁC HÌNH VẼ vi

DANH MỤC CÁC BẢNG vii

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ WEB CACHING 3

1.1 Giới thiệu web caching 3

1.1.1 Vấn đề tải truy cập Internet và web caching 3

1.1.2 Định nghĩa web Caching 5

1.1.3 Một số khái niệm về Caching 6

1.2 Các kiến trúc web Caching 9

1.2.1 Kiến trúc cache phân tầng và phân tán 9

1.2.2 Kiến trúc kết hợp (Caching lai) 14

1.3 Ưu nhược điểm của Web caching 18

1.4 Kết luận chương 1 19

CHƯƠNG 2: MỘT SỐ THUẬT TOÁN WEB CACHING 20

2.1 Thuật toán Least Frequently Used with Dynamic Aging (LFU-DA) 20 2.2 Thuật toán Greedy Dual Size (GDS) 21

2.3 Thuật toán Cost Effective (CE) 21

2.4 Thuật toán Least recently used (LRU) 23

2.4.1 Thay thế trang 23

2.4.2 Các thuật toán thay thế trang 24

2.4.3 Vấn đề thay thế Cache 28

2.5 Các thuật toán dựa trên LRU trong Web caching 32

2.6 Kết luận chương 2 38

CHƯƠNG 3: KỸ THUẬT CACHE TRONG WEB PROXY 39

3.1 Cơ bản về cache trong Squid 39

3.1.1 Lệnh cache_dir 40

3.1.2 Thuật toán thay thế 43

3.1.3 Loại bỏ đối tượng Cache 45

3.2 Điều khiển cache trong Squid 49

3.2.1 Thông tin kết nối 50

3.2.2 Thông tin Cache 52

3.2.3 Thời gian dịch vụ trung bình 53

3.2.4 Sử dụng tài nguyên 55

Trang 5

3.3.2 Thống kê, vẽ đồ thị 67

3.3.3 Đánh giá kết quả 71

3.4 Kết luận chương 3 71

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72

TÀI LIỆU THAM KHẢO 73 PHỤ LỤC

Trang 6

DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT

Kí hiệu Tên đầy đủ

ARPANET Advanced Research Projects Agency Network NSFNET National Science Foundation Network

LFU - DA Least Frequently Used with Dynamic Aging

Trang 7

Hình 1.5 Mô hình phân cây 10

Hình 1.6 Sơ đồ đầy đủ một kiến trúc phân tầng Web Caching của một ISP 11 Hình 1.7 Sơ đồ kiến trúc phân tán Web caching của một ISP 11

Hình 1.8 Sơ đồ Hybrid Web Caching của một ISP 14

Hình 1.9 Thời gian kết nối trung bình cho toàn bộ N trang Web, phụ thuộc vào số cache kết hợp k 15

Hình 1.10 Thời gian kết nối của Caching phân cấp, caching phấn tán và caching hỗn hợp 15

Hình 1.11 Thời gian truyền của N trang Web 16

Hình 1.12 Thời gian truyền cho caching lai với số bộ đệm tối ưu k, ρ=0,8 17 Hình 2.1 Cấu trúc một phần tử trong bảng trang 24

Hình 2.2 Lược đồ thay thế nội dung cache của thuật toán LRU 25

Hình 2.3 Cấu trúc một phần tử trong bảng trang 27

Hình 2.4 Thuật toán thay thế cache LRU 32

Hình 2.5 Thuật toán thay thế cache HLRU 36

Hình 3.1 Mô hình thử nghiệm 61

Hình 3.2 Giải nén thư mục nguồn 62

Hình 3.3 Biên dịch # /configure 62

Hình 3.4 Bảy đường dẫn đặt Squid 63

Hình 3.5 Biên dịch mã nguồn 64

Hình 3.6 Cài đặt Squid 64

Hình 3.7 Giao diện chạy Squid 66

Hình 3.8 Giao diện chạy Squidclient 67

Hình 3.10 Cache hit và Byte hit, cùng số yêu cầu 71

Trang 8

DANH MỤC CÁC BẢNG

Bảng 2.1 Các thuộc tính hữu ích nhất của mỗi đối tượng lưu trữ i 28Bảng 2.2 Cấu trúc dữ liệu chính của LRU và HLRU 37

Trang 9

thân thiện với người sử dụng Việc sử dụng dịch vụ Web đang tăng theo cấp

số mũ, lưu lượng WWW trên các mạng Internet quốc gia và quốc tế cũng tăng đột biến Và Việt Nam cũng không nằm ngoài vòng xoáy của cơn lốc WWW, cổng giao tiếp điện tử, đang là những ứng dụng mới và đang được phát triển Trong tương lai, các ứng dụng này càng phát triển hơn cùng sự phát triển của hạ tầng mạng máy tính và đòi hỏi nền tảng công nghệ thông tin ngày càng cao Tuy nhiên để có được điều đó không phải là vấn đề đơn giản Hiện tại mạng máy tính tại Việt Nam ngày càng phát triển, tuy nhiên với điều kiện của nước ta, cơ sở vật chất hạ tầng mạng máy tính còn thấp kém Chất lượng dịch vụ và thời gian đáp ứng có thể được cải thiện bằng cách giảm tải cho

mạng, một trong số đó là phương pháp sử dụng kỹ thuật Webcaching Kỹ

thuật Web caching ra đời nâng cao được hiệu quả trong việc thực hiên tăng tốc các ứng dụng WWW

Bản thân làm công việc quản lý hệ thống mạng với mong muốn nghiên

cứu về hạ tầng mạng cơ sở, tôi lựa chọn đề tài: “Nghiên cứu một số thuật

toán cho Web Caching và ứng dụng”

Luận văn trước tiên nghiên cứu một số thuật toán Web Caching Trên

cơ sở đó, luận văn nghiên cứu và trình bày thuật toán LRU trong phần mềm Squid proxy để nâng cao hiệu quả ứng dụng WWW của hệ thống Cuối cùng

là chương trình thử nghiệm và đánh giá kết quả của thuật toán LRU trong Squid proxy tại ngân hàng Vietinbank chi nhánh đền Hùng - tỉnh Phú Thọ

II MỤC TIÊU, ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU

Mục tiêu

Nắm bắt cơ bản được các thuật toán Web Caching và các ứng dụng của phương pháp này

Trang 10

Trên cơ sở nghiên cứu, tìm hiểu lý thuyết về thuật toán LRU và thử nghiệm Web caching sử dụng thuật toán LRU

 Đối tượng và phạm vi nghiên cứu

- Tìm hiểu xây dựng thuật toán LRU trong việc thử nghiêm Web Caching

- Cài đặt thử nghiệm

III PHƯƠNG PHÁP NGHIÊN CỨU

- Phương pháp nghiên cứu tài liệu, phân tích, tổng hợp

- Phương pháp trao đổi khoa học, lấy ý kiến chuyên gia

- Phương pháp thực nghiệm và đối chứng qua chương trình thử nghiệm

Trang 11

Tiền thân của mạng Internet ngày nay là mạng ARPANET Thuật ngữ

"Internet" xuất hiện lần đầu vào khoảng năm 1974 Lúc đó mạng vẫn được gọi là ARPANET Năm 1984, ARPANET được chia ra thành hai phần: ARPANET và MILNET Đến năm 1980, ARPANET được đánh giá là mạng trụ cột của Internet Giữa thập niên 1980 thành lập mạng liên kết các trung tâm máy tính lớn với nhau gọi là NSFNET Sự hình thành mạng xương sống của NSFNET và những mạng vùng khác đã tạo ra một môi trường thuận lợi cho sự phát triển của Internet Tới năm 1995, NSFNET thu lại thành một mạng nghiên cứu còn Internet thì vẫn tiếp tục phát triển Các dịch vụ trên Internet không ngừng phát triển tạo ra cho nhân loại một thời kỳ mới: thời kỳ thương mại điện tử trên Internet

Việt Nam là nước có tốc độ tăng trưởng số người dùng internet trong tốp 10 nước có tốc độ tăng trưởng số người dùng nhanh nhất khu vực châu Á

và cũng là một trong những nước có tốc độ tăng trưởng lớn so với thế giới (giai đoạn 2000-2009), tăng 10,662.2 %

Xu hướng tăng trưởng Internet Việt Nam

Tính từ năm 2003, trung tâm INTERNET Việt Nam (VNNIC) thuộc

Bộ thông tin và truyền thông, đã nghiên cứu và thống kê số liệu phát triển Internet tại Việt Nam theo bảng dưới đây [8]

Bảng 1.1 Thống kê số liệu phát triển Internet tại Việt Nam tính đến 2014

Trang 12

1.1.1.2 Những giải pháp tăng hiệu suất của INTERNET

Tăng dung lượng truyền dẫn:

Tăng dung lượng truyền dẫn là việc đầu tư, nâng cấp dung lượng truyền dẫn Việc này sẽ triển khai đơn giản, nhanh nếu có sẵn các hệ thống truyền dẫn tuy nhiên nó sẽ trở nên phức tạp nếu hệ thống truyền dẫn không có sẵn Ngoài ra chi phí thuê kênh quốc tế cũng rất đắt, việc vận hành khai thác các kênh truyền dẫn quốc tế cũng không đơn giản

Sử dụng thiết bị quản lý băng thông:

Sử dụng thiết bị để ấn định mức độ băng thông cụ thể cho từng loại hình dịch vụ Việc sử dụng thiết bị quản lý băng thông này có thể ấn định được mức độ băng thông cụ thể cho từng loại dịch vụ tuy nhiên chi phí đầu tư

hệ thống cũng không nhỏ Bên cạnh đó nếu băng thông không đủ lớn thì sẽ có

Trang 13

mọi ngõ ngách cuộc sống hiện đại, nhu cầu của người sử dụng ngày càng đòi hỏi nhiều hơn các về chất lượng dịch vụ mà nó cung cấp để chạy nhiều loại hình ứng dụng khác nhau Bộ nhớ đệm Web caching là một giải pháp giảm thiểu các dịch vụ và tải giao thông mạng nút cổ chai, cải thiện thời gian đáp ứng yêu cầu và cải thiện các đối tượng Web có sẵn bằng cách lưu trữ một bản sao cache lưu trữ những đối tượng có thể sẽ sử dụng tới trong tương lai Trong những năm gần đây, nhiều nghiên cứu đã được dành riêng để nâng cao hơn nữa hiệu suất của Web và cung cấp nhiều dịch vụ khác nhau cho người

sử dụng Tuy nhiên, nhiều việc cần phải được thực hiện khi cung cấp nhiều cấp độ dịch vụ trong proxy cache, nó đóng một vai trò quan trọng trong việc đẩy nhanh hiệu suất Web

Khi sử dụng giải pháp này, chúng ta sẽ tiết kiệm được băng thông WAN do việc đưa thông tin về gần với người sử dụng Đảm bảo và nâng cao chất lượng truy nhập vì thời gian đáp ứng dịch vụ nhanh Tuy nhiên nếu hệ thống không đủ lớn cũng có thể gây đến việc thường xuyên bị quá tải, có thể ảnh hưởng tới hoạt động của dịch vụ Do đặc thù riêng của từng ISP mà mỗi ISP có cách lựa chọn giải pháp nâng cao chất lượng mạng riêng của mình Và

Web caching là một trong những giải pháp như vậy

1.1.2 Định nghĩa web Caching

Web caching (bộ nhớ đệm WEB) là việc lưu trữ bản sao của những tài liệu web sao cho gần với người dùng, cả về mặt chức năng trong web client hoặc những máy chủ bộ đệm lưu trữ riêng biệt Cache (bộ đệm) được chia thành các loại: Browser cache (bộ đệm trình duyệt), Proxy Cache (bộ đệm ủy

nhiệm), Gateway cache (bộ đệm cổng vào) [1]

Cơ chế hoạt động WebCaching sử dụng một bộ nguyên tắc để xác định thời điểm cung cấp các đối tượng (hay các tài liệu Web), tất nhiên là với điều

Trang 14

kiện các đối tượng đó đã được lưu trong cache Trường hợp các đối tượng được yêu cầu chưa được lưu sẵn trong cache thì cache server sẽ gửi các yêu cầu đó đến sever gốc Một số nguyên tắc được thiết lập trong các giao thức HTTP/1.0, HTTP/1.1 và một số khác được thiết lập bởi những người quản trị cache:

+ Nếu phần tiêu đề của đối tượng cho cache biết không phải lưu đối tượng thì cache không lưu đối tượng đó Nếu biến logic xác nhận ( biến validator) không xuất hiện, phần lớn các cache sẽ đánh dấu đối tượng là không thể lưu (uncacheable)

+ Nếu đối tượng có yêu cầu nhận thực hay bảo mật, nó sẽ được lưu + Một đối tượng được lưu được coi là tươi – “fresh” có nghĩa là có thể được gửi tới client mà không cần sự kiểm tra của server gốc

- Nó có thời gian tồn tại (hoạt động theo dạng một loại bộ đếm) còn nằm trong khoảng thời gian fresh (chưa quá hạn)

- Nếu một browser cache đã từng hiển thị đối tượng và đối tượng này

đã được đánh dấu là đã kiểm tra trong một phiên trước đó

- Nếu proxy cache mới xử lý nó gần đây và nó đã được sửa đổi trước

đó tương đối lâu, các đối tượng fresh được lấy trực tiếp từ cache mà không cần kiểm tra với server gốc

+ Nếu một đối tượng được coi là cũ, server gốc sẽ được yêu cầu xác nhận đối tượng hoặc báo cho cache rằng đối tượng đó vẫn còn giá trị sử dụng

1.1.3 Một số khái niệm về Caching

Web caching giữ lại một bản sao của các trang web ở những nơi gần với người dùng cuối Bộ đệm Caches được tìm thấy trong các trình duyệt và

trong bất kỳ web trung gian giữa đại lý người dùng và máy chủ gốc Thông thường, một bộ đệm cache nằm ở client (trình duyệt cache), máy chủ proxy (proxy cache) và máy chủ gốc (máy chủ cache) như thể hiện trong hình sau [7]

Trang 15

Hình 1.1 Vị trí của bộ nhớ Web cache

Browser cache

Browser cache nằm trong các client Browser cache hay còn được gọi

là bộ đệm trình duyệt Những trình duyệt như IE, Moziila, Firefox chúng ta dùng để truy cập mạng, đều có sẵn một thư mục trong đó các nội dung đã được tải về sẽ được lưu để sử dụng trong tương lại Bộ nhớ cache này rất hữu ích, đặc biệt là khi người sử dụng nhấn vào nút "back" hoặc bấm vào một liên kết để xem một trang mà họ đã xem qua Ngoài ra, nếu người dùng sử dụng các hình ảnh chuyển hướng như nhau trong cả trình duyệt, họ sẽ được phục

vụ từ cache trình duyệt gần như ngay lập tức

Proxy server cache

Proxy server cache là máy chủ caching trung gian nhằm giảm tải lưu lượng trên đường truyền Web Proxy Cache (bộ đệm Web Proxy) làm việc cùng nguyên tắc với Browser Cache nhưng ở quy mô lớn hơn Nó được tìm thấy trong các máy chủ proxy giữa các máy client và máy chủ gốc Nó hoạt động trên nguyên tắc tương tự của trình duyệt bộ nhớ cache, nhưng nó có một quy mô lớn hơn nhiều Không giống như các cache của trình duyệt chỉ có một người sử dụng duy nhất, các proxy phục vụ hàng trăm hoặc hàng ngàn người

sử dụng theo cùng một cách Khi nhận được yêu cầu, các proxy server sẽ kiểm tra bộ nhớ cache của nó Nếu đối tượng có sẵn, nó sẽ gửi các đối tượng cho khách hàng Nếu đối tượng là không có, hoặc đã hết hạn, các máy chủ proxy sẽ yêu cầu các đối tượng từ máy chủ gốc và gửi nó cho khách hàng

Trang 16

Các đối tượng sẽ được lưu trữ trong bộ nhớ cache của địa phương đại diện cho các yêu cầu trong tương lai

Hình 1.2 Sơ đồ biểu diễn Proxy server cache

Origin server cache

Ngay cả tại các máy chủ gốc, các trang web có thể được lưu trữ trong một bộ nhớ cache phía máy chủ để giảm sự cần thiết cho các tính toán dự phòng hoặc cơ sở dữ liệu có khả năng tìm lại Do đó, việc tải server có thể được giảm bớt nếu bộ nhớ cache máy chủ gốc cũng làm việc Origin server cache (Gốc máy chủ cache) là máy chủ caching nằm trước các Web server (máy chủ web) nhằm giảm tải cho các web server Nó thường được biết đến như là “reverse proxy cache”

Hình 1.3 Vị trí đặt origin server cache

Trang 17

1.2.1 Kiến trúc cache phân tầng và phân tán

Kiến trúc phân tầng: mỗi một thành phần của mạng được xem như một

hệ thống gồm nhiều tầng, và mỗi một tầng bao gồm nhiều chức năng truyền thông Các tầng được chồng lên nhau, số lượng và chức năng phụ thuộc vào các nhà sản xuất và thiết kế Tuy nhiên quan điểm chung là trong mỗi tầng có nhiều thực thể ( các tiến trình) thực hiện một số chức năng nhằm cung cấp một số dịch vụ, thủ tục cho các thực thể tầng trên hoạt động

Kiến trúc phân tán là tổ hợp bao gồm cá máy tính độc lập với trình diễn

hệ thống như một máy tính đơn trước người dùng Do đó có các đặc điểm cơ bản là: tính chia sẻ tài nguyên, tính mở, khả năng song song, tính mở rộng, khả năng thứ lỗi, tính trong suốt

Kiến trúc phân tầng có thời gian kết nối nhỏ hơn kiến trúc phân tán Bởi vì trong kiến trúc phân tầng các bản sao của một trang được lưu trữ một cách dư thừa tại các hệ thống cache ở các cấp độ mạng khác nhau dẫn tới giảm được thời gian kết nối Ngược lại kiến trúc phân tán có thời gian truyền nội dung của trang Web thấp hơn kiến trúc phân tầng, bởi vì trong kiến trúc phân tán lưu lượng Web được lưu chuyển trên các tầng mạng phía dưới và ít

bị nghẽn hơn

Mô hình mạng

Hình 1.4 Mô hình phân cấp của ISP

Trang 18

Chúng ta xây dựng topology của mạng dưới dạng cấu trúc cây đầy đủ Oary, hình dưới đây:

Hình 1.5 Mô hình phân cây

trong đó:

- O đại diện cho độ mở (số nhánh) của mỗi nút trong cấu trúc cây

- H là số đường kết nối mạng giữa nút gốc của mạng quốc gia với nút gốc của mạng cấp vùng H cũng đại diện cho số đường kết nối giữa nút gốc của mạng cấp vùng với nút gốc của mạng cấp khu vực

- z là số kết nối giữa máy chủ gốc và nút gốc

- l là số cấp của cây (0≤ 1≤ 2H+z) trong đó:

 l = 0 là mức mạng của các bộ đệm cơ quan

 l = H là mức mạng của các bộ đệm vùng

 l = 2H là mức mạng của các bộ đệm quốc gia

 l = 2H + z máy chủ gốc Giả định băng thông là đồng nhất với mỗi ISP (mỗi kết nối giữa các ISP có cùng tốc độ truyền dẫn (transmission rate))

- CI, CR, CN là tốc độ truyền dẫn (transmission rate) của các kết nối ở mạng cơ quan, vùng, quốc gia

- C: tỷ lệ nghẽn nút cổ chai trên đường truyền dẫn quốc tế

Kiến trúc phân tầng

Trang 19

Hình 1.6 Sơ đồ đầy đủ một kiến trúc phân tầng Web Caching của một ISP

Hệ thống cache thường được đặt tại điểm truy nhập giữa hai mạng khác nhau để giảm chi phí truyền trang qua một mạng mới Tại một nước thì chỉ có một mạng quốc gia và một hệ thống cache quốc gia Vậy sẽ có OH mạng vùng

và mỗi mạng sẽ có một hệ thống cache cấp vùng Có O2H mạng khu vực và mỗi mạng sẽ có một hệ thống cache cấp khu vực

Hệ thống cache được đặt ở độ cao 0 của cấu trúc cây tương ứng cấp độ

1 trong kiến trúc phân tầng, độ cao H của cấu trúc cây tương ứng cấp độ 2 trong kiến trúc phân tầng, độ cao 2H của cấu trúc cây tương ứng cấp độ 3 trong kiến trúc phân tầng Cache được nối tới các ISP qua các kênh truy nhập Chúng ta giả sử rằng dung lượng kênh truy nhập tại mỗi cấp độ bằng dung lượng kênh trung kế của mạng tại cấp độ đó nghĩa là CI, CR, CN và C cho từng cấp độ tương ứng Tỷ lệ hit tại hệ thống cache của các cấp khu vực, vùng, quốc gia được đại diện bởi các giá trị: hitI, hitR, hitN (hit: số phần trăm yêu cầu được đáp ứng ở mức bộ đệm)

Kiến trúc phân tán

Hình 1.7 Sơ đồ kiến trúc phân tán Web caching của một ISP

Trang 20

Cache chỉ được đặt tại cấp khu vực và sẽ không có bản sao trung gian của các trang Web tại các cấp mạng khác Để chia sẻ các bản sao giữa các hệ thống cache khu vực, hệ thống cache tại cấp mạng trung gian sẽ lưu giữ dữ liệu meta-data nó chứa đựng thông tin về nội dung được lưu trong các hệ thống cache khu vực Các cache khu vực trao đổi định kỳ lượng thông tin meta-data về các tài liệu mà chúng lưu trữ Chúng ta giả sử rằng các thông tin

là thường xuyên cập nhật tại tất cả các cache khu vực khi mà có một tài liệu mới được lấy về ở bất kỳ cache nào

1.2.1.1 Thời gian kết nối T c

Thời gian kết nối là phần đầu tiên của độ trễ khi truy vấn lấy văn bản (nội dung) Chúng ta giả sử thời gian kết nối chỉ phụ thuộc vào khoảng cách

từ client đến với văn bản xét trên phạm vi mạng lưới Thời gian kết nối đến một văn bản có độ phổ biến tot đối với trường hợp sử dụng caching phân tán

và caching phân cấp Khoảng thời gian cập nhật trong trường hợp này = 24 giờ; thời gian cập nhật càng dài thì số lượng các yêu cầu càng tăng Tuy nhiên hiệu năng tương đối của mô hình caching phân tán và caching phân cấp vẫn tương đương nhau

Trước hết, với một văn bản không phổ biến (tot nhỏ), cả hai mô hình phân tán và phân cấp đều có thời gian kết nối khá cao do yêu cầu kết nối phải chuyển tới máy chủ chứa văn bản đó Khi một văn bản hay được truy cập, thời gian kết nối của mô hình phân tán và mô hình phân cấp là rất gần nhau

do xác suất văn bản được tìm thấy ở máy chủ caching ở biên mạng cao

1.2.1.2 Thời gian truyền T t

Phân bố của lưu lượng được tạo ra bởi mô hình caching phân tán βdl và

mô hình caching phân cấp βhl ở tất cả các cấp độ mạng Với N=250 triệu trang Web, phân bố theo luật Zipf Thời gian cập nhật một trang là =24h Tổng lưu lượng mạng O2H.βI=1000 truy nhập/s Chúng ta cố định kích thước trang S=15KB Ta tính được tỷ lệ hit tại mỗi cấp độ cache hitI=0.5, hitR=0.6 và hitN=0.7

Mô hình caching phân tán gây tăng gấp 2 lần băng thông ở các mức mạng thấp và sử dụng nhiều băng thông hơn ở mức mạng quốc gia so với mô hình caching phân cấp Tuy nhiên, lưu lượng ở những nút mạng bị nghẽn lại

Trang 21

Chúng ta thay đổi mức độ sử dụng băng thông ρ của các kết nối mạng cấp quốc gia trong kiến trúc caching phân cấp) Kết nối quốc tế thường xuyên nghẽn và có mức độ sử dụng băng thông (β1O2H (1-hitN)S/C) = 0.95

Nút thắt cổ chai lưu lượng duy nhất trên đường kết nối từ client đến máy chủ gốc là đường kết nối quốc tế Chúng ta quan sát thấy hiệu năng của

mô hình phân tán và phân cấp khá giống nhau vì không có kết nối bị nghẽn cao ở các mạng cấp vùng và cấp quốc gia Mô hình caching phân tán có thời gian truy ền dẫn thấp hơn phân cấp vì có nhiều yêu cầu được thỏa mãn ở các mức mạng không bị nghẽn

1.2.1.3 Thời gian trễ tổng thể

Thời gian trễ tổng thể là tổng thời gian kết nối và thời gian truyền dẫn Với các văn bản lớn, thời gian trễ tổng thể sẽ xấp xỉ với thời gian truyền dẫn Với các văn bản nhỏ, thời gian truyền dẫn rất nhỏ và trong trường hợp này, thời gian trễ tổng thể sẽ xấp xỉ với thời gian kết nối Mô hình mạng phân tầng (phân cấp) có thời gian trễ thấp hơn với các văn bản nhỏ hơn 200KB do mô hình mạng caching phân cấp có thời gian kết nối thấp hơn mô hình caching phân tán Tuy nhiên mô hình mạng caching phân tán có thời gian trễ thấp hơn trong trường hợp các văn bản có kích thước lớn do thời gian truyền dẫn của

mô hình này nhỏ hơn

Mức ngưỡng của dung lượng văn bản phụ thuộc vào mức độ nghẽn của mạng quốc gia Nghẽn càng lớn thì với mức ngưỡng kích thước văn bản càng nhỏ, mô hình caching phân tán có độ trễ nhỏ hơn mô hình caching phân cấp

1.2.1.4 Băng thông sử dụng

Tính toán lượng băng thông sử dụng dựa trên số lượng đường link (liên kết) cần thiết để gửi trả về 1 gói tin cho clients (khách hàng) Mô hình

Trang 22

caching phân tán sử dụng nhiều băng thông hơn mô hình caching phân cấp trong mạng cấp Tuy nhiên lưu lượng mạng được phân tán tốt hơn với phần lớn băng thông được sử dụng ở các mức mạng ít nghẽn Ngoài ra các mô hình caching phân cấp sử dụng ít kết nối hơn trong mạng cấp vùng do các văn bản được tìm thấy ở máy chủ caching cấp vùng Ở cấp mạng quốc gia cũng tương

tự như vậy Vì vậy các hướng tiếp cận chỉ sử dụng các chủ caching ở mức biên và máy trạm để cung cấp ứng dụng nội dung thường có hiệu năng kém xét về mặt băng thông hơn các hướng tiếp cận khác

1.2.2 Kiến trúc kết hợp (Caching lai)

Hình 1.8 Sơ đồ Hybrid Web Caching của một ISP

Kiến trúc cache lai là kiến trúc có một số lượng xác định k cache liên kết tại mọi mức mạng của kiến trúc phân tầng

1.2.2.1 Thời gian kết nối Tc

Thời gian kết nối trong kiến trúc kết hợp phụ thuộc vào số lượng cache kết hợp k tại mỗi cấp mạng Số lượng cache kết hợp tại mỗi cấp thay đổi từ 1 tới OH= 64 (toàn bộ số lượng cache bên cạnh trong cùng một cấp độ cache kết hợp) Hình dưới cho ta thấy thời gian kết nối trung bình cho toàn bộ N trang web, phụ thuộc vào số cache kết hợp

Trang 23

Hình 1.9 Thời gian kết nối trung bình cho toàn bộ N trang Web, phụ thuộc

vào số cache kết hợp k

Khả năng tìm thấy một trang tại hệ thống cache bên cạnh gần đấy là rất nhỏ, như vậy phần lớn yêu cầu được cache cấp trên phục vụ với một khoảng cách H Khi số cache kết hợp tăng lên, thời gian kết nối giảm tới một giá trị nhỏ nhất Bởi vì khả năng để truy nhập được một trang tại hệ thống cache bên cạnh gần hơn so với hệ thống cache cấp trên.Tuy nhiên khi số cache kết hợp tăng quá ngưỡng kc=4, thì thời gian kết nối tăng rất nhanh bởi vì trang được yêu cầu từ hệ

thống cache bên cạnh có khoảng cách mạng lớn Số lượng cache kết hợp tối

ưu kc để tối thiểu hóa thời gian kết nối là số lượng cache mà khoảng cách mạng gần hơn so với mạng cấp trên: kc=O[H/2]

Có thể thấy kiến trúc hỗn hợp với số kết nối tối ưu kc có thời gian kết nối nhỏ hơn kiến trúc phân tán và thậm chí nhỏ hơn kiến trúc phân tầng trong một khoảng lớn

Hình 1.10 Thời gian kết nối của Caching phân cấp, caching phấn tán và

caching hỗn hợp

Trang 24

1.2.2.2 Thời gian truyền T t

Hình 1.10 biểu diễn cho thời gian truyền của tất cả N trang Web phụ thuộc vào số cache kết hợp tại mỗi cấp

Hình 1.11 Thời gian truyền của N trang Web

Sau khi xem xét hai trường hợp mạng cấp quốc gia không nghẽn (ρ=3) điểm nút cổ chai là các đường quốc tế, và mạng cấp quốc gia nghẽn (ρ=0.8), chúng ta nhận thấy rằng khi mạng quốc gia không nghẽn thì sự thay đổi số lượng cache kết hợp không ảnh hưởng đến thời gian truyền Tuy nhiên khi mạng quốc gia bị nghẽn thì thời gian truyền phụ thuộc nhiều vào số lượng cache kết hợp tại mỗi cấp mạng Nếu số lượng cache kết hợp rất nhỏ, thì có ít khả năng trang Web được lấy từ cache bên cạnh Các trang phần lớn được lấy

từ cache cấp trên qua các đường kết nối ở mức trên cũng bị nghẽn nặng Khi

số cache kết hợp tăng, khả năng để nhận một trang tại hệ thống cache bên cạnh tăng và như vậy thời gian truyền nhỏ đi Nếu số cache kết hợp vượt qua ngưỡng kt=16, thời gian truyền lại tăng lại bởi vì các trang Web sẽ được nhận qua các có khoảng cách lớn

và các đường kết nối bị nghẽn nặng Số cache kết hợp tối ưu kt để tối thiểu hóa thời gian truyền phụ thuộc vào số lượng cache kết hợp có thể đạt được mà không làm nghẽn các kênh kết nối

Trong trường hợp kênh ở lớp trên cùng của mạng cấp quốc gia bị nghẽn, số lượng cache kết hợp tối ưu tại mỗi cấp là kt =16 Giá trị này tương ứng với số cache vùng có thể kết hợp với nhau để đáp ứng yêu cầu truy nhập

mà không cần phải đi đến các đường kết nối cấp quốc gia: kt = OH-1

Trang 25

Hình 1.12 Thời gian truyền cho caching lai với số bộ đệm tối ưu k, ρ=0,8

Lựa chọn số cache kết hợp mạng kết hợp có thời gian kết nối nhỏ hơn

so với kiến trúc phân tầng và thời gian truyền nhỏ hơn kiến trúc phân tán

1.2.2.3 Thời gian trễ tổng thể

Với trường hợp các trang kích thước nhỏ thì số cache kết hợp tối ưu

gần với giá trị k c , bởi vì k c tối thiểu thời gian kết nối Với trường hợp các

trang kích thước lớn thì số cache kết hợp tối ưu gần với giá trị k t , bởi vì k t tối

thiểu thời gian truyền Với một kích thước bất kỳ thì số lượng cache kết hợp

tối ưu để tối thiểu hóa thời gian trễ có giá trị k opt :

k c k opt k t

kopt phụ thuộc vào kích thước trang, giá trị kopt thay đổi trong khoảng k c

trễ nhỏ hơn kiến trúc phân tầng và kiến trúc phân tán

1.2.2.4 Băng thông sử dụng

Băng thông sử dụng trong mô hình caching lai nhỏ hơn so với băng thông sử dụng trong mô hình caching phân tán với các mức độ phổ biến khác nhau của nội dung được yêu cầu trong các mạng cấp vùng và cấp quốc gia Nguyên nhân của kết quả này là do có thêm các máy chủ caching trung gian giúp giảm đáng kể băng thông sử dụng, cũng giống như trong trường hợp sử dung multicast ở lớp ứng dụng Hiệu năng của mô hình caching lai so với mô hình caching phân cấp phụ thuốc vào số lượng máy chủ caching

cộng tác Đặc biệt trong trường hợp có k = k c = 4 máy chủ caching cộng tác,

Trang 26

băng thông sử dụng của mô hình caching lai thậm chí còn nhỏ hơn băng thông sử dụng của mô hình caching phân tán (khoảng 1.2 lần với các văn bản

có mức độ phổ biến trung bình) Chú ý rằng, với k = k c = 4, số lượng các

chuyển tiếp trung gian của một yêu cầu caching được giảm thiểu Khi có k =

trường hợp mạng nghẽn, băng thông sử dụng tăng nhẹ (khoảng 1.3 lần với

các văn bản có độ phổ biến trung bình) so với mô hình thu ần phân cấp do sẽ

có các trường hợp phải lấy thông tin từ các máy chủ caching ở xa để tránh các

đường kết nối bị nghẽn ở mức trên [7]

1.3 Ưu nhược điểm của Web caching

Ưu điểm:

Web caching là một trong những giải pháp thành công nhất trong việc nâng cao hiệu suất của hệ thống trên nền web Trong Web caching, đối tượng web phổ biến đó có thể được truy cập trong tương lai gần được lưu trữ ở các

vị trí gần gũi hơn với người sử dụng như máy khách hoặc máy chủ proxy Như vậy, bộ nhớ đệm Web giúp trong việc giảm dịch vụ nút cổ chai, làm giảm lưu lượng truy cập qua Internet và cải thiện khả năng mở rộng của hệ thống Web Các bộ nhớ đệm Web có ba lợi thế hấp dẫn cho người tham gia Web, bao gồm cả người dùng cuối, các nhà quản lý mạng, và người thiết kế nội dung:

a Web caching làm người sử dụng giảm cảm nhận độ trễ: bởi vì những đáp ứng có sẵn trực tiếp cho các yêu cầu đã được lưu trữ, và gần với client được phục vụ hơn Bởi vì ỵêu cầu được thỏa mãn tại cache (gần với client hơn) thay vì từ server chính, nó giảm được thời gian cho client để lấy và hiển thị đối tượng Nó làm cho các web sites dường như đáp ứng nhanh hơn

b Web caching làm giảm băng thông sử dụng mạng: bởi vì một số yêu cầu và đáp ứng cần phải thông qua mạng máy tính Mỗi đối tượng chỉ nhận được từ server khi có yêu cầu, web caching làm giảm một lương băng thông chiếm dụng bởi client Việc này giúp tiết kiệm tiền nếu client phải trả tiền cho

Trang 27

Đồng thời, web caching làm cho web kinh tế hơn và tối ưu hơn

Nhược điểm:

Các ưu điểm của web caching là chính, tuy nhiên Web caching cũng đòi hỏi cải tiến bổ sung so với các hệ thống web thông thường như:

- Đầu tư thiết bị ví dụ Proxy Server

- Thay đổi phần mềm của client để có thể truy nhập Proxy

- Về phương diện quản trị mạng phải cấu hình hệ thống phức tạp hơn

1.4 Kết luận chương 1

Vấn đề tải truy cập Internet và tăng hiệu suất truy cập Internet trong xu thế toàn cầu hiện nay được nhắc đến trong nội dung chương 1 của luận văn Theo đó, web caching là một trong những giải pháp thành công nhất trong việc nâng cao hiệu suất của hệ thống trên nền web

Web caching (bộ nhớ đệm WEB) là việc lưu trữ bản sao của những tài liệu web sao cho gần với người dùng, cả về mặt chức năng trong web client hoặc những máy chủ bộ đệm lưu trữ riêng biệt Cache (bộ đệm) được chia thành các loại: Browser cache (bộ đệm trình duyệt), Proxy Cache (bộ đệm ủy nhiệm), Gateway cache (bộ đệm cổng vào) Các kiến trúc web caching gồm có: kiến trúc cache phân tầng và phân tán; kiến trúc kết hợp (kiến trúc lai)

Web caching có rất nhiều ưu điểm như giúp người dùng giảm cảm nhận

độ trễ, làm giảm băng thông sử dụng mạng, giảm tải trên máy chủ gốc, đồng thời làm cho web kinh tế hơn và tối ưu hơn

Trang 28

CHƯƠNG 2: MỘT SỐ THUẬT TOÁN WEB CACHING

Thuật toán bộ nhớ đệm, hay thuật toán thay thế đã được mô tả và phân tích kể từ khi bộ nhớ xử lý bộ nhớ đệm được phát minh Sự kết hợp của các thuật toán thay thế và khối lượng công việc được cung cấp xác định hiệu quả của bộ nhớ cache trong việc tối ưu hóa việc sử dụng tài nguyên hệ thống Nhiều thuật toán bộ nhớ đệm đã được thiết kế cho những tác vụ Web

Thuật toán thay thế bộ nhớ cache đóng một vai trò cực kỳ quan trọng trong Web caching Do đó, việc thiết kế các thuật toán thay thế bộ nhớ cache hiệu quả là cần thiết để đạt được cơ chế rất tinh vi trong bộ nhớ đệm Nói chung, thay thế bộ nhớ cache, thuật toán này cũng được gọi là thuật toán bộ nhớ đệm Web

Khi kích thước của bộ nhớ cache là hạn chế, một thuật toán thay thế bộ nhớ cache là cần thiết để xử lý nội dung bộ nhớ cache Nếu bộ nhớ cache là đầy đủ khi một đối tượng cần phải được lưu trữ, thuật toán thay thế sẽ xác định đối tượng là bị loại bỏ để cho phép không gian cho các đối tượng mới Các thuật toán thay thế tối ưu làm cho việc sử dụng tốt nhất không gian bộ nhớ cache có sẵn, để cải thiện tỷ lệ hit cache, và để giảm tải trọng trên máy chủ gốc.[2]

2.1 Thuật toán Least Frequently Used with Dynamic Aging (LFU-DA)

LFU-DA là thuật toán dựa trên tần suất truy nhập, trong đó giả định chi phí và kích thước của trang là không đổi Trong thuật toán LFU, quyết định loại bỏ nội dung một trang căn cứ vào số lần truy nhập đến trang đó Việc đếm số lần truy nhập của tất cả các trang trong cache được lưu lại và trang có

số lần truy nhập đến nhỏ nhất sẽ bị loại bỏ Thuật toán LFU-DA được mở rộng từ LFU bằng cách sử dụng thêm thuật toán tuổi động ( Dynamic Aging ) Qua thực nghiệm người ta quan sát được tỷ lệ byte hit ( là tỷ lệ giữa tổng kích thước trang Web được yêu cầu có nội dung nằm sẵn trong cache với tổng

kích thước trang Web được yêu cầu) của thuật toán LFU-DA là khá cao

Hầu hết các máy chủ Web proxy vẫn quan tâm với thuật toán bộ nhớ đệm truyền thống Những thuật toán này thường là phù hợp trong bộ nhớ đệm

Trang 29

thống nhất kích thước các đối tượng, giống như bộ nhớ Cache Tuy nhiên, nó không thực hiện tốt trong Web caching vì nó không xem xét các kích thước hoặc tải về độ trễ của các đối tượng Least Frequently Used with Dynamic

Aging (LFU) là một bộ nhớ đệm web phổ biến mà việc thay thế các đối tượng

với số lượng ít nhất của người truy cập LFU giữ các đối tượng web phổ biến

và loại bỏ các đối tượng ít được sử dụng hơn Tuy nhiên, LFU bị ô nhiễm bộ nhớ cache trong các đối tượng với các tài khoản tham chiếu lớn, mà không bao giờ được thay thế, ngay cả khi họ không tái truy cập lần nào nữa

2.2 Thuật toán Greedy Dual Size (GDS)

Thuật toán này đã tính đến sự thay đổi của chi phí và kích thước của trang Việc loại bỏ trang khỏi hệ thống được căn cứ trên tỷ lệ giữa kích

thước và chi phí của trang.Cũng giống như thuật toán LFU-DA, GDS gán một giá trị H(p) với một trang p trong cache Khi một trang mới được lưu vào

trong cache hoặc khi một trang đang nằm trong cache được truy nhập lại thì

giá trị H(p) được cập nhật lại:

H(p)=C(p)/S(p)

trong đó: S(p) là kích thước của trang, C(p) là hàm chi phí thể hiện chi phí để

lưu một trang p vào trong cache

Trang p có giá trị H(p)=Hmin:=min p {H(p)} (của tất cả các trang nằm

trong cache) sẽ bị loại bỏ khỏi cache khi có yêu cầu thay thế trang Tiếp theo

đó L được đặt bằng giá trị H(p) của trang bị loại bỏ Tuy nhiên cũng giống như LRU, GDS không tính đến tần suất truy nhập

2.3 Thuật toán Cost Effective (CE)

Thuật toán CE được đưa ra để giảm toàn bộ chi phí lấy được tài liệu Nhìn chung, những người sử dụng Internet có thể được chia 2 nhóm như sau:

(i) Khách hàng tìm kiếm thời gian đáp trả ngắn hơn

Trang 30

(ii) Khách hàng tìm cách tối đa hóa sử dụng băng thông (ví dụ một Internet Service Provider, ISP)

Vì vậy, có hai mô hình chi phí để tối ưu hóa proxy cache cho hai nhóm mục tiêu sử dụng Thứ nhất, một mô hình độ trễ mà có thể đo độ trễ tải về của người dùng cuối, và thứ hai là một mô hình lưu lượng truy cập mà có thể

đo được lưu lượng mạng

Có thể xác định tỷ lệ giảm chi phí (CRR) như sau:

C

C H

lưu lượng Trong CE, giá trị lợi ích (Benefit Value-BV) được gán cho mỗi đối

tượng, biểu diễn tầm quan trọng của nó trong cache Khi cache đầy, các đối

tượng với BV thấp nhất bị thay thế BV bao gồm 3 phần: chi phí, xác suất tái truy cập (Pr) và tuổi động

Xác suất tái truy cập: BV=(Cost/Size)*Pr+Age

Cost: Chi phí lấy được đối tượng từ máy chủ

Pr: Xác suất tái truy cập:

10

/ 1 f

) Size Log (

P 

với P f =D f+1 /D f

P f là xác suất có điều kiện của việc tái truy cập 1 đối tượng đã được truy cập f lần

D f : Số tài liệu được truy cập ít nhất là f lần

α :Giá trị đặc trưng của luật phân bố Zipf

b là hằng trọng số

Size: Kích thước của đối tượng được yêu cầu

Trang 31

được ước tính là R=C / S b , nơi C và b là hai hằng Tỷ lệ truy cập trung bình :

10Size ) Log

với R là độ thông dụng của trang, K và α là 2 tham số độc lập

Tuổi cache là thời gian truy cập gần đây nhất Khi một đối tượng được

đưa đến cache, BV của nó là chi phí lấy được đối tượng cộng với H (ban đầu

H = 0) Trong trường hợp cache hit, H được đặt bằng thời gian hiện nay

2.4 Thuật toán Least recently used (LRU)

2.4.1 Thay thế trang

Khi xảy ra một lỗi trang, cần phải mang trang vắng mặt vào bộ nhớ Nếu không có một khung trang nào trống, hệ điều hành cần thực hiện công việc thay thế trang – chọn một trang đang nằm trong bộ nhớ mà không được

sử dụng tại thời điểm hiện tại và chuyển nó ra không gian swapping trên đĩa

để giải phóng một khung trang dành chỗ nạp trang cần truy xuất vào bộ nhớ Như vậy nếu không có khung trang trống, thì mỗi khi xảy ra lỗi trang cần phải thực hiện hai thao tác chuyển trang : chuyển một trang ra bộ nhớ phụ và nạp một trang khác vào bộ nhớ chính Có thể giảm bớt số lần chuyển trang bằng cách sử dụng thêm một bit cập nhật (dirty bit) Bit này được gắn với mỗi trang

để phản ánh tình trạng trang có bị cập nhật hay không : giá trị của bit được cơ chế phần cứng đặt là 1 mỗi lần có một từ được ghi vào trang, để ghi nhận nội

Trang 32

dung trang có bị sửa đổi Khi cần thay thế một trang, nếu bit cập nhật có giá trị là 1 thì trang cần được lưu lại trên đĩa, ngược lại, nếu bit cập nhật là 0, nghĩa là trang không bị thay đổi, thì không cần lưu trữ trang trở lại đĩa

Hình 2.1 Cấu trúc một phần tử trong bảng trang

Sự thay thế trang là cần thiết cho kỹ thuật phân trang theo yêu cầu Nhờ

cơ chế này, hệ thống có thể hoàn toàn tách rời bộ nhớ ảo và bộ nhớ vật lý, cung cấp cho lập trình viên một bộ nhớ ảo rất lớn trên một bộ nhớ vật lý có thể bé hơn rất nhiều lần

Sự thi hành phân trang theo yêu cầu hay việc áp dụng kỹ thuật phân trang theo yêu cầu có thể ảnh hưởng mạnh đến tình hình hoạt động của hệ thống

Gỉa sử p là xác suất xảy ra một lỗi trang (0≤ p ≤ 1):

p = 0 : không có lỗi trang nào

p = 1 : mỗi truy xuất sẽ phát sinh một lỗi trang

Thời gian thật sự cần để thực hiện một truy xuất bộ nhớ (TEA) là:

TEA = (1-p)ma + p (tdp) [+ swap out ] + swap in + tái kích hoạt

Trong công thức này, ma là thời gian truy xuất bộ nhớ, tdp thời gian xử

lý lỗi trang

Có thể thấy rằng, để duy trì ở một mức độ chấp nhận được sự chậm trễ trong hoạt động của hệ thống do phân trang, cần phải duy trì tỷ lệ phát sinh lỗi trang thấp Hơn nữa, để cài đặt kỹ thuật phân trang theo yêu cầu, cần phải giải quyết hai vấn đề chính yếu : xây dựng một thuật toán cấp phát khung trang,

và thuật toán thay thế trang

2.4.2 Các thuật toán thay thế trang

Vấn đề chính khi thay thế trang là chọn lựa một trang « nạn nhân » để chuyển ra bộ nhớ phụ Có nhiều thuật toán thay thế trang khác nhau, nhưng tất cả cùng chung một mục tiêu : chọn trang « nạn nhân » là trang mà sau khi thay thế sẽ gây ra ít lỗi trang nhất Có thể đánh giá hiệu qủa của một thuật

Trang 33

Thuật toán LRU

Với mỗi trang, ghi nhận thời điểm cuối cùng trang được truy cập, trang được chọn để thay thế sẽ là trang lâu nhất chưa được truy xuất

Thuật toán giả định là một trang vừa mới được lấy ra khỏi cache sẽ tiếp tục được truy nhập trong thời gian tới Để thay thế một nội dung trong cache,

LRU sẽ xoá bỏ các trang không được truy cập đến trong một khoảng thời gian

dài nhất Chức năng của LRU được minh hoạ trong hình dưới đây:

Hình 2.2 Lược đồ thay thế nội dung cache của thuật toán LRU

Ví dụ: sử dụng 3 khung trang, khởi đầu đều trống:

Trang 34

Thuật toán FIFO sử dụng thời điểm nạp để chọn trang thay thế, thuật

toán tối ưu lại dùng thời điểm trang sẽ được sử dụng, vì thời điểm này không

thể xác định trước nên thuật toán LRU phải dùng thời điểm cuối cùng trang được truy xuất – dùng quá khứ gần để dự đoán tương lai

Thuật toán này đòi hỏi phải được cơ chế phần cứng hỗ trợ để xác định một thứ tự cho các trang theo thời điểm truy xuất cuối cùng Có thể cài đặt theo một trong hai cách :

Sử dụng bộ đếm: thêm vào cấu trúc của mỗi phần tử trong bảng trang một

trường ghi nhận thời điểm truy xuất mới nhất, và thêm vào cấu trúc của CPU một bộ đếm Mỗi lần có sự truy xuất bộ nhớ, giá trị của counter tăng lên 1 Mỗi lần thực hiện truy xuất đến một trang, giá trị của counter được ghi nhận vào trường thời điểm truy xuất mới nhất của phần tử tương ứng với trang trong bảng trang Thay thế trang có giá trị trường thời điểm truy xuất mới nhất là nhỏ nhất

Sử dụng stack: tổ chức một stack lưu trữ các số hiệu trang Mỗi khi thực hiện

một truy xuất đến một trang, số hiệu của trang sẽ được xóa khỏi vị trí hiện hành trong stack và đưa lên đầu stack Trang ở đỉnh stack là trang được truy xuất gần nhất, và trang ở đáy stack là trang lâu nhất chưa được sử dụng

Có ít hệ thống được cung cấp đủ các hỗ trợ phần cứng để cài đặt được thuật toán LRU thật sự Tuy nhiên, nhiều hệ thống được trang bị thêm một bit tham khảo ( reference): một bit reference, được khởi gán là 0, được gắn với một phần tử trong bảng trang Bit reference của một trang được phần cứng đặt giá trị 1 mỗi lần trang tương ứng được truy cập, và được phần cứng gán trở về

0 sau từng chu kỳ qui định trước

Sau từng chu kỳ qui định trước, kiểm tra giá trị của các bit reference, có thể xác định được trang nào đã được truy xuất đến và trang nào không, sau khi đã kiểm tra xong, các bit reference được phần cứng gán trở về 0 Với bit reference, có thể biết được trang nào đã được truy xuất, nhưng không biết được thứ tự truy xuất Thông tin không đầy đủ này dẫn đến nhiều thuật toán xấp xỉ LRU khác nhau

Trang 35

Tiếp cận: Có thể thu thập thêm nhiều thông tin về thứ tự truy xuất hơn

bằng cách lưu trữ các bit references sau từng khoảng thời gian đều đặn: với mỗi trang, sử dụng thêm 8 bit lịch sử (history) trong bảng trang sau từng khoảng thời gian nhất định (thường là100 millisecondes), một ngắt đồng hồ được phát sinh, và quyền điều khiển được chuyển cho hệ điều hành Hệ điều hành đặt bit reference của mỗi trang vào bit cao nhất trong 8 bit phụ trợ củatrang đó bằng cách đẩy các bit khác sang phải 1 vị trí, bỏ luôn bit thấp nhất Như vậy 8 bit thêm vào này sẽ lư u trữ tình hình truy xuất đến trang trong 8 chu kỳ cuối cùng Nếu gía trị của 8 bit là 00000000, thì trang tương ứng đã không được dùng đến suốt 8 chu kỳ cuối cùng, ngược lại nếu nó được dùng đến ít nhất 1 lần trong mỗi chu kỳ, thì 8 bit phụ trợ sẽ là 11111111 Một trang mà 8 bit phụ trợ có giá trị11000100 sẽ được truy xuất gần thời điểm hiện tại hơn trang có 8 bit phụ trợ là 01110111 Nếu xét 8 bit phụ trợ này như một số nguyên không dấu, thì trang LRU là trang có số phụ trợ nhỏ nhất

Ví dụ :

Do đó, số lượng các bit lịch sử có thể thay đổi tùy theo phần cứng, và phải được chọn sao cho việc cập nhật là nhanh nhất có thể

LRU là thuật toán cache được sử dụng rộng rãi nhất, bởi vì LRU coi

các trang có chi phí (cost) và kích thước không đổi, mục đích của LRU là tối

Trang 36

ưu hoá tỷ lệ hit Ưu điểm của LRU là khai thác được đặc tính cục bộ của truy nhập Nhược điểm của LRU là bỏ qua sự thay đổi về chi phí và kích thước của trang, cũng như LRU không tính đến tần suất của các truy nhập

watermark cao thì giá trị ngưỡng là nhỏ hơn

với thuộc tính của từng đối tượng lưu trữ được tóm tắt trong Bảng 2.1

Bảng 2.1 Các thuộc tính hữu ích nhất của mỗi đối tượng lưu trữ i

thời gian đối tượng được lưu trữ thời gian sửa đổi cuối cùng của đối tượng

số lần truy cập

đối tượng nhận dạng bản gốc (Ví dụ như địa chỉ URL của nó)

Định nghĩa 2.1 Mức độ staleness (cũ) của các đối tượng lưu trữ được

xác định bởi công thức:

Trang 37

trong bộ nhớ cache Điều này luôn đúng khi StalRatio i  0 và hiện tại -ci> 0

Giá trị StalRatio i càng giảm thì đối tượng i càng cũ, từ đó suy ra nó đã ở lại

trong bộ nhớ cache khoảng thời gian dài hơn

Định nghĩa 2.2 Tần số động dynamic frequency của các đối tượng lưu

trữ

i

f 1

khi đó f i là thước đo để đánh giá tần suất truy cập của một đối tượng (Bảng

2.1) Đối tượng nào lớn hơn giá trị của DynFreq i là đối tượng được truy cập

của kết nối đến server s RetRate i đại diện cho chi phí liên quan khi lấy một

đối tượng từ máy chủ lưu trữ ban đầu của nó

Định nghĩa 4: Hàm hoạt động action funtion

trong đó lat s là độ trễ để mở một kết nối đến server s và band s là băng thông

1 trong các trường hợp khác

Tóm tắt bài toán: nếu là số lượng các đối tượng trong bộ nhớ cache

và C là tổng công suất của các khu vực bộ nhớ cache, thì bài toán thay thế cache là:

Trang 38

MAXIMIZE N  

1 i

i

i i

i

tRate Re

DynFreq StalRatio

DynFreq

được sử dụng như là một yếu tố trọng lượng kết hợp với từng đối tượng được lưu trữ, vì nó liên quan tần suất truy cập của đối tượng

và tốc độ thu hồi của nó

Thay thế bộ nhớ cache LRU dựa trên luật Temporal Locality Rule trong đó các đối tượng Web mà không được nhắc đến trong thời gian gần đây, thì dự kiến sẽ không được tham chiếu một lần nữa trong tương lai gần LRU được

sử dụng rộng rãi trong các cơ sở dữ liệu và dựa trên Web ứng dụng Ví dụ, trong Squid, LRU được sử dụng cùng với một số thông số nhất định như một watermark thấp và một watermark cao để kiểm soát mức độ sử dụng bộ nhớ cache Khi mức độ sử dụng đĩa bộ nhớ cache gần với các watermark thấp (thường được coi là 90%) thì các đối tượng Web được thanh lọc từ bộ nhớ toàn nội dung bộ nhớ cache Ngưỡng này là tự động đánh giá dựa trên kích thước bộ nhớ cache hiện hành, và dựa trên watermarks thấp và cao Khi kích thước bộ nhớ cache hiện tại là gần hơn với watermark thấp thì giá trị ngưỡng

là lớn hơn, ngược lại khi kích thước bộ nhớ cache hiện tại là gần hơn với cache sẽ lưu trữ ít hơn, trong khi đó khi mức độ sử dụng đĩa gần với các watermark cao (thường được coi là 95%) thì bộ nhớ cache sẽ thay thế các đối tượng Web đó nghĩa là các đối tượng Web lọc từ bộ nhớ cache đó được lưu trữ nhiều hơn Có một số đối tượng nên được xóa khỏi bộ nhớ cache

Định nghĩa 2.5 ( Ngưỡng LRU): Một giá trị được xác định là ngưỡng

cần thiết để ước lượng thời gian dự kiến cần thiết khi có thể thay thế hoàn

Mô tả thuật toán: thay trang lâu nhất chưa được truy xuất

Lỗi trang: xảy ra khi truy xuất đến một trang không có trong bộ nhớ hay địa chỉ không hợp lệ Chỉ xét trong trường hợp trang không có trong bộ nhớ (bộ nhớ chính)

Quá trình truy xuất trang:

Trang 39

- Bước 6: Truy xuất lại bộ nhớ phụ

policy = new RemovalPolicy;

/* Initialize the URL data */

Trang 40

/* Allocate the needed structures */

lru_data = (LruPolicyData *)xcalloc(1, sizeof(*lru_data));

Hình 2.4 Thuật toán thay thế cache LRU

2.5 Các thuật toán dựa trên LRU trong Web caching

Cache đã được giới thiệu và áp dụng trong nguyên mẫu và hệ thống thông tin dựa trên Web thương mại để giảm tổng thể băng thông và khả năng gia tăng lỗi của hệ thống Bài viết này trình bày một cách theo dõi các thuật toán thay thế bộ nhớ cache Web dựa trên ý tưởng thuật toán Least Recently Used(LRU) Luận văn trình bày và mở rộng thuật toán LRU thông thường bằng cách xem xét các tham chiếu đến các đối tượng Web như một thông số quan trọng cho việc thay thế nội dung bộ nhớ cache Các thuật toán được xác nhận và thử nghiệm trên phần mềm Squid proxy cài đặt trên server Các thông

số của Cache và tỷ lệ byte hit rate cho thấy rằng các thuật toán thay thế đã giúp cải thiện nội dung bộ nhớ cache

Ngày đăng: 09/12/2016, 15:32

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Vị trí của bộ nhớ Web cache - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 1.1. Vị trí của bộ nhớ Web cache (Trang 15)
Hình 1.3. Vị trí đặt origin server  cache - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 1.3. Vị trí đặt origin server cache (Trang 16)
Bảng 2.1. Các thuộc tính hữu ích nhất của mỗi  đối tượng lưu trữ i - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Bảng 2.1. Các thuộc tính hữu ích nhất của mỗi đối tượng lưu trữ i (Trang 36)
Hình 2.4. Thuật toán thay thế cache LRU - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 2.4. Thuật toán thay thế cache LRU (Trang 40)
Hình 2.5. Thuật toán thay thế cache HLRU - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 2.5. Thuật toán thay thế cache HLRU (Trang 44)
Bảng 2.2. Cấu trúc dữ liệu chính của LRU và HLRU - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Bảng 2.2. Cấu trúc dữ liệu chính của LRU và HLRU (Trang 45)
Hình 3.1. Mô hình thử nghiệm - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.1. Mô hình thử nghiệm (Trang 69)
Hình 3.2. Giải nén thư mục nguồn - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.2. Giải nén thư mục nguồn (Trang 70)
Hình 3.4.  Bảy đường dẫn đặt Squid - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.4. Bảy đường dẫn đặt Squid (Trang 71)
Hình 3.5.  Biên dịch mã nguồn - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.5. Biên dịch mã nguồn (Trang 72)
Hình 3.7.  Giao diện chạy Squid - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.7. Giao diện chạy Squid (Trang 74)
Hình 3.8.  Giao diện chạy Squidclient - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.8. Giao diện chạy Squidclient (Trang 75)
Hình 3.9. Tỷ lệ Cache hit; Byte hit với kích thước cache - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.9. Tỷ lệ Cache hit; Byte hit với kích thước cache (Trang 77)
Hình 3.10  mô tả các tỷ lệ cache hit và byte hit trong thuật toán LRU - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.10 mô tả các tỷ lệ cache hit và byte hit trong thuật toán LRU (Trang 78)
Hình 3.10. Cache hit và Byte hit, cùng số yêu cầu - Nghiên cứu một số thuật toán cho web caching và ứng dụng
Hình 3.10. Cache hit và Byte hit, cùng số yêu cầu (Trang 79)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w