ĐẠ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 -