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 1LUẬ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 2LỜ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 3Tô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 4MỤ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 53.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 6DANH 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 7Hì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 8DANH 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 9thâ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 10Trê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 11Tiề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 121.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 13mọ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 14kiệ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 15Hì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 16Cá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 171.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 18Chú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 19Hì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 20Cache 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 21Chú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 22caching 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 23Hì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 241.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 25Hì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 26bă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 28CHƯƠ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 29thố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 32dung 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 33Thuậ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 34Thuậ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 35Tiế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 37trong 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 38MAXIMIZE 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