BỘ GIÁO DỤC VÀ ĐÀO TẠO
LÊ VĂN HÙNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
Lê Văn Hùng
NGHIÊN CỨU THỬ NGHIỆM ĐÁNH GIÁ HIỆU NĂNG
ÁP DỤNG TRÊN PHẦN MỀM QUẢN LÝ CƠ SỞ DỮ LIỆU
CÔNG NGHỆ THÔNG TIN
CÁC DÂN TỘC THIỂU SỐ VIỆT NAM
LUẬN VĂN THẠC SĨ KỸ THUẬT
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
KHÓA 16A
Hà Nội – 2017
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
Lê Văn Hùng
NGHIÊN CỨU THỬ NGHIỆM ĐÁNH GIÁ HIỆU NĂNG
ÁP DỤNG TRÊN PHẦN MỀM QUẢN LÝ CƠ SỞ DỮ LIỆU
CÁC DÂN TỘC THIỂU SỐ VIỆT NAM
LUẬN VĂN THẠC SĨ KỸ THUẬT
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS. TS. HUỲNH QUYẾT THẮNG
Hà Nội – 2017
LỜI CÁM ƠN
Trong quá trình học tập cũng như nghiên cứu để hoàn thành đề tài luận văn
thạc sĩ, bên cạnh sự nỗ lực của bản thân còn có sự hướng dẫn nhiệt tình của
quý Thầy, Cô, cũng như sự động viên, hỗ trợ của gia đình và đồng nghiệp
trong suốt thời gian học tập nghiên cứu và thực hiện luận văn thạc sĩ.
Tôi xin chân thành gửi lời cảm ơn đến các quý Thầy, Cô của Trường Đại
học Bách Khoa Hà Nội đã trang bị kiến thức, tạo môi trường điều kiện thuận
lợi nhất cho tôi trong suốt quá trình học tập và thực hiện luận văn này.
Với lòng kính trọng và biết ơn, tôi xin được bày tỏ lời cảm ơn sâu sắc đến
PGS.TS. Huỳnh Quyết Thắng, giảng viên Viện Công nghệ thông tin và Truyền
thông - Trường Đại học Bách Khoa Hà Nội đã trực tiếp hướng dẫn tận tình cho
tôi trong suốt quá trình thực hiện nghiên cứu này.
Cuối cùng tôi xin chân thành cảm ơn đến gia đình, các đồng nghiệp, bạn bè
trong tập thể lớp Công nghệ thông tin 2016A, Ban Lãnh đạo Trung tâm Thông
tin, Ủy ban Dân tộc đã hỗ trợ cho tôi rất nhiều trong quá trình học tập, nghiên
cứu và thực hiện đề tài luận văn thạc sĩ.
Xin trân trọng cám ơn!
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng tôi dưới sự
hướng dẫn của PGS. TS. Huỳnh Quyết Thắng. Tôi cũng xin cam đoan rằng
mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cám ơn và các thông
tin trích dẫn trong luận văn này đã được chỉ rõ nguồn gốc.
Hà Nội, tháng 10 năm 2017
TÁC GIẢ
Lê Văn Hùng
MỤC LỤC
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT ..................................... 1
DANH MỤC CÁC BẢNG................................................................................ 2
MỞ ĐẦU ........................................................................................................... 5
1. Lý do chọn đề tài ........................................................................................... 5
2. Mục đích nghiên cứu ..................................................................................... 5
3. Nhiệm vụ nghiên cứu .................................................................................... 5
4. Phạm vi nghiên cứu và giới hạn .................................................................... 5
5. Phương pháp nghiên cứu ............................................................................... 6
6. Giả thuyết khoa học ...................................................................................... 6
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT VỀ HIỆU NĂNG PHẦN MỀM ............. 7
1.1. Tổng quan về hiệu năng phần mềm và ứng dụng ...................................... 7
1.2. Các khái niệm cơ bản trong đo lường hiệu năng ....................................... 8
1.3. Kỹ nghệ hiệu năng phần mềm .................................................................. 10
1.3.1. Tiến trình SPE hội tụ ............................................................................. 10
1.3.2. Lập mô hình, kiểm thử và giám sát hiệu năng ...................................... 13
1.4. Tiểu kết chương........................................................................................ 14
CHƯƠNG 2. GIÁ TRỊ TÍNH NĂNG VÀ ĐO LƯỜNG HỆ THỐNG .......... 15
2.1. Hệ thống xử lý sự kiện EP ....................................................................... 15
2.1.1. Tổng quan EP ........................................................................................ 15
2.1.2. Chức năng xử lý sự kiện ....................................................................... 16
2.2. Khái niệm và phân loại giá trị tính năng .................................................. 17
2.3. Phân loại Điểm chuẩn .............................................................................. 19
2.3.1. Điểm chuẩn vi mô ................................................................................. 19
2.3.2. Điểm chuẩn vĩ mô ................................................................................. 20
2.4. Điểm chuẩn trong khoa học máy tính và hiệu năng phần mềm ............... 20
2.5. Tiểu kết chương........................................................................................ 21
CHƯƠNG 3. PHƯƠNG PHÁP ĐO LƯỜNG GIÁ TRỊ TÍNH NĂNG CỦA
HỆ THỐNG PHẦN MỀM .............................................................................. 22
3.1. Đo lường điểm chuẩn vi mô:.................................................................... 22
3.1.1. Truy vấn lựa chọn lọc theo hàng và cột (Selection and Projection
Filters) ............................................................................................................. 23
3.1.2. Tổng hợp và gom nhóm theo cửa sổ (Aggregation and Windowing) .. 24
3.1.3. Kết hợp (Joins) ...................................................................................... 29
3.1.4. Pattern Matching ................................................................................... 32
3.1.5. Adaptivity to Bursts .............................................................................. 33
3.1.6. Multiple Queries and Resource Sharing ............................................... 36
3.2. Điểm chuẩn vĩ mô áp dung cho CPU và Bộ nhớ ..................................... 37
3.2.1. Phân tích hiệu năng ............................................................................... 38
a) Thử nghiệm ................................................................................................. 38
b) Thiết lập và phương pháp luận:.................................................................. 40
c) Kết quả ........................................................................................................ 41
3.2.2. Tối ưu hóa cấu trúc dữ liệu ................................................................... 42
3.2.3. Cải thiện hiệu quả các thuật toán ở mức CPU ...................................... 46
a) Truy vấn tổng hợp ....................................................................................... 47
b) Truy vấn kết hợp ......................................................................................... 49
3.2.4. Kịch bản truy vấn, đa truy vấn .............................................................. 51
3.2.5. Tối ưu hóa hệ thống EP ......................................................................... 54
3.3. Tiểu kết chương........................................................................................ 55
CHƯƠNG 4. ÁP DỤNG THỬ NGHIỆM TRÊN PHẦN MỀM QUẢN LÝ
CSDL CÁC DÂN TỘC THIỂU SỐ VIỆT NAM ........................................... 56
4.1. Giới thiệu phần mềm Quản lý CSDL các dân tộc thiểu số Việt Nam ..... 56
4.1.1. Giới thiệu ............................................................................................... 56
4.1.2. Mô hình kiến trúc hệ thống: .................................................................. 56
4.1.3. Mô hình nghiệp vụ tổng thể của hệ thống: ........................................... 57
4.1.4. Nền tảng công nghệ sử dụng ................................................................. 58
4.2. Thực nghiệm đo đánh giá các giá trị tính năng Điểm chuẩn vi mô ......... 58
4.3. Thực nghiệm đo đánh giá các giá trị tính năng Điểm chuẩn vĩ mô ......... 65
4.4. Một số nhận xét và khuyến cáo ................................................................ 73
KẾT LUẬN ..................................................................................................... 74
DANH MỤC TÀI LIỆU THAM KHẢO ........................................................ 75
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
Benchmark
Phương pháp điểm chuẩn
CNTT
Công nghệ thông tin
CPI
Cycles Per Instruction
CSDL
Cơ sở dữ liệu
EP
Event Processing
ETL
Extraction, Transformation, and Load
IC
Instruction Count
IEC
International Electrotechnical Commission
IEEE
Institute of Electrical and Electronics Engineers
ISO
International Organization for Standardization
KT-XH
Kinh tế - xã hội
Macro-Benchmark
Điểm chuẩn vĩ mô
Micro-Benchmark
Điểm chuẩn vi mô
SPE
Software Performance Engineering
SPEC
Standard Performance Evaluation Corporation
SPEM
Systems Process Engineering Metamodel
SUT
System Under Test
TLB
Translation Look-aside Buffer
UBDT
Ủy ban Dân tộc
1
DANH MỤC CÁC BẢNG
Bảng 3.1: Tóm tắt điểm chuẩn vi mô .................................................................. 22
Bảng 3.2: Tiêu thụ bộ nhớ (MB) của máy được kiểm thử (cửa sổ 10 phút)....... 27
Bảng 3.3: Tiêu thụ bộ nhớ (MB) của máy cho các cửa sổ dựa trên thời gian lớn.
............................................................................................................................. 28
Bảng 3.4: Cấu trúc dữ liệu và mức tiêu thụ bộ nhớ (MB): truy vấn tổng hợp. .. 44
Bảng 3.5: Cấu trúc dữ liệu và mức tiêu thụ bộ nhớ (MB): truy vấn kết hợp. ..... 44
Bảng 3.6: Thuật toán nhận biết bộ nhớ đệm để tính toán các kết hợp cửa sổ
trượt. .................................................................................................................... 48
Bảng 4.1: Kết quả đo hiệu năng CPU và Memory.............................................. 67
Bảng 4.2: Kết quả đo hiệu năng cơ sở dữ liệu của báo cáo 10 tỉnh .................... 68
Bảng 4.3: Kết quả đo hiệu năng cơ sở dữ liệu chạy tổng hợp báo cáo của cả
nước ..................................................................................................................... 69
Bảng 4.4: Kết quả đo hiệu năng CPU và Memory tổng hợp báo cáo trên cả nước
............................................................................................................................. 70
DANH MỤC HÌNH VẼ
Hình 1.1: Một phần phổ biến của thời gian phản hồi .......................................... 8
Hình 1.2: Mối quan hệ giữa thời gian phản hồi, thông lượng và sử dụng tài
nguyên với khối lượng công ................................................................................. 9
Hình 1.3: Một mô hình đơn giản cho một quy trình SPE hội tụ ........................ 11
Hình 1.4: Tích hợp SPE trong quá trình phát triển phần mềm ........................... 12
Hình 2.1: Tổng quan về xử lý sự kiện. ................................................................ 15
Hình 2.2: Cấu trúc của một ứng dụng xử lý sự kiện . ......................................... 17
Hình 2.3: Các kiểu kiểm thử hiệu năng và Điểm chuẩn khác nhau .................... 18
Hình 3.1: Truy vấn lọc kiểm thử. ........................................................................ 23
Hình 3.2: Kết quả của kiểm thử lọc (Selection và Projection). .......................... 24
Hình 3.3: Tổng hợp các truy vấn kiểm thử cửa sổ dựa vào đếm. ....................... 24
Hình 3.4: Kết quả của kiểm thử tổng hợp: các kích cỡ cửa sổ và chính sách khác
nhau. .................................................................................................................... 25
2
Hình 3.5: Sử dụng CPU của động cơ X trong quá trình kiểm thử tổng hợp. ..... 25
Hình 3.6: Hiệu năng của tổng hợp MEDIAN và SUM. ...................................... 26
Hình 3.7: Hai phiên bản truy vấn tổng hợp trong một cửa sổ dựa trên thời gian.
............................................................................................................................. 27
Hình 3.8: Kết quả của sự tổng hợp trong thời gian thử nghiệm cửa sổ thời gian
lớn (động cơ Z). ................................................................................................... 29
Hình 3.9: Các truy vấn kiểm tra kết nối window-to-window. ............................ 30
Hình 3.10: Kết quả của kiểm thử kết nối window-to-window. .......................... 30
Hình 3.11: Truy vấn kiểm thử Stream-to-table. .................................................. 31
Hình 3.12: Kết quả của kiểm thử kết nối Stream-to-table. ................................. 32
Hình 3.13: Các truy vấn kiểm thử phù hợp mẫu (sử dụng ngôn ngữ SASE +). . 32
Hình 3.14: Kết quả của kiểm thử kết hợp mẫu. .................................................. 34
Hình 3.15: Kiểm thử thích ứng. .......................................................................... 35
Hình 3.16: Kết quả của kiểm thử khả năng mở rộng .......................................... 36
Hình 3.17: Lược đồ của sự kiện đầu vào "S". ..................................................... 39
Hình 3.18: Lược đồ của bảng lịch sử "T". .......................................................... 39
Hình 3.19: Truy vấn tổng hợp. ............................................................................ 40
Hình 3.20: Truy vấn kết hợp. .............................................................................. 40
Hình 3.21: Hiệu năng của truy vấn kết nối trên máy Esper EP. ......................... 41
Hình 3.22: Mối quan hệ giữa hiệu năng ứng dụng và chỉ số phần cứng. ........... 42
Hình 3.23: Cấu trúc dữ liệu khác nhau được sử dụng để biểu diễn tập hợp. ...... 43
Hình 3.24: Ảnh hưởng của sự thể hiện bên trong về hiệu năng ......................... 44
Hình 3.25: Truy vấn dữ liệu và chu kỳ trên mỗi lệnh. ........................................ 47
Hình 3.26: Thuật toán lưu trữ cột truyền thống so với thuật toán nhận dạng bộ
nhớ đệm. .............................................................................................................. 49
Hình 3.27: Kết hợp băm truyền thống so với trộn băm thô. ............................... 51
Hình 3.28: Tối ưu hóa trong một kịch bản nhiều truy vấn. ................................ 53
Hình 3.29: Tối ưu hóa về Esper (truy vấn tổng hợp). ......................................... 54
Hình 4.1: Mô hình kiến trúc hệ thống CSDL KT-XH 53 DTTS Việt Nam ....... 56
Hình 4.2: Mô hình nghiệp vụ của hệ thống ......................................................... 57
Hình 4.3: Giao diện phần mềm Server Profiler .................................................. 59
Hình 4.4: Kết quả thực nghiệm trên phần mềm .................................................. 60
3
Hình 4.5: Cấu hình chức năng Tuning Advisor .................................................. 62
Hình 4.6: Kết quả thực hiện chức năng Tuning .................................................. 65
Hình 4.7: Giao diện cài đặt tham số đầu vào báo cáo ......................................... 66
Hình 4.8: Kết quả hiệu năng CPU và Memory ................................................... 67
Hình 4.9: Biểu đồ thể hiện thực hiện mệnh đề Selection .................................... 70
Hình 4.10: Biểu đồ thể hiện thực hiện mệnh đề Projection ................................ 71
Hình 4.11: Biểu đồ thể hiện thực hiện mệnh đề Join .......................................... 71
Hình 4.12: Biểu đồ thể hiện mối quan hệ giữa memory và CPU khi thực hiện
báo cáo tổng hợp của các tỉnh ............................................................................. 72
Hình 4.13: Biểu đồ thể hiện mối quan hệ giữa thời gian sử dụng và % CPU khi
thực hiện báo cáo tổng hợp của các tỉnh ............................................................. 72
4
MỞ ĐẦU
1. Lý do chọn đề tài
Bên cạnh những yếu tố như giao diện, khả năng tương thích, chức năng của
ứng dụng và bảo mật, thì yếu tố hiệu năng là một trong những vấn đề rất quan
trọng để đánh giá hệ thống và khả năng mở rộng của ứng dụng. Việc xác định số
người dùng tối đa, sức tải công việc cũng như thời gian xử lý các giao tác của
các ứng dụng là rất quan trọng trong quá trình xây dựng ứng dụng và cơ sở dữ
liệu. Kiểm thử hiệu năng nhằm xác định tốc độ, khả năng phân tải và mức độ tin
tưởng của ứng dụng trong môi trường nhiều người dùng, có nhiều hoạt động
khác nhau. Kết quả kiểm thử nhằm đánh giá khả năng của hệ thống để có sự
điều chỉnh hợp lý về hệ thống phần cứng hay các phần mềm phát triển ứng
dụng. Khả năng đáp ứng yêu cầu người dùng, mức tải đáp ứng, là điều kiện cần
thiết trong việc phát triển và mở rộng ứng dụng.
2. Mục đích nghiên cứu
Nghiên cứu về lĩnh vực phương pháp điểm chuẩn (Benchmark), xác định tầm
quan trọng và vai trò của điểm chuẩn trong kỹ thuật phần mềm, bao gồm 2 kiểu
điểm chuẩn phổ biến: điểm chuẩn vi mô và điểm chuẩn vĩ mô, từ đó đưa ra phân
tích thống kê các kết quả điểm chuẩn.
Nghiên cứu bộ công cụ giám sát, giới thiệu một số khung giám sát, đánh giá
hiệu năng phần mềm và điểm chuẩn hệ thống. Đo hiệu năng trên hệ thống phần
mềm quản lý cơ sở dữ liệu các dân tộc thiểu số Việt Nam.
3. Nhiệm vụ nghiên cứu
Trong luận văn này em xin đề ra 3 nhiệm vụ cụ thể như sau:
Nhiệm vụ thứ nhất: Tổng hợp tìm hiểu cơ sở lý thuyết về hiệu năng phần
mềm và lý thuyết về giá trị tính năng và đo lường hệ thống.
Nhiệm vụ thứ hai: Đi sâu vào rìm hiểu phương pháp đo lường giá trị và điểm
chuẩn (Benchmarking) tính năng của hệ thống phần mềm.
Nhiệm vụ thứ ba: Áp dụng thử nghiệm phương pháp đo lường giá trị trên
phần mềm quản lý cơ sở dữ liệu các dân tộc thiểu số Việt Nam.
4. Phạm vi nghiên cứu và giới hạn
Luận văn này nghiên cứu phương pháp điểm chuẩn (Benchmark) để đánh giá,
đo lường hiệu năng hoạt động của phần mềm và ứng dụng. Trong đó có nghiên
cứu 2 loại điểm chuẩn: Điểm chuẩn vi mô và điểm chuẩn vĩ mô.
5
Việc thực hiện đo hiệu năng phần mềm được thực hiện trực tiếp trên hệ thống
cơ sở dữ liệu đang chạy trên hạ tầng tại Ủy ban Dân tộc. Có một số thời điểm bị
tác động của các yếu tố bên ngoài không mong muốn như số lượng người dùng,
hệ thống tài nguyên máy chủ và đường truyền.
Công cụ thực nghiệm dựa trên một số công cụ của Microsoft như: Server
Profiler, Performane Monitor, Tuning.
5. Phương pháp nghiên cứu
Nghiên cứu sẽ được tiến hành thông qua cả hai phương pháp diễn dịch và quy
nạp, sau đó sẽ tập trung vào một phương pháp tiếp cận cụ thể.
Nghiên cứu, tổng hợp kiến thức lý thuyết trên lớp học và các bài báo liên
quan về việc thực hiện đánh giá, đo lường hiệu năng; thu thập, khảo sát và xin ý
kiến góp ý của các chuyên gia.
6. Giả thuyết khoa học
Về lý thuyết:
Các tư liệu và thông tin liên quan chủ yếu được thu thập, tổng hợp từ các
nguồn sau: Các tạp chí, công trình khoa học chuyên ngành trong và ngoài nước,
trên mạng, sách về công nghệ thông tin và bài giảng. Tổng hợp, thu thập các
thông tin liên quan, lựa chọn các phương pháp và các tiếp cận đã được áp dụng
thành công.
Trao đổi với thầy hướng dẫn và các đồng nghiệp cùng lĩnh vực nghiên cứu.
Tham gia báo cáo tại các hội thảo khoa học nhằm nâng cao khả năng nghiên
cứu và cách trình bày bài báo khoa học, kiểm chứng đánh giá các kết quả nghiên
cứu.
Về thực nghiệm:
Tìm hiểu mô hình quản lý cơ sở dữ liệu các dân tộc thiểu số Việt Nam, công
nghệ xây dựng cơ sở dữ liệu và các công cụ đánh giá, theo dõi hiệu năng ứng
dụng.
Ứng dụng công cụ của Microsoft để thực nghiệm các phép đo hiệu năng của
hệ thống phần mềm.
6
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT VỀ HIỆU NĂNG PHẦN MỀM
1.1. Tổng quan về hiệu năng phần mềm và ứng dụng
Việc xác định số người dùng tối đa, sức tải công việc cũng như thời gian xử
lý các giao tác của các ứng dụng là rất quan trọng trong quá trình phát triển và
xây dựng ứng dụng và cơ sở dữ liệu.
Hiệu năng là một trong những thuộc tính có tính chất và các yêu cầu phi chức
năng quan trọng nhất đối với các hệ thống phần mềm. Trong thời gian gần đây,
qua các nghiên cứu và khảo sát, hiệu năng của hệ thống phần mềm và các phép
đo hiệu năng vẫn là một trong những thách thức quan trọng nhất trong kỹ thuật
phần mềm.
Hiệu năng ứng dụng là một trường hợp đặc biệt của hiệu năng phần mềm nói
chung. Do đó, các định nghĩa cho hiệu năng phần mềm cũng có thể áp dụng cho
hiệu năng ứng dụng
Hiệu năng phần mềm: là mức độ mà một hệ thống hoặc một bộ phận đạt được
tiêu chí chức năng của nó trong những ràng buộc nhất định như tốc độ, độ chính
xác hoặc bộ nhớ sử dụng. Một trong những đặc điểm chính ảnh hưởng đến chất
lượng phần mềm là hiệu quả hoạt động, được chia thành ba đặc tính: hành vi
thời gian (Time behavior), sử dụng tài nguyên (Resource utilization) và công
suất (Capacity). Theo tiêu chuẩn ISO / IEC 25010: 2011 [10]:
Hành vi thời gian: Mức độ đáp ứng và thời gian xử lý, tốc độ thông lượng của
một sản phẩm đạt yêu cầu.
Sử dụng tài nguyên: mức độ mà tổng số và loại tài nguyên được sử dụng bởi
một sản phẩm đạt yêu cầu.
Công suất: Mức độ giới hạn tối đa của một sản phẩm đáp ứng yêu cầu.
Định nghĩa này về hiệu năng phần mềm là toàn diện trong đó bao gồm việc sử
dụng tài nguyên và công suất, nhưng bỏ qua tương quan hành vi thời gian với
việc sử dụng tài nguyên và công suất. Tương tự định nghĩa được đưa ra bởi Jain
[3] trong khi Smith và Williams [4] cung cấp một định nghĩa tập trung vào hành
vi thời gian như sau:
Hiệu năng phần mềm: là mức độ mà một hệ thống hoặc thành phần phần
mềm đáp ứng các mục tiêu của nó cho kịp thời.
Theo định nghĩa của Smith và Williams [4], tính kịp thời có thể được đo bằng
thời gian đáp ứng và thông lượng với việc đo khả năng đáp ứng và mở rộng của
7
hai chiều. Khả năng mở rộng là khả năng đáp ứng các yêu cầu này với nhu cầu
ngày càng tăng.
Cần lưu ý rằng bất kỳ chỉ số hiệu năng nào được sử dụng trong các định nghĩa
này đều đều cầu các phép đo làm cơ sở. Những phép đo này có thể quan tâm
hành vi thời gian hoặc sử dụng tài nguyên của ứng dụng. Định nghĩa đo lường
và các thuật ngữ liên quan được đưa ra trong phần tiếp theo.
1.2. Các khái niệm cơ bản trong đo lường hiệu năng
Có nhiều định nghĩa trong đo lường hiệu năng. Đo lường hiệu năng là hành
động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng
với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó.
Một cách định nghĩa khác của đo hiệu năng là xác định thời gian phản hồi
(Responsiveness), thông lượng (throughput), công suất (Capacity) của hệ thống
theo khối lượng công việc (workload).
Thời gian phản hồi: là khoảng thời gian giữa yêu cầu của người sử dụng và
phản hồi của một hệ thống
Hình 0.1: Một phần phổ biến của thời gian phản hồi [4]
Định nghĩa này phù hợp nhất cho các hệ thống phân tán, chẳng hạn như các
dịch vụ dựa trên web.
Loại đo lường đầu cuối này thường là một điểm khởi đầu tốt trong việc phân
tích hiệu năng của hệ thống phần mềm. Các phương pháp đo khác, chẳng hạn
như giám sát (trong phần tiếp theo), cung cấp một cái nhìn sâu hơn các hệ thống
và yêu cầu các định nghĩa khác nhau của đo thời gian đáp ứng.
Thông lượng hệ thống: Là một phép đo quan trọng khác cho hiệu năng của
một hệ thống phần mềm. Nó được định nghĩa là số lượng yêu cầu có thể được
xử lý trong khoảng thời gian cố định. Ví dụ, trong trường hợp một ứng dụng
web, nó thường được định nghĩa là các yêu cầu trang web trong mỗi giây. Thời
8
gian đáp ứng và thông lượng tạo thành một mối quan hệ, đó là một thời gian
phản ứng thấp thường dẫn đến một thông lượng cao, trong khi thời gian đáp ứng
cao gây ra lượng thông lượng thấp.
Khối lượng công việc: Bên cạnh thời gian phản hồi, thông lượng của một hệ
thống phụ thuộc vào khối lượng công việc. Khối lượng công việc của một hệ
thống là số yêu cầu được thực hiện trong một khoảng thời gian nhất định, ví dụ:
số lượng người dùng đồng thời trên mỗi giây yêu cầu một trang web. Một mặt,
một khối lượng công việc thấp, ít yêu cầu cho hệ thống, kết quả trong thông
lượng thấp, mặt khác, một khối lượng công việc quá cao dẫn đến sử dụng nguồn
lực cao và kết quả thời gian đáp ứng cao hơn dẫn đến thông lượng cũng thấp
hơn.
Hình 0.2: Mối quan hệ giữa thời gian phản hồi, thông lượng và sử dụng tài
nguyên với khối lượng công [4]
Một phép đo quan trọng nữa là việc sử dụng tài nguyên. Tài nguyên trong
một hệ thống phần mềm có thể là tài nguyên phần cứng, chẳng hạn như thời
gian CPU hoặc bộ nhớ có sẵn, nhưng cũng có thể là tài nguyên phần mềm,
chẳng hạn như các thread có sẵn trong một luồng thread hoặc các kết nối cơ sở
dữ liệu tự do. Với khối lượng công việc ngày càng tăng, các tài nguyên trở nên
ngày càng được sử dụng, cho đến khi một hoặc nhiều tài nguyên được sử dụng
9
và không thể phục vụ các yêu cầu tiếp theo, do đó tạo ra một nút cổ chai
(bottleneck).
Công suất của một hệ thống là số lượng các nguồn lực sẵn có trong quan hệ
với khối lượng công việc, khối lượng công việc có thể mà không có bất kỳ tác
động bất lợi trên thời gian đáp ứng hoặc thông lượng của hệ thống.
Các mối quan hệ đã đề cập giữa thời gian phản ứng, thông lượng (Đường số
2), và sử dụng tài nguyên (Đường số 1) trên một trục và tăng khối lượng công
việc trên trục khác được minh họa trong Hình 1.2. Miễn là khối lượng công việc
được miêu tả công suất của hệ thống, các tỷ lệ đo xấp xỉ bằng tuyến tính với
khối lượng công việc tăng. Khi việc sử dụng tài nguyên đạt đến mức tối đa của
nó, thời gian đáp ứng (Đường số 3) bắt đầu tăng theo số mũ và thông lượng
giảm.
Theo định nghĩa của Smith và Williams [4], một hệ thống có khả năng đáp
ứng tốt nếu nó đáp ứng các yêu cầu về hiệu năng về mặt thông lượng và thời
gian đáp ứng cho một khối lượng công việc nhất định.
1.3. Kỹ nghệ hiệu năng phần mềm
Thuật ngữ kỹ nghệ hiệu năng phần mềm (SPE) được đưa bởi Smith [4] cho
một cách tiếp cận dựa trên mô hình để xây dựng các hệ thống phần mềm đáp
ứng các yêu cầu hiệu năng. Smith và Williams [4] áp dụng cách tiếp cận này đối
với các hệ thống hướng đối tượng. Trong cách tiếp cận của họ, mô hình hiệu
năng được xây dựng trong quá trình phát triển ban đầu của hệ thống phần mềm
để dự đoán hiệu năng dự kiến của hệ thống.
Woodside và cộng sự [4], cung cấp một định nghĩa rộng hơn của kỹ nghệ hiệu
năng phần mềm, bao gồm tiếp cận dựa trên đo lường. Đo lường hiệu năng bổ
sung và xác nhận các mô hình dự báo hiệu năng. Định nghĩa như sau:
Kỹ nghệ hiệu năng phần mềm (SPE): đại diện cho toàn bộ tập hợp các hoạt
động về kỹ năng phần mềm và các phân tích liên quan được sử dụng trong suốt
chu kỳ phát triển phần mềm, được hướng tới đáp ứng yêu cầu về hiệu năng.
1.3.1. Tiến trình SPE hội tụ
Theo định nghĩa của SPE, cung cấp một mô hình cho một quy trình SPE thu
được kết hợp được trình bày trong Hình 1.3. Ký hiệu của mô hình dựa trên
nhóm quản lý đối tượng mô hình kỹ nghệ xử lý phần mềm và hệ thống SPEM
2.0. Mô tả về tiến trình SPE hội tụ được cung cấp sau khi rút ngắn mô hình
SPEM.
10
Hình 0.3: Một mô hình đơn giản cho một quy trình SPE hội tụ [4,5]
Mô tả tiến trình SPE hội tụ: Tiến trình SPE hội tụ (Hình 1.3) kết hợp hiệu
năng dựa trên mô hình các phương pháp dự đoán với các phương pháp dựa vào
đo lường. Mô tả của quy trình như sau [5]:
Ở phía trên cùng của biểu đồ, các thành phần yêu cầu của mỗi hệ thống phần
mềm phân tích với quá trình SPE được hiển thị. Danh sách performance
requirements hoạt động như là mục tiêu của phân tích và tối ưu hiệu năng.
Những yêu cầu này ảnh hưởng đến đặc tả thiết kế của hệ thống phần mềm. Các
yêu cầu kết hợp với design specification xác định việc xây dựng mô hình hiệu
năng, kiểm thử hiệu năng thiết kế, phát triển và triển khai hệ thống.
Hai thành phần cuối cùng, kịch bản và hồ sơ hoạt động, thường là cung cấp
thông qua expertise của một miền hoặc chuyên gia hiệu năng. Scenarios của hệ
thống phần mềm tương ứng với các trường hợp sử dụng điển hình của hệ thống.
Do đó, chúng ảnh hưởng đến cả ba con đường của kỹ nghệ hiệu năng.
Operational profiles bao gồm kiến thức về việc sử dụng thực tế hoặc dự kiến
của hệ thống, do đó việc triển khai nguyên giao thức được yêu cầu và chỉ áp
dụng cho các cách tiếp cận dựa vào đo lường.
Ở phần giữa của sơ đồ, hai cách tiếp cận riêng biệt để kỹ nghệ hiệu năng phần
mềm được miêu tả. Ở phía bên trái của phần này, phương pháp dự đoán hiệu
11
năng dựa trên mô hình được đưa ra, trong khi trên bên phải, hai cách tiếp cận
dựa trên đo lường khác nhau được đưa ra.
Trong trường hợp phương pháp dự đoán hiệu năng dựa trên mô hình, yêu cầu
về hiệu năng, đặc tả thiết kế, và các kịch bản hành động là đầu vào cho hoạt
động performance model building. Parameter estimate được cung cấp bởi giám
sát của một chuyên gia và thực hiện vai trò tương tự hồ sơ hoạt động cho các
phương pháp dựa vào đo lường. Các kết quả của hoạt động này là performance
model của hệ thống phần mềm. Mô hình này được đánh giá trong bước
performance model solving, dẫn đến performance model results.
Các cách tiếp cận dựa trên các phép đo phân biệt giữa kiểm thử và giám sát
hiệu năng. Các bài kiểm thử về hiệu năng, chẳng hạn như định hình hệ thống
thường được thực hiện trong thời gian phát triển của một dự án phần mềm, trong
khi giám sát thường được thực hiện trên hệ thống sống trong điều kiện thực tế.
Như vậy, performance test design có thể làm việc với nguyên mẫu hoặc thực
hiện một phần, trong khi giám sát đòi hỏi sự phát triển và triển khai toàn bộ hệ
thống (develop & deploy system). Tiếp theo hoạt động là để chạy performance
tests hoặc để monitor the live system kết quả trong performance test results hoặc
monitoring results.
Hình 0.4: Tích hợp SPE trong quá trình phát triển phần mềm [4]
Cuối cùng, kết quả thực hiện của ba con đường theo ba trường hợp có thể
giúp cải thiện ước lượng tham số, để tinh chỉnh cấu hình hoạt động, hoặc để xác
nhận xây dựng mô hình hiệu năng. Interpretation of performance results dẫn
đến performance-related conclusions có thể được sử dụng để tối ưu hóa design
specification và nâng cao expertise.
Như vậy, bên cạnh sự kết hợp được đề cập của mô hình dựa trên các phương
pháp tiên đoán hiệu năng với phương pháp tiếp cận dựa vào đo lường, quy trình
SPE hội tụ cũng bao gồm một chu trình điều chỉnh hiệu năng.
12
1.3.2. Lập mô hình, kiểm thử và giám sát hiệu năng
Trong phần trước, đã giới thiệu cách tiếp cận dựa trên mô hình hóa phần
mềm, mô hình hiệu năng, cũng như hai phương pháp SPE dựa trên đo khác
nhau, kiểm thử hiệu năng và giám sát hiệu năng. Trong phần này, cung cấp thêm
chi tiết về ba cách tiếp cận.
Quá trình SPE hội tụ thể hiện quan điểm của kỹ nghệ hiệu năng phần mềm.
Ngược lại, Hình 1.4 trình bày ba phương pháp SPE từ quan điểm của một kỹ
nghệ phần mềm truyền thống. Vì vậy, chúng bao gồm các giai đoạn phát triển
phần mềm điển hình, chẳng hạn như mô hình thác nước. Như đã đề cập trong
hội tụ SPE, mô hình hiệu năng thường được thực hiện trong thời gian đầu các
giai đoạn phát triển phần mềm. Cách tiếp cận đo lường hiệu năng, chẳng hạn
như kiểm thử và giám sát, thường đòi hỏi ít nhất một nguyên mẫu.
Kiểm thử hiệu năng, chẳng hạn như tính năng hồ sơ của hệ thống, thường bắt
đầu vào đầu các bước thực thi, trong khi giám sát hiệu năng thường được thực
hiện trên hệ thống trực tiếp sau khi triển khai.
Một phân loại tương tự các kỹ thuật đánh giá hiệu năng vào lập mô hình và đo
lường hiệu năng được thực hiện bởi John [4]. Lập mô hình hiệu năng, bao gồm
mô phỏng và lập mô hình phân tích, được tiến hành ngay từ khi bắt đầu quá
trình phát triển. Đo lường hiệu năng được thực hiện trong các giai đoạn sau của
quá trình phát triển để xác nhận các mô hình hiện có.
Tương tự với việc tích hợp vào quá trình hội tụ SPE, điều chỉnh hiệu năng có
thể được tích hợp vào các quy trình phát triển phần mềm. Thông thường được
thực hiện bằng cách thêm một hoặc nhiều kiểm thử để có hiệu năng chấp nhận
được vào mô hình, kết hợp với các nhánh vào giai đoạn đầu của tiến trình phát
triển nếu các tiêu chí về hiệu năng không được đáp ứng.
Các công cụ kiểm thử hiệu năng có thể được chia thành hai loại: workload
generation tools và profiling tools. Các các kịch bản và hồ sơ hoạt động được đề
cập trong quy trình hội tụ SPE hoạt động như là đầu vào cho workload
generation tools và xác định mong muốn đầu ra của các công cụ này.
Profiling tools được sử dụng để thu thập thông tin sự kiện và thời gian chạy
của hệ thống đang thử. Thông tin thu thập thông thường bao gồm việc sử dụng
heap, tuổi thọ vật dụng, thời gian lãng phí, và thời gian sử dụng. Nói chung có
hai cách tiếp cận khác nhau để định hình một hệ thống phần mềm: định hình
chính xác và lấy mẫu dựa trên hồ sơ. Việc định hình chính xác thường rất chính
xác và thu thập tất cả các sự kiện trong suốt việc thực hiện hệ thống, do đó gây
13
ra một chi phí cao (xem chương IV sử dụng công cụ của Microsoft). Mặt khác,
lấy mẫu dựa trên profiling thường chỉ ghi lại một tập hợp con các thông tin có
sẵn và sử dụng phương pháp thống kê để suy ra chi tiết trên toàn bộ hệ thống.
Kiểm thử hiệu năng phần mềm thường được phân thành ba loại: kiểm thử tải,
kiểm thử sức ép, độ bền. Trong kiểm thử tải, khối lượng công việc bình thường
hoặc dự kiến của một hệ thống được sử dụng. Do đó nó cung cấp các gợi ý về
hành vi thông thường hoặc hàng ngày của hệ thống. Trong kiểm thử sức ép, một
khối lượng công việc lớn hơn bình thường được sử dụng. Việc kiểm thử này
nhằm mục đích tìm ra giới hạn năng lực trên hệ thống. Đối với kiểm thử độ bền,
tải trọng hoặc khối lượng công việc được sử dụng thời gian dài. Do đó, có thể
phát hiện các rủi ro và để đánh giá hiệu năng cho các hệ thống chạy lâu.
1.4. Tiểu kết chương
Bên cạnh những yếu tố như giao diện, khả năng tương thích, chức năng của
ứng dụng và bảo mật, thì yếu tố hiệu năng là một trong những vấn đề rất quan
trọng để đánh giá hệ thống và khả năng mở rộng của ứng dụng.
Kiểm thử hiệu năng là hoạt động cần thiết cho việc phát triển những giải pháp
tối ưu hóa hiệu năng cho phần mềm. Kiểm thử hiệu năng giúp chúng ta tránh
được các tình huống không lường trước khi triển khai ứng dụng trong môi
trường thực tế.
Trong chương này chúng ta đã tìm hiểu về một số các thông số liên quan đến
đánh giá hiệu năng của phần mềm như: responsiveness, throughput, resource
utilization, capacity, workload; giới thiệu mô hình để theo dõi và hiệu chỉnh hiệu
năng trong quá trình phát triển phần mềm; sử dụng giá trị đo Điểm chuẩn để
đánh giá hiệu năng của ứng dụng.
Trong chương tiếp theo, chúng ta tiếp tục nghiên cứu về tầm quan trọng và
vai trò của giá trị đo Điểm chuẩn trong kỹ thuật phần mềm phục vụ để đo hiệu
năng của một nền tảng hoặc một hệ thống khác.
14
- Xem thêm -