Đăng ký Đăng nhập
Trang chủ Nghiên cứu thử nghiệm giải pháp cân bằng tải cho hệ quản trị cơ sở dữ liệu MySQL...

Tài liệu Nghiên cứu thử nghiệm giải pháp cân bằng tải cho hệ quản trị cơ sở dữ liệu MySQL với MySQL Proxy

.PDF
94
367
77

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Trần Thị Giang NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ Thông tin HÀ NỘI – 2012 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Trần Thị Giang NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ Thông tin Cán bộ hƣớng dẫn: TS Nguyễn Hải Châu HÀ NỘI – 2012 VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY Tran Thi Giang RESEARCH INTO EXPERIMENT OF LOAD BALANCING SOLUTION FOR MYSQL DATABASE MANAGEMENT SYSTEM WITH MYSQL PROXY Major: Information technology Supervisor: Nguyen Hai Chau, PhD HA NOI – 2012 LỜI CẢM ƠN Lời đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Tiến sĩ Nguyễn Hải Châu, ngƣời đã tận tình hƣớng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện khóa luận tốt nghiệp. Tôi chân thành cảm ơn các thầy, cô trong bộ môn Hệ thống thông tin đã tạo điều kiện thuận lợi để tôi tiến hành thực nghiệm khóa luận của mình. Tôi cũng xin gửi lời cảm ơn đến tất cả các thầy cô trong trƣờng Đại học Công nghệ đã cho tôi một môi trƣờng rất tốt để học tập và nghiên cứu. Các thầy cô đã giảng dạy và cho tôi những kiến thức quý báu, làm nền tảng để tôi hoàn thành khóa luận cũng nhƣ công việc trong tƣơng lai. Tôi cũng xin gửi lời tri ân tới các bạn trong lớp K53CC và K53CLC đã luôn bên cạnh, ủng hộ và giúp đỡ tôi trong suốt quá trình học tập tại trƣờng. Cuối cùng, tôi muốn gửi lời cảm ơn vô hạn tới gia đình và bạn bè – những ngƣời thân yêu luôn ở bên, khuyến khích và động viên tôi trong cuộc sống cũng nhƣ trong học tập. Tôi xin chân thành cảm ơn. Hà nội, tháng 5 năm 2012 Sinh viên Trần Thị Giang NGHIÊN CỨU THỬ NGHIỆM GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY Trần Thị Giang Khóa QH-2008-I/CQ, ngành Công nghệ thông tin Tóm tắt Khóa luận tốt nghiệp: Sự bùng nổ của internet trong những năm gần đây khiến số lƣợng ngƣời dùng truy cập qua internet đến các máy chủ cơ sở dữ liệu ngày càng tăng mạnh. Với hàng triệu lƣợt truy cập mỗi ngày thì đòi hỏi hệ thống máy chủ cơ sở dữ liệu phải cực kỳ mạnh mẽ, nếu không máy chủ sẽ bị quá tải. Một hệ thống máy chủ mạnh mẽ là hệ thống có khả năng đáp ứng đƣợc tất cả các truy vấn của client trong khoảng thời gian nhanh nhất – hệ thống có khả năng cân bằng tải. Bên cạnh khả năng cân bằng tải, thì hệ thống cũng cần có khả năng mở rộng và tính sẵn sàng cao. Ba yếu tố này liên hệ mật thiết với nhau để đảm bảo hệ thống hoạt động ổn định. Nếu một hệ thống mà không đáp ứng đƣợc một trong ba yêu cầu trên thì thảm họa có thể xảy ra bất cứ lúc nào. Điều này gây ra một tổn thất vô cùng nặng nề cho doanh nghiệp. Do vậy, cân bằng tải, khả năng mở rộng và tính sẵn sàng cao quyết định đến yếu tố sống còn của một doanh nghiệp. Đã có rất nhiều giải pháp cân bằng tải đƣợc các nhà nghiên cứu đƣa ra cho các hệ quản trị CSDL. Tuy nhiên nhiều giải pháp không giải quyết đƣợc đầy đủ cả ba yếu tố trên cho hệ thống máy chủ. Vì vậy, khóa luận lựa chọn giải pháp sử dụng MySQL proxy để cân bằng tải cho các máy chủ cơ sở dữ liệu MySQL. MySQL proxy nhận các truy vấn từ phía client, lọc ra các truy vấn để gửi đến các máy chủ phù hợp dựa trên thuật toán cân bằng tải, sau đó nhận dữ liệu từ các máy chủ để trả lại cho khách hàng. Không chỉ đáp ứng đƣợc yêu cầu cân bằng tải, giải pháp này còn đáp ứng đƣợc nhu cầu mở rộng và đảm bảo tính sẵn sàng cao của hệ thống nhờ việc sử dụng phƣơng pháp Replication cho MySQL. Thực nghiệm đƣợc tiến hành với hai mô hình, một mô hình chỉ có hai máy chủ - mô hình với một master và một slave, và một mô hình mở rộng hơn với ba máy chủ – mô hình một master và hai slave. Kết quả thu đƣợc từ các tham số đánh giá tải và hiệu năng của server cho thấy rằng, giải pháp đƣợc kiểm nghiệm là khả quan và áp dụng đƣợc trong thực tế. Từ khóa: MySQL Proxy, cân bằng tải RESEARCH INTO EXPERIMENT OF LOAD BALANCING SOLUTION FOR MYSQL DATABASE MANAGEMENT SYSTEM WITH MYSQL PROXY Tran Thi Giang QH-2008-I/CQ course, Information Technology major Abstract of thesis: In recent years, the boost of internet cause the number of user who access to database server through Internet increase rapidly. With millions of clients access every day, this require server system powerfull, otherwise the system will be overload. A powerfull server system is system can be satisfy all clients requests within the shortest possible time – the system is capable of load balancing. In addition, the system also need scalability and high availability. These three factors combine together closely to ensure stable system operation. If the system is lacks of one factor, disater will happen any time. This cause an extremely heavy loss for businesses. Therefore, load balancing, scalability and high availability factors determine survival of businesses. The researchers in over the world gave a lot of load balancing solutions for database mannagement systems. However, there are some solutions do not satisfy fully three factors above. So the thesis chooses a load balancing solution for MySQL database management system that uses a load balancer, called MySQL Proxy. MySQL Proxy is a program that sits between clients and MySQL servers. All of MySQL Proxy‟s activities based on the Lua scripting language and Load Balancing Algorithms. It receives queries from clients, monitors, analyzes them, passes them to the MySQL server and returns the responses from the MySQL Server to the appropriate client. Not only load balancing, this solution also solves the scalability and high availability problem base on the Replication MySQL method. The experiment based on three models of Replication, the first model there is only one MySQL server, the second model is the simple replication model (one master and one slave), and last model is the master – multi slaves replication model (one master and two slaves). The load parameters assessment and the performance of the servers show that the results is satisfactory and this solution can apply in fact. Keywords: MySQL Proxy, Load balancing LỜI CAM ĐOAN Tôi xin cam đoan giải pháp cân bằng tải hệ quản trị CSDL MySQL sử dụng MySQL Proxy và thực nghiệm đƣợc trình bày trong khóa luận này là do tôi thực hiện dƣới sự hƣớng dẫn và chỉ bảo của Tiến sĩ Nguyễn Hải Châu. Tất cả các tài liệu tham khảo từ các nghiên cứu liên quan đều đƣợc nêu nguồn gốc một cách rõ ràng từ danh mục Tài liệu tham khảo trong khóa luận. trong khóa luận, không có việc sao chép tài liệu, công trình nghiên cứu của ngƣời khác mà không chỉ rõ về tài liệu tham khảo Hà nội, tháng 5 năm 2012 Sinh viên Trần Thị Giang MỤC LỤC MỞ ĐẦU ............................................................................................................................. 1 CHƢƠNG 1: SỰ CẦN THIẾT CỦA VIỆC CÂN BẰNG TẢI TRUY VẤN ĐỌC CHO HỆ QUẢN TRỊ CSDL MYSQL.......................................................................................... 3 1.1. CÁC KIỂU QUÁ TẢI MÁY CHỦ [8] .................................................................... 3 1.1.1. Số lƣợng truy cập hợp lệ đến máy chủ quá lớn................................................ 3 1.1.2. Máy chủ bị tấn công ......................................................................................... 3 1.1.3. Internet ............................................................................................................. 4 1.2. SỰ CẦN THIẾT CỦA VIỆC CÂN BẰNG TẢI CHO CÁC HỆ QUẢN TRỊ CSDL NÓI CHUNG VÀ MYSQL NÓI RIÊNG ................................................................ 5 1.2.1. Sự cần thiết của việc cân bằng tải cho các hệ quản trị nói chung .................... 5 1.2.2. Sự cần thiết của việc cân bằng tải hệ quản trị CSDL MySQL với việc sử dụng bộ cân bằng tải là MySQL Proxy ....................................................................... 6 1.3. MỘT SỐ TIÊU CHÍ ĐÁNH GIÁ TẢI VÀ HIỆU NĂNG CỦA MÁY CHỦ ......... 7 1.3.1. CPU Utilization ................................................................................................. 7 1.3.2. Memory usage ................................................................................................... 8 1.3.3. Thời gian phản hồi ............................................................................................. 8 1.4. XÁC ĐỊNH MỤC TIÊU NGHIÊN CỨU CỦA KHÓA LUẬN LÀ CÁC ỨNG DỤNG QUÁ TẢI TRUY VẤN ĐỌC ................................................................................. 8 CHƢƠNG 2: CÁC GIẢI PHÁP CÂN BẰNG TẢI CHO CÁC HỆ QUẢN TRỊ CSDL. . 10 2.1. CÁC GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL MYSQL ....... 10 2.1.1. Giải pháp sử dụng Replication cơ sở dữ liệu với MySQL Proxy ................... 10 2.1.2. Giải pháp sử dụng Clustering [3] .................................................................... 10 2.2. GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL POSTGRESQL ..... 12 2.2.1. Giải pháp sử dụng Replication cơ sở dữ liệu .................................................. 12 2.2.2. Giải pháp sử dụng Partitioning cơ sở dữ liệu - Cân bằng tải các truy vấn ghi với PL/Proxy.............................................................................................................. 17 2.3. GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL ORACLE .............. 18 2.3.1. Giải pháp cân bằng tải phía client ................................................................... 18 2.3.2. Giải pháp cân bằng tải phía server .................................................................. 19 2.3.3. Giải pháp Oracle Real Application Cluster ..................................................... 19 2.4. GIẢI PHÁP CÂN BẰNG TẢI CHO HỆ QUẢN TRỊ CSDL SQL ....................... 21 2.4.1. Giải pháp sử dụng Replication cơ sở dữ liệu .................................................. 21 2.4.2. Giải pháp Database mirroring ......................................................................... 26 2.4.3. Giải pháp Network Load Balancing ................................................................ 27 2.5. Các thuật toán cân bằng tải .................................................................................... 29 2.5.1. Giải thuật thuật Roun-robin ........................................................................... 29 2.5.2. Hàm băm ........................................................................................................ 30 2.5.3. Giải thuật xác định tổng số kết nối nhỏ nhất ................................................. 32 CHƢƠNG 3: BÀI TOÁN CÂN BẰNG TẢI READ CHO HỆ QUẢN TRỊ CSDL MYSQL VỚI MYSQL PROXY. ...................................................................................... 33 3.1. GIỚI THIỆU VỀ MYSQL PROXY VÀ NGÔN NGỮ KỊCH BẢN LUA............ 33 3.1.1. Giới thiệu về mysql proxy ............................................................................... 33 3.1.2. Giới thiệu về ngôn ngữ kịch bản Lua .............................................................. 34 3.1.3. Nguyên lý hoạt động của MySQL Proxy với ngôn ngữ kịch bản Lua [25] .... 35 3.2. GIỚI THIỆU VỀ GIẢI PHÁP REPLICATION TRONG HỆ QUẢN TRỊ CSDL MYSQL ............................................................................................................................. 37 3.3. GIỚI THIỆU VỀ CÔNG CỤ MYSQLSLAP ........................................................ 42 3.4. PHÁT BIỂU BÀI TOÁN ....................................................................................... 43 3.5. MÔ HÌNH GIẢI QUYẾT BÀI TOÁN .................................................................. 44 3.4.1. Mô hình MySQL Proxy – một master – một slave ......................................... 44 3.4.2. Mô hình MySQL Proxy – một master – multi slave ....................................... 44 CHƢƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ ............................................................. 46 4.1. MÔI TRƢỜNG THỰC NGHIỆM ......................................................................... 46 4.2. TIẾN HÀNH THỰC NGHIỆM ............................................................................. 46 4.2.1. Cài đặt MySQL Proxy ..................................................................................... 46 4.2.2. Cấu hình cho giải pháp replication trong hệ quản trị CSDL MySQL [7] ....... 49 4.2.3. Kịch bản Lua ................................................................................................... 51 4.2.4. Thử nghiệm...................................................................................................... 53 4.3. PHÂN TÍCH, ĐÁNH GIÁ KẾT QUẢ THỰC NGHIỆM ..................................... 55 4.3.1. Client gửi truy vấn trực tiếp đến máy chủ MySQL ......................................... 55 4.3.2. Mô hình MySQL Proxy – một master – một slave ......................................... 56 4.3.3. Mô hình MySQL Proxy – một master – hai slave ........................................... 64 4.4. NHẬN XÉT ........................................................................................................... 74 4.4.1. Khả năng chịu tải của server .......................................................................... 74 4.4.2. Khả năng mở rộng .......................................................................................... 74 4.4.3. Tính sẵn sàng cao ........................................................................................... 75 KẾT LUẬN ....................................................................................................................... 76 DANH SÁCH CÁC BẢNG Bảng 1: Cấu hình các máy ................................................................................................. 46 Bảng 2: Kết quả thời gian chạy các truy vấn trong mô hình chỉ có một MySQL server .. 56 Bảng 3: Kết quả thời gian chạy các truy vấn trong mô hình MySQL Proxy-master-slave ........................................................................................................................................... 64 Bảng 4: Kết quả thời gian chạy các truy vấn trong mô hình MySQL Proxy-master-multi slave ................................................................................................................................... 72 DANH SÁCH CÁC HÌNH VẼ Hình 1: Mô hình PGCluster trong giải pháp cân bằng tải ................................................. 12 Hình 2: Mô hình của Slony-I trong cân bằng tải ............................................................... 14 Hình 3: Mô hình pgpool-II trong cân bằng tải .................................................................. 15 Hình 4: Giải pháp cân bằng tải hệ quản trị CSDL PostgreSQL với PL/Proxy ................. 17 Hình 5: Giải pháp cân bằng tải cho hệ quản trị CSDL Oracle phía client ........................ 18 Hình 6: Giải pháp cân bằng tải phía server cho hệ quản trị CSDL Oracle ....................... 19 Hình 7: Giải pháp cân bằng tải cho hệ quản trị CSDL Oracle Real Application Cluster . 20 Hình 8: Giải pháp Merge replication cân bằng tải cho hệ quản trị CSDL SQL................ 22 Hình 9: Giải pháp Transaction replication cân bằng tải cho hệ quản trị CSDL SQL ....... 24 Hình 10: Giải pháp Log shipping để cân bằng tải cho hệ quản trị CSDL SQL ................ 25 Hình 11: Giải pháp Database Mirroring cân bằng tải cho hệ quản trị CSDL SQL ........... 27 Hình 12: Giải pháp Network load balancing cân bằng tải cho hệ quản trị CSDL SQL .... 29 Hình 13: Các thủ tục cần thực hiện khi client gửi một truy vấn đến server qua MySQL Proxy.................................................................................................................................. 36 Hình 14: Mô hình replication đơn giản master – slave trong MySQL .............................. 39 Hình 15: Mô hình replication master – multi slave trong MySQL ................................... 39 Hình 16: Mô hình master – relay slave trong MySQL ...................................................... 40 Hình 17: Mô hình replication master – master trong MySQL .......................................... 41 Hình 18: Mô hình master-slave replication với MySQL Proxy ........................................ 44 Hình 19: Mô hình master – multi salve replication với MySQL Proxy ............................ 45 Hình 20: Hiệu năng của server trong mô hình chỉ có duy nhất MySQL server ................ 56 Hình 21: Hiệu năng CPU của master ................................................................................ 73 Hình 22: Hiệu năng về Processes ...................................................................................... 73 Hình 23: Hiệu năng trung bình tải ..................................................................................... 74 DANH SÁCH CÁC TỪ VIẾT TẮT STT Từ viết tắt Từ tiếng anh Từ Tiếng Việt 1 CPU Central Processing Unit Đơn vị xử lý trung tâm 2 RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên 3 RAC Real Application Cluster Cụm ứng dụng thực 4 CSDL Database Cơ sở dữ liệu DANH SÁCH CÁC THUẬT NGỮ STT Thuật ngữ Tiếng Anh Thuật ngữ Tiếng Việt 1 Load balance Cân bằng tải 2 Load balancer Bộ cân bằng tải 3 Replication Nhân rộng 4 Database Server Máy chủ cơ sở dữ liệu 5 Web server Máy chủ web 6 Server Máy chủ 7 Client Khách hàng 8 Website Trang web 9 CPU Utilization Sử dụng CPU 10 Memory usage Sử dụng bộ nhớ 11 Cluster Cụm 12 failover Chuyển đổi dự phòng 13 Partitioning Phân mảnh 14 Stored procedure Thủ tục lƣu trữ 15 Real Application Cluster 16 Merge replication Nhân rộng hợp nhất 17 Snapshot Agent Đại lý chụp ảnh 18 Merge Agent Đại lý hợp nhất 19 Publication Sự xuất bản 20 Subscriber Ngƣời mua 21 Publisher Nhà xuất bản 22 Transactional replication Nhân rộng giao dịch 23 Distribution Agent Đại lý phân phối 24 CREATE Tạo 25 UPDATE Cập nhật 26 INSERT Chèn 27 DELETE / DROP Xóa 28 SELECT Chọn 29 Log Reader Agent 30 transaction log 31 Log shipping 32 primary server Máy chủ chính 33 secondary server Máy chủ thứ 34 monitor server Máy chủ theo dõi 35 primary database Cơ sở dữ liệu chính 36 secondary databases Cơ sở dữ liệu thứ 37 Database mirroring Cơ sở dữ liệu phản ánh 38 hot standby server Máy chủ chờ nóng 39 Binary log Bản ghi nhị phân Bản ghi giao dịch MỞ ĐẦU Sự bùng nổ của internet trong những năm gần đây khiến số lƣợng ngƣời dùng truy cập qua internet đến các máy chủ cơ sở dữ liệu ngày càng tăng mạnh. Với hàng triệu lƣợt truy cập mỗi ngày thì đòi hỏi hệ thống máy chủ cơ sở dữ liệu phải cực kỳ mạnh mẽ, nếu không máy chủ sẽ bị quá tải. Một hệ thống máy chủ mạnh mẽ là hệ thống có khả năng đáp ứng đƣợc tất cả các truy vấn của client trong khoảng thời gian nhanh nhất – hệ thống có khả năng cân bằng tải. Bên cạnh khả năng cân bằng tải, thì hệ thống cũng cần có khả năng mở rộng và tính sẵn sàng cao. Ba yếu tố này liên hệ mật thiết với nhau để đảm bảo hệ thống hoạt động ổn định. Nếu một hệ thống mà không đáp ứng đƣợc một trong ba yêu cầu trên thì thảm họa có thể xảy ra bất cứ lúc nào. Điều này gây ra một tổn thất vô cùng nặng nề cho doanh nghiệp. Do vậy, cân bằng tải, khả năng mở rộng và tính sẵn sàng cao quyết định đến yếu tố sống còn của một doanh nghiệp. Đã có rất nhiều phƣơng pháp cân bằng tải đƣợc đƣa ra cho các hệ quản trị CSDL. Tuy nhiên nhiều phƣơng pháp không giải quyết đƣợc đầy đủ cả ba yếu tố trên cho hệ thống máy chủ. Vì vậy, khóa luận đƣa ra phƣơng pháp sử dụng MySQL proxy để cân bằng tải cho các máy chủ cơ sở dữ liệu MySQL. MySQL proxy không chỉ đáp ứng đƣợc yêu cầu cân bằng tải mà còn đáp ứng đƣợc nhu cầu mở rộng và đảm bảo tính sẵn sàng cao của hệ thống nhờ việc sử dụng phƣơng pháp Replication cho MySQL. Do vậy, ý nghĩa thực tiễn của giải pháp này là rất lớn. Ngoài ra, nó còn có ý nghĩa trong việc nghiên cứu và phát triển các giải pháp cân bằng tải tốt hơn khi số lƣợng ngƣời dùng truy cập tăng lên rất nhiều. Do các truy cập đến máy chủ cơ sở dữ liệu chủ yếu là đọc dữ liệu, nên khóa luận tập trung nghiên cứu về giải pháp cân bằng tải cho máy chủ cơ sở dữ liệu MySQL sử dụng MySQL Proxy cho các truy vấn đọc. Chƣơng 1: Trình bày về các nguyên nhân gây quá tải máy chủ, từ đó xác định tính cần thiết của việc cân bằng tải cho các hệ quản trị CSDL nói chung và cho hệ quản trị CSDL MySQL. Chƣơng 1 cũng giới thiệu về các tiêu chí đánh giá tải và hiệu năng của máy chủ. Chƣơng 2: Giới thiệu một số giải pháp cân bằng tải cho các hệ quản trị CSDL: MySQL, PostgreSQL, Oracle và SQL. Trình bày một số thuật toán đƣợc sử dụng trong các giải pháp cân bằng tải. 1 Chƣơng 3: Trình bày bài toán cân bằng tải cho hệ quản trị CSDL MySQL với Load Balancer là MySQL Proxy. Chƣơng này tìm hiểu về giải pháp replication trong hệ quản trị CSDL MySQL, nguyên lý hoạt động của MySQL Proxy, ngôn ngữ kịch bản Lua đƣợc sử dụng để điều khiển các hành động của MySQL Proxy và công cụ mysqlslap để giả lập các client, sinh truy vấn đến các máy chủ. Chƣơng 4: Thực nghiệm và đánh giá. Tiến hành thực nghiệm cân bằng tải các truy đọc cho các máy chủ với hai mô hình MySQL Proxy – một master – một slave và mô hình MySQL Proxy – một master – multi slave. Công cụ đƣợc sử dụng để sinh ra các truy vấn là mysqlslap. Phần kết luận và hƣớng phát triển khóa luận: Tóm lƣợc những điểm chính của khóa luận. Chỉ ra những điểm cần khắc phục, đồng thời đƣa ra hƣớng nghiên cứu trong thời gian tiếp theo. 2 CHƢƠNG 1: SỰ CẦN THIẾT CỦA VIỆC CÂN BẰNG TẢI TRUY VẤN ĐỌC CHO HỆ QUẢN TRỊ CSDL MYSQL 1.1. CÁC KIỂU QUÁ TẢI MÁY CHỦ [8] 1.1.1. Số lƣợng truy cập hợp lệ đến máy chủ quá lớn Trong một khoảng thời gian ngắn có thể có đến hàng nghìn hoặc thậm chí là hành triệu client kết nối đến server. Do vậy, nếu hệ thống server không mạnh thì việc quá tải server là không thể tránh khỏi. Những yêu cầu truy cập từ client đến server đƣợc phân chia thành hai loại: - Truy vấn ghi: các client gửi yêu cầu ghi vào cơ sở dữ liệu của server. Các yêu cầu ghi này là: CREATE (cơ sở dữ liệu, bảng,..), UPDATE (dữ liệu), INSERT (dữ liệu vào bảng) và DELETE (hàng, trƣờng dữ liệu) hay DROP (bảng, cơ sở dữ liệu,...) - Truy vấn đọc: các client gửi yêu cầu đọc một hoặc nhiều đối tƣợng trong cơ sở dữ liệu của server. Các yêu cầu đọc này là: SELECT. Trong số các truy vấn từ client đến server thì phần lớn là các truy vấn đọc. Bởi vì đối với các ứng dụng web thì ngƣời dùng thƣờng yêu cầu hiển thị dữ liệu nhiều hơn là cập nhật dữ liệu. Bên cạnh đó, nếu server đƣợc bảo dƣỡng, hoặc nâng cấp một phần cứng hay một phần mềm bị thất bại thì một tài nguyên nào đó của server không có sẵn. Khi client kết nối đến server và cần dùng tài nguyên này thì nó sẽ phải chờ và với một lƣợng truy cập lớn server sẽ bị quá tải. 1.1.2. Máy chủ bị tấn công a) Tấn công từ chối phân tán dịch vụ (Distributed Denial of Service attacks) Một tấn công từ chối dịch vụ (DoS attack) hay tấn công từ chối phân tán dịch vụ (DDoS attack) là một xâm phạm để làm cho một tài nguyên máy tính hoặc tài nguyên mạng không có sẵn đối với ngƣời sử dụng. Thủ phạm của cuộc tấn công DoS thƣờng nhằm đến mục tiêu là các website hoặc các dịch vụ lƣu trữ trên web server cấu hình cao nhƣ ngân hàng, cổng thanh toán thẻ tín dụng hay thậm chí là cả root namserver. 3 Một phƣơng pháp phổ biến của cuộc tấn công liên quan đến bão hòa server với các yêu cầu thông tin liên lạc bên ngoài. Nó buộc server phải thiết lập lại hoặc tiêu thụ tài nguyên của server để server không thể cung cấp dịch vụ dự định của mình, cản trở các phƣơng tiện truyền thông giao tiếp giữa client với server. Do vậy, server không thể đáp ứng đƣợc các truy vấn hợp lệ của client hoặc đáp ứng rất chậm. Các cuộc tấn công nhƣ vậy thƣờng dẫn đến tình trạng quá tải của server. b) Sâu máy tính (computer worms): Một con sâu máy tính là một phần mềm dộc hại, một chƣơng trình độc hại mà nó có thể tự tái tạo để lây lan ra các máy tính khác. Thông thƣờng, sâu máy tính sử dụng một mạng lƣới máy tính để lây lan. Vì thế, mạng lƣới ấy bị nhiễm sâu và đƣợc kiểm soát bởi tác giả sâu. Sâu máy tính gây ra sự gián đoạn lớn bằng cách làm tăng lƣu lƣợng mạng và các hiệu ứng không mong muốn khác, nó còn có thể xóa các tập tin trên server. c) Viruss XSS Một virus máy tính là một chƣơng trình máy tính có thể tự tái tạo và lây lan từ một máy tính khác. Virus có thể làm tăng nguy cơ lây lan sang máy tính khác bằng cách lây nhiễm các tập tin trên một hệ thống tập tin mạng hoặc một hệ thống tập tin đƣợc truy cập bởi các máy tính khác. Virus XSS có thể gây ra lƣợng truy cập cao có thể đến hàng triệu truy cập trong một khoảng thời gian rất ngắn, vì hàng triệu các trình duyệt bị nhiễm bệnh và/hoặc ngay cả các server cũng bị nhiễm bệnh. Do vậy, nó gây ra tình trạng quá tải của server. 1.1.3. Internet a) Internet bots Internet bots (Botnet) còn đƣợc gọi là web robots, WWW robots hay đơn giản là bots, là ứng dụng phần mềm tự động thực thi các nhiệm vụ trên mạng Internet. Thông thƣờng Bot thực hiện các nhiệm vụ đơn giản đƣợc lập trình sẵn và có cấu trúc lặp đi lặp lại với tốc độ cao hơn một ngƣời bình thƣờng. Một Botnet đƣợc định nghĩa là một “mạng gồm rất nhiều máy tính bị xâm nhập và có thể đƣợc kẻ tấn công điều khiển từ xa”. “Máy tính bị xâm nhập” là máy tính bị lây nhiễm phần mềm độc hại (Bot). Nhƣ vậy, Botnet là tập hợp các Bot đƣợc sử dụng với mục đích xấu. Botmaster là một ngƣời hoặc một nhóm ngƣời điều khiển Botnet. 4
- Xem thêm -

Tài liệu liên quan