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 413 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

Nội dung

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Nguyễn Quang Thành NGHIÊN CỨU MỘT SỐ THUẬT TOÁN CHO WEB CACHING VÀ ỨNG DỤNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 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 i LỜI CAM ĐOAN Luận văn kết nghiên cứu tổng hợp kiến thức mà học viên thu thập trình học tập trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên, hướng dẫn, giúp đỡ thầy cô bạn bè đồng nghiệp, đặc biệt hướng dẫn, giúp đỡ PGS.TS Nguyễn Văn Tam Tôi xin cam đoan luận văn sản phẩm chép tài liệu khoa học Học viên NGUYỄN QUANG THÀNH ii LỜI CẢM ƠN Đầu tiên xin gửi lời cảm ơn sâu sắc tới PGS.TS Nguyễn Văn Tam, người hướng dẫn khoa học, tận tình bảo, giúp đỡ thực luận văn Tôi xin cảm ơn thầy cô trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên giảng dạy truyền đạt kiến thức cho Cuối cùng, xin cảm ơn người thân bạn bè chia sẻ, gúp đỡ hoàn thành luận văn Mặc dù cố gắng hoàn thành luận văn với tất nỗ lực thân, luận văn thiếu sót Kính mong nhận ý kiến đóng góp quý Thầy, Cô bạn bè đồng nghiệp Tôi xin chân thành cảm ơn! Việt trì ngày 10 tháng 05 năm 2016 Nguyễn Quang Thành iii 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 CHƯƠNG 1: TỔNG QUAN VỀ WEB CACHING 1.1 Giới thiệu web caching 1.1.1 Vấn đề tải truy cập Internet web caching 1.1.2 Định nghĩa web Caching 1.1.3 Một số khái niệm Caching 1.2 Các kiến trúc web Caching 1.2.1 Kiến trúc cache phân tầng phân tán 1.2.2 Kiến trúc kết hợp (Caching lai) 14 1.3 Ưu nhược điểm Web caching 18 1.4 Kết luận chương 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 trang 23 2.4.2 Các thuật toán thay trang 24 2.4.3 Vấn đề thay Cache 28 2.5 Các thuật toán dựa LRU Web caching 32 2.6 Kết luận chương 38 CHƯƠNG 3: KỸ THUẬT CACHE TRONG WEB PROXY 39 3.1 Cơ cache Squid 39 3.1.1 Lệnh cache_dir 40 3.1.2 Thuật toán thay 43 3.1.3 Loại bỏ đối tượng Cache 45 3.2 Điều khiển cache 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 iv 3.2.5 Hàm quản lý nhớ sử dụng 57 3.2.6 Kỹ thuật quản lý nhớ 58 3.2.7 Mô tả file sử dụng Squid 58 3.2.8 Cấu trúc liệu Squid: 60 3.3 Mô hình thử nghiệm đánh giá kết 61 3.3.1 Cài đặt Squid 61 3.3.2 Thống kê, vẽ đồ thị 67 3.3.3 Đánh giá kết 71 3.4 Kết luận chương 71 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72 TÀI LIỆU THAM KHẢO 73 PHỤ LỤC v DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT Kí hiệu Tên đầy đủ ISP Internet Service Provider ARPANET Advanced Research Projects Agency Network NSFNET National Science Foundation Network WAN Wide Area Network CPU Central Processing Unit LRU Least recently used LFU - DA Least Frequently Used with Dynamic Aging HLRU History LRU GDS Greedy Dual Size CE Cost Effective DNS Domain Name System WWW World Wide Web vi DANH MỤC CÁC HÌNH VẼ Hình 1.1 Vị trí nhớ Web cache Hình 1.2 Sơ đồ biểu diễn Proxy server cache Hình 1.3 Vị trí đặt origin server cache Hình 1.4 Mô hình phân cấp ISP Hình 1.5 Mô hình phân 10 Hình 1.6 Sơ đồ đầy đủ kiến trúc phân tầng Web Caching ISP 11 Hình 1.7 Sơ đồ kiến trúc phân tán Web caching ISP 11 Hình 1.8 Sơ đồ Hybrid Web Caching ISP 14 Hình 1.9 Thời gian kết nối trung bình cho toàn 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 Caching phân cấp, caching phấn tán caching hỗn hợp 15 Hình 1.11 Thời gian truyền N trang Web 16 Hình 1.12 Thời gian truyền cho caching lai với số đệm tối ưu k, ρ=0,8 17 Hình 2.1 Cấu trúc phần tử bảng trang 24 Hình 2.2 Lược đồ thay nội dung cache thuật toán LRU 25 Hình 2.3 Cấu trúc phần tử bảng trang 27 Hình 2.4 Thuật toán thay cache LRU 32 Hình 2.5 Thuật toán thay 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 Byte hit, số yêu cầu 71 vii DANH MỤC CÁC BẢNG Bảng 2.1 Các thuộc tính hữu ích đối tượng lưu trữ i 28 Bảng 2.2 Cấu trúc liệu LRU HLRU 37 MỞ ĐẦU I LÝ DO CHỌN ĐỀ TÀI Ngày nay, World Wide Web (WWW) ngày phát triển sâu vào ngõ ngách sống đại, phương tiện truy cập mạng đơn giản, thân thiện với người sử dụng Việc sử dụng dịch vụ Web tăng theo cấp số mũ, lưu lượng WWW mạng Internet quốc gia quốc tế tăng đột biến Và Việt Nam không nằm vòng xoáy lốc WWW, cổng giao tiếp điện tử, ứng dụng phát triển Trong tương lai, ứng dụng phát triển phát triển hạ tầng mạng máy tính đòi hỏi tảng công nghệ thông tin ngày cao Tuy nhiên để có điều vấn đề đơn giản Hiện mạng máy tính Việt Nam ngày phát triển, nhiên với điều kiện nước ta, sở vật chất hạ tầng mạng máy tính thấp Chất lượng dịch vụ thời gian đáp ứng cải thiện cách giảm tải cho mạng, số phương pháp sử dụng kỹ thuật Webcaching Kỹ thuật Web caching đời nâng cao hiệu việc thực hiên tăng tố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 hạ tầng mạng sở, lựa chọn đề tài: “Nghiên cứu số thuật toán cho Web Caching ứng dụng” Luận văn trước tiên nghiên cứu số thuật toán Web Caching Trên sở đó, luận văn nghiên cứu trình bày thuật toán LRU phần mềm Squid proxy để nâng cao hiệu ứng dụng WWW hệ thống Cuối chương trình thử nghiệm đánh giá kết thuật toán LRU Squid proxy 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 thuật toán Web Caching ứng dụng phương pháp Trên sở nghiên cứu, tìm hiểu lý thuyết thuật toán LRU thử nghiệm Web caching sử dụng thuật toán LRU  Đối tượng phạm vi nghiên cứu - Tìm hiểu xây dựng thuật toán LRU 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 đối chứng qua chương trình thử nghiệm 70 kích thước nhớ cache Trong trường hợp đặc biệt, hình 3.9 a trình bày tỷ lệ cache hit cho kích thước nhớ cache 100; 150; … ; 300 MBytes Khi tỷ lệ nhớ cache có đỉnh gần với giá trị đỉnh kích thước nhớ cache tăng lên Điều giải thích thực tế kích thước nhớ cache lớn, cần phải thay kể từ có thêm không gian để lưu trữ đối tượng cache máy chủ cache "đủ khả năng" để chứa chúng có hành động thay Hình 3.9b mô tả tỷ lệ byte hit cho thuật toán thay nhớ cache ý kích thước nhớ cache Tỷ lệ byte hit theo góc nghiêng tương tự tỷ lệ cache hit tương ứng, chúng giá trị hit cao tỷ lệ cache hit Ta có đường cong mượt mà kích thước nhớ cache tăng lên Hình 3.10 mô tả tỷ lệ cache hit byte hit thuật toán LRU với số lượng yêu cầu có liên quan Cụ thể , Hình 3.10 a trình bày tỷ lệ cache hit cho nhớ cache có 1000; 2000; ; 5000 yêu cầu Thuật toán LRU có số truy cập nhớ cache tương đối tốt Điều quan trọng tất phương pháp tiếp cận cho thấy kết tốt số lượng yêu cầu tăng tỷ lệ cache hit không nhận tỷ lệ hit đáng kể khoảng gần 70% a 71 b Hình 3.10 Cache hit Byte hit, số yêu cầu 3.3.3 Đánh giá kết Các kết thực nghiệm cho thấy thuật toán LRU thi hành tốt toán thay cache với thời gian hợp lý Khi kích thước cache lớn tỷ lệ cache hit byte hit cao Khi số yêu cầu nhiều tỷ lệ cache hit byte hit cao 3.4 Kết luận chương Chương trình bày kĩ thuật Cache Web Proxy, thực phần mềm Squid Mô hình thử nghiệm thiết lập sau: - Cấu hình Browser (có thể FireFox) truy nhập Web qua Proxy Squid (10.0.0.1, port: 3128) thực kết nối lấy trang Web từ internet - Chạy Proxy squid (/usr/local/squid/sbin/squid) - Chạy squidclient (/usr/local/squid/bin/squidclient mgr:info) - Thay đổi kích thước cache, thống kê, đánh giá Các kết thực nghiệm cho thấy thuật toán LRU thi hành thành công toán thay cache với thời gian hợp lý 72 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Luận văn nghiên cứu đạt kết sau:  Tìm hiểu kiến trúc phân tán phân cấp Web caching Phân tích thông số thời gian kết nối, thời gian truyền, trễ tổng thể băng thông hai kiến trúc  Nghiên cứu thuật toán LFU-DA, GDS, CE Thuật toán Least recently used LRU Phân tích chi tiết thiết kế mức lưu đồ thuật toán cho LRU HLRU  Thực giải pháp đánh giá hiệu thuật toán Web caching qua phần mềm mã nguồn mở Proxy Squid Các thử nghiệm cho thấy phương pháp tiếp cận LRU thông thường thông qua proxy có sẵn tương đối tốt Kết cách tiếp cận LRU cho tỷ lệ cache hit hit byte hợp lý khả quan Hướng phát triển Nếu có điều kiện nghiên cứu sâu hơn, mở rộng thử nghiệm chương trình để tích hợp thuật toán thay nhớ cache phổ biến Cụ thể hơn, chương trình khác thuật toán HLRU, MFU, RR giới thiệu việc thay nhớ cache đề xuất để nghiên cứu tác động hiệu việc thay nội dung Web cache Lựa chọn thuật toán Web caching thích hợp, tích hợp với phần mềm mã nguồn mở Proxy Squid để giảm trễ truy nhập băng thông, triển khai cho mạng Cơ quan, Doanh nghiệp 73 TÀI LIỆU THAM KHẢO Tiếng Anh [1] A Vakali, A Genetic Algorithm scheme for Web Replication and Caching, Proceedings of the 3rd IMACS/IEEE International Conference on Circuits, Systems, Communications and Computers, CSCC'99, World Scientic and Engineering So-ciety Press, Athens, Greece, Jul 1999 [2] A I Vakali, Department of Informatics, Aristotle University of Thessaloniki, Greece, 2000 [3] H.T Chen, Pre-fetching and Re-fetching in Web caching systems: Algorithms and Simulation, Master Thesis, TRENT UNIVESITY, Peterborough, Ontario, Canada, 2008 [4] H.k Lee, B.S An, and E.J Kim, “Adaptive Prefetching Scheme Using Web Log Mining in Cluster-Based Web Systems”, IEEE International Conference on Web Services (ICWS), pp.903-910, 2009 [5] O'Reilly, Squid: The Definitive Guide, ISBN: 0-596-00162-2, Pages: 496, January 2004 [6] U Acharjee, Personalized and Artificial Intelligence Web Caching and Prefetching.Master thesis, Universityof Ottawa, Canada, 2006 Waleed Ali [7] Waleed Ali, Siti Mariyam Shamsuddin, and Abdul Samad Ismail, A Survey of Web Caching and Prefetching, Soft Computing Research Group, Faculty of Computer Science and Information System, Universiti Teknologi Malaysia, Appl., Vol 3, No 1, March 2011 Website [8] http://www.vnnic.vn, Trung tâm Internet Việt Nam, Bộ thông tin truyền thông PHỤ ;LỤC/* REMOVALPOLICYCREATE createRemovalPolicy_lru; struct LruPolicyData { void setPolicyNode (StoreEntry *, void *) const; RemovalPolicy *policy; dlink_list list; int count; int nwalkers; enum heap_entry_type { TYPE_UNKNOWN TYPE_STORE_MEM = 0, TYPE_STORE_ENTRY, } type; }; /* Hack to avoid having to remember the RemovalPolicyNode location * Needed by the purge walker to clear the policy information */ static enum LruPolicyData::heap_entry_type repl_guessType(StoreEntry * entry, RemovalPolicyNode * node) { if (node == &entry->repl) return LruPolicyData::TYPE_STORE_ENTRY; if (entry->mem_obj && node == &entry->mem_obj->repl) return LruPolicyData::TYPE_STORE_MEM; fatal("Heap Replacement: Unknown StoreEntry node type"); return LruPolicyData::TYPE_UNKNOWN; } void LruPolicyData::setPolicyNode (StoreEntry *entry, void *value) const { switch (type) { case TYPE_STORE_ENTRY: entry->repl.data = value; break ; case TYPE_STORE_MEM: entry->mem_obj->repl.data = value ; break ; default: break; } } typedef struct _LruNode LruNode; struct _LruNode { /* Note: the dlink_node MUST be the first member of the LruNode * structure This member is later pointer typecasted to LruNode * */ dlink_node node; }; static MemAllocator *lru_node_pool = NULL; static int nr_lru_policies = 0; static void lru_add(RemovalPolicy * policy, StoreEntry * entry, RemovalPolicyNode * node) { LruPolicyData *lru = (LruPolicyData *)policy->_data; LruNode *lru_node; assert(!node->data); node->data = lru_node = (LruNode *)lru_node_pool->alloc(); dlinkAddTail(entry, &lru_node->node, &lru->list); lru->count += 1; if (!lru->type) lru->type = repl_guessType(entry, node); } static void lru_remove(RemovalPolicy * policy, StoreEntry * entry, RemovalPolicyNode * node) { LruPolicyData *lru = (LruPolicyData *)policy->_data; LruNode *lru_node = (LruNode *)node->data; if (!lru_node) return; /* * It seems to be possible for an entry to exist in the hash * but not be in the LRU list, so check for that case rather * than suffer a NULL pointer access */ if (NULL == lru_node->node.data) return; assert(lru_node->node.data == entry); node->data = NULL; dlinkDelete(&lru_node->node, &lru->list); lru_node_pool->freeOne(lru_node); lru->count -= 1; } static void lru_referenced(RemovalPolicy * policy, const StoreEntry * entry, RemovalPolicyNode * node) { LruPolicyData *lru = (LruPolicyData *)policy->_data; LruNode *lru_node = (LruNode *)node->data; if (!lru_node) return; dlinkDelete(&lru_node->node, &lru->list); dlinkAddTail((void *) entry, &lru_node->node, &lru->list); } /** RemovalPolicyWalker **/ typedef struct _LruWalkData LruWalkData; struct _LruWalkData { LruNode *current; }; static const StoreEntry * lru_walkNext(RemovalPolicyWalker * walker) { LruWalkData *lru_walk = (LruWalkData *)walker->_data; LruNode *lru_node = lru_walk->current; if (!lru_node) return NULL; lru_walk->current = (LruNode *) lru_node->node.next; return (StoreEntry *) lru_node->node.data; } static void lru_walkDone(RemovalPolicyWalker * walker) { RemovalPolicy *policy = walker->_policy; LruPolicyData *lru = (LruPolicyData *)policy->_data; assert(strcmp(policy->_type, "lru") == 0); assert(lru->nwalkers > 0); lru->nwalkers -= 1; safe_free(walker->_data); delete walker; } static RemovalPolicyWalker * lru_walkInit(RemovalPolicy * policy) { LruPolicyData *lru = (LruPolicyData *)policy->_data; RemovalPolicyWalker *walker; LruWalkData *lru_walk; lru->nwalkers += 1; walker = new RemovalPolicyWalker; lru_walk = (LruWalkData *)xcalloc(1, sizeof(*lru_walk)); walker->_policy = policy; walker->_data = lru_walk; walker->Next = lru_walkNext; walker->Done = lru_walkDone; lru_walk->current = (LruNode *) lru->list.head; return walker; } /** RemovalPurgeWalker **/ typedef struct _LruPurgeData LruPurgeData; struct _LruPurgeData { LruNode *current; LruNode *start; }; static StoreEntry * lru_purgeNext(RemovalPurgeWalker * walker) { LruPurgeData *lru_walker = (LruPurgeData *)walker->_data; RemovalPolicy *policy = walker->_policy; LruPolicyData *lru = (LruPolicyData *)policy->_data; LruNode *lru_node; StoreEntry *entry; try_again: lru_node = lru_walker->current; if (!lru_node || walker->scanned >= walker->max_scan) return NULL; walker->scanned += 1; lru_walker->current = (LruNode *) lru_node->node.next; if (lru_walker->current == lru_walker->start) { /* Last node found */ lru_walker->current = NULL; } entry = (StoreEntry *) lru_node->node.data; dlinkDelete(&lru_node->node, &lru->list); if (entry->locked()) { /* Shit, it is locked we can't return this one */ ++ walker->locked; dlinkAddTail(entry, &lru_node->node, &lru->list); goto try_again; } lru_node_pool->freeOne(lru_node); lru->count -= 1; lru->setPolicyNode(entry, NULL); return entry; } static void lru_purgeDone(RemovalPurgeWalker * walker) { RemovalPolicy *policy = walker->_policy; LruPolicyData *lru = (LruPolicyData *)policy->_data; assert(strcmp(policy->_type, "lru") == 0); assert(lru->nwalkers > 0); lru->nwalkers -= 1; safe_free(walker->_data); delete walker; } static RemovalPurgeWalker * lru_purgeInit(RemovalPolicy * policy, int max_scan) { LruPolicyData *lru = (LruPolicyData *)policy->_data; RemovalPurgeWalker *walker; LruPurgeData *lru_walk; lru->nwalkers += 1; walker = new RemovalPurgeWalker; lru_walk = (LruPurgeData *)xcalloc(1, sizeof(*lru_walk)); walker->_policy = policy; walker->_data = lru_walk; walker->max_scan = max_scan; walker->Next = lru_purgeNext; walker->Done = lru_purgeDone; lru_walk->start = lru_walk->current = (LruNode *) lru->list.head; return walker; } static void lru_stats(RemovalPolicy * policy, StoreEntry * sentry) { LruPolicyData *lru = (LruPolicyData *)policy->_data; LruNode *lru_node = (LruNode *) lru->list.head; again: if (lru_node) { StoreEntry *entry = (StoreEntry *) lru_node->node.data; if (entry->locked()) { lru_node = (LruNode *) lru_node->node.next; goto again; } storeAppendPrintf(sentry, "LRU reference age: %.2f days\n", (double) (squid_curtime - entry->lastref) / (double) (24 * 60 * 60)); } } static void lru_free(RemovalPolicy * policy) { LruPolicyData *lru = (LruPolicyData *)policy->_data; /* Make some verification of the policy state */ assert(strcmp(policy->_type, "lru") == 0); assert(lru->nwalkers); assert(lru->count); /* Ok, time to destroy this policy */ safe_free(lru); memset(policy, 0, sizeof(*policy)); delete policy; } RemovalPolicy * createRemovalPolicy_lru(wordlist * args) { RemovalPolicy *policy; LruPolicyData *lru_data; /* no arguments expected or understood */ assert(!args); /* Initialize */ if (!lru_node_pool) { /* Must be chunked */ lru_node_pool = memPoolCreate("LRU policy node", sizeof(LruNode)); lru_node_pool->setChunkSize(512 * 1024); } /* Allocate the needed structures */ lru_data = (LruPolicyData *)xcalloc(1, sizeof(*lru_data)); policy = new RemovalPolicy; /* Initialize the URL data */ lru_data->policy = policy; /* Populate the policy structure */ policy->_type = "lru"; policy->_data = lru_data; policy->Free = lru_free; policy->Add = lru_add; policy->Remove = lru_remove; policy->Referenced = lru_referenced; policy->Dereferenced = lru_referenced; policy->WalkInit = lru_walkInit; policy->PurgeInit = lru_purgeInit; policy->Stats = lru_stats; /* Increase policy usage count */ nr_lru_policies += 0; return policy; } [...]... 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 19 băng thông, và giữ cho các như cầu về băng thông hạ xuống và dễ dàng quản lý c Web caching làm giảm tải trên máy chủ gốc: một số yêu cầu do server xử lý Đồ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. .. 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 20 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ế... sử dụng Sử dụng các hệ thống Web Caching: Ngày nay, World Wide Web (WWW) ngày càng phát triển đi sâu vào 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. .. 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ủ... 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 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 đó,... để 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. .. 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 21 cache truyền thống như CPU và hệ thống bộ nhớ ảo, nhưng họ không phải là hiệu quả trong lĩnh vực Web caching Các cách tiếp cận quản lý bộ nhớ cache đơn giản nhất và phổ biến nhất là thuật toán Least... 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. .. 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 ... muốn nghiên cứu hạ tầng mạng sở, lựa chọn đề tài: Nghiên cứu số thuật toán cho Web Caching ứng dụng Luận văn trước tiên nghiên cứu số thuật toán Web Caching Trên sở đó, luận văn nghiên cứu trình... TƯỢNG, PHẠM VI NGHIÊN CỨU  Mục tiêu Nắm bắt thuật toán Web Caching ứng dụng phương pháp 2 Trên sở nghiên cứu, tìm hiểu lý thuyết thuật toán LRU thử nghiệm Web caching sử dụng thuật toán LRU  Đối... làm giảm băng thông sử dụng mạng, giảm tải máy chủ gốc, đồng thời làm cho web kinh tế tối ưu 20 CHƯƠNG 2: MỘT SỐ THUẬT TOÁN WEB CACHING Thuật toán nhớ đệm, hay thuật toán thay mô tả phân tích

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w