Bài toán đặt ra là làm thế nào để đánh giá một cách chính xác hiệu năng của hệ thống dựa vào các số liệu đo đạc về hiệu năng nhằm giảm chi phí, thời gian thực hiện, tài nguyên hệ thống v
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ MINH
ĐÁNH GIÁ HỆ THỐNG THÔNG TIN
DỰA TRÊN WEB
HÀ NỘI – 2015 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ MINH
ĐÁNH GIÁ HỆ THỐNG THÔNG TIN
DỰA TRÊN WEB
HÀ NỘI – 2015
Chuyên ngành: Hệ thống thông tin
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN ĐÌNH VIỆT
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt đƣợc trong luận văn là sản phẩm nghiên cứu, tìm hiểu của riêng cá nhân tôi Trong toàn bộ nội dung của luận văn, những điều đƣợc trình bày hoặc là của cá nhân tôi hoặc là đƣợc tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và đƣợc trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Hà Nội, ngày tháng năm
Học viên
Nguyễn Thị Minh
Trang 4LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn sâu sắc đến các thầy giáo, cô giáo trong khoa Công Nghệ Thông Tin, ban lãnh đạo trường Đại Học Công Nghệ, bộ phận đào tạo Sau đại học đã giảng dạy, tạo mọi điều kiện giúp đỡ tôi trong suốt quá trình học tập và nghiên cứu
Đặc biệt, tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy PGS.TS Nguyễn Đình Việt - người đã hướng dẫn, chỉ bảo và dạy tôi tận tình, chu đáo mong tôi lĩnh hội được
kiến thức thầy truyền đạt để hoàn thành luận văn này Bằng sự kính trọng của người học trò, tôi luôn kính chúc Thầy mạnh khỏe, công tác tốt để tiếp tục hướng dẫn thế hệ sau
Trong quá trình nghiên cứu, do điều kiện và khả năng nghiên cứu của tôi có hạn nên luận văn không tránh khỏi những thiếu sót, tôi kính mong nhận được sự bổ sung, đóng góp ý kiến của các thầy giáo, cô giáo và các bạn để đề tài của tôi được hoàn thiện hơn
Tôi xin chân thành cảm ơn!
Hà Nội, ngày tháng năm
Học viên
Nguyễn Thị Minh
Trang 5MỤC LỤC
LỜI CẢM ƠN 2
MỤC LỤC 3
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 5
DANH MỤC CÁC HÌNH VẼ 6
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN DỰA TRÊN WEB 11
1.1 Khái niệm cơ bản về hệ thống thông tin dựa trên web 11
1.2 Đặc điểm của hệ thống thông tin dựa trên web 12
1.3 Các thành phần của hệ thống thông tin dựa trên web 14
1.4 Vai trò của hệ thống thông tin dựa trên web 16
1.5 So sánh hệ thống thông tin dựa trên web và hệ thống thông tin thông thường 17 1.6 Kết luận 18
CHƯƠNG 2: TỔNG QUAN VỀ ĐÁNH GIÁ HIỆU NĂNG HỆ THỐNG THÔNG TIN DỰA TRÊN WEB 19
2.1 Khái niệm hiệu năng hệ thống thông tin dựa trên web 19
2.2 Mục đích của việc đánh giá hiệu năng 19
2.3 Độ đo hiệu năng 20
2.3.1 Tải 21
2.3.2 Thước đo tải 22
2.3.3 Ước lượng tải 25
2.4 Phân loại kiểm thử hiệu năng 25
2.5 Các lỗi thường gặp trong phân tích và đánh giá hiệu năng hệ thống 27
2.6 Các phần mềm đo hiệu năng 32
CHƯƠNG 3: GIỚI THIỆU VỀ PHẦN MỀM JMETER 38
3.1 Giới thiệu về phần mềm Jmeter 38
3.1.1 Giới thiệu tổng quan 38
3.1.2 Đặc trưng của Jmeter 38
3.2 Cài đặt phần mềm Jmeter 39
3.3 Các thành phần của Jmeter 39
3.4 Jmeter hoạt động như thế nào? 40
3.5 Các yếu tố của một kế hoạch kiểm thử trong Jmeter 41
3.5.1 ThreadGroup 41
3.5.2 Trình điều khiển Controller 42
3.5.3 Listeners 45
Trang 63.5.4 Timers 46
3.5.5 Xác nhận (Assertion) 47
3.5.6 Các yếu tố cấu hình 47
3.5.7 Bộ tiền xử lý 48
3.5.8 Hậu xử lý 48
3.5.9 Thực thi theo trình tự 48
3.5.10 Thuộc tính và biến 49
3.5.11 Dùng biến để kiểm tra các tham số 50
CHƯƠNG 4: THỰC NGHIỆM ĐÁNH GIÁ HIỆU NĂNG HỆ THỐNG THÔNG TIN DỰA TRÊN WEB 51
4.1 Mục tiêu 51
4.2 Giới thiệu trang web bán hàng thời trang christmas-clothing 51
4.3 Môi trường kiểm thử 53
4.4 Kịch bản kiểm thử 53
4.5 Kết quả kiểm thử 55
4.5.1 Tỉ lệ lỗi 58
4.5.2 Thời gian phản hồi 58
4.5.3 Thông lượng 59
4.5.4 Sử dụng tài nguyên máy chủ 60
4.6 Phân tích đánh giá kết quả mô phỏng 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 69
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Viết tắt Diễn giải Tiếng Việt
HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản HTTP Hypertext Transfer Protocol Giao thức truyền siêu văn bản
IS Information system Hệ thống thông tin
IP Internet Protocol Giao thức liên mạng (giao thức IP) JVM Java Virtual Machine Máy ảo java
PR Public relations Quan hệ công chúng
PT Performance test Kiểm tra hiệu năng
Simulation Application Ứng dụng mô phỏng TCP Transmission Control Protocol Giao thức điều khiển truyền vận UDP User Datagram Protocol Giao thức gói dữ liệu người dùng Web World Wide Web Mạng lưới toàn cầu
WBIS Web Based Information System Hệ thống thông tin dựa trên web
Trang 8
DANH MỤC CÁC HÌNH VẼ
Hình 1 1 Hệ thống thông tin dựa trên web 13
Hình 1 2 Các thành phần của hệ thống thông tin 14
Hình 2 1 Quan hệ hiệu năng theo thời gian đáp ứng 23
Hình 2 2 Ước lượng trạng thái tải của hệ thống 25
Hình 3 1 Các thành phần của một kết hoạch kiểm thử 40
Hình 3 2 Cách thức hoạt động của Jmeter 40
Hình 3 3 Jmeter thể hiện tải lớn 41
Hình 3 4 Chi tiết của một Thread Group 42
Hình 3 5 Giao diện thiết lập tham số HTTP Request 43
Hình 3 6 Giao diện Spline Visualizer 46
Hình 4 1 Thời gian phản hồi chấp nhận được của hệ thống 52
Hình 4 2 Mô hình HTTP request/ response điển hình của một hệ thống dựa trên web đang có n người sử dụng cùng truy cập 52
Hình 4 3 Thiết lập các kịch bản kiểm thử 55
Hình 4 4 Kết quả kiểm thử cơ sở 56
Hình 4 5 Kết quả thử nghiệm với số người dùng đồng thời khác nhau 57
Hình 4 6 Tỉ lệ lỗi với số người dùng đồng thời lần lượt là 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300 58
Hình 4 7 Thời gian phản hồi với số người dùng đồng thời khác nhau 59
Hình 4 8 Thông lượng với số người dùng đồng thời khác nhau 60
Hình 4 9 Sử dụng CPU trên máy chủ với số người dùng đồng thời khác nhau 62
Hình 4 10 Mối quan hệ giữa số lượng user và số lượng người tham gia hệ thống 62
Hình 4 11 Sử dụng bộ nhớ trên máy chủ với số người dùng đồng thời khác nhau 64
Hình 4 12 Sử dụng Disk I/O với số người dùng khác nhau 66
Trang 9DANH MỤC CÁC BẢNG BIỂU
Bảng 2 1 Bảng so sánh các công cụ mã nguồn mở 34
Bảng 2 2 Bảng so sánh các công cụ thương mại 36
Bảng 4 1 Cấu hình máy chủ 53
Bảng 4 2 Cấu hình máy client 53
Bảng 4 3 Các kịch bản kiểm thử sử dụng phần mềm Jmeter 54
Trang 10LỜI MỞ ĐẦU
1 Đặt vấn đề, định hướng nghiên cứu
Ngày nay cùng với sự phát triển nhanh chóng của khoa học và công nghệ, các sản phẩm, dịch vụ phát triển với tốc độ nhanh chưa từng có Cùng với sự phát triển ngoạn mục của Internet, các dịch vụ trực tuyến ra đời, các hệ thống thông tin dựa trên web được phát triển rộng rãi với tốc độ vũ bão
Bên cạnh những yếu tố ảnh hưởng đến chất lượng hệ thống thông tin dựa trên web như giao diện, khả năng tương thích, chức năng và bảo mật cũng như mạng kết nối, kiến trúc Server của hệ thống, các nỗ lực tối ưu hóa giải thuật, mã nguồn,… Thì hiệu năng của các hệ thống thông tin dựa trên Web đóng vai trò quan trọng, là yếu tố quyết định ảnh hưởng tới cảm nhận của người sử dụng đầu cuối về hệ thống, đảm bảo tính linh hoạt, tính mở rộng được, dễ dàng thay đổi và hiệu quả hoạt động cao cho hệ thống, giúp các nhà quản trị đề ra chiến lược tối ưu hóa hiệu năng một cách hợp lí… Chẳng hạn như, khách hàng truy cập một trang Web bán hàng trực tuyến của một công
ty Sau một vài phút hoặc lâu hơn nữa, hệ thống mới tải xong ảnh sản phẩm mà họ cần tìm Việc này chắc hẳn sẽ ảnh hưởng đến thái độ của khách hàng đối với công ty đó
Họ cảm thấy khó chịu, mất thời gian Những lần sau, họ sẽ đắn đo hoặc có thể không bao giờ quay trở lại trang này nữa Điều này đồng nghĩa với việc công ty mất quan hệ khách hàng, mất doanh thu Ở mức độ nghiêm trọng hơn, khách hàng có thể mất tiền, thậm chí rất nhiều tiền do lỗi hiệu năng của hệ thống Vì vậy việc đánh giá được hiệu năng của hệ thống thông tin dựa trên Web là điều rất cần thiết và thường được thực hiện thông qua kiểm thử hiệu năng hệ thống
Bài toán đặt ra là làm thế nào để đánh giá một cách chính xác hiệu năng của hệ thống dựa vào các số liệu đo đạc về hiệu năng nhằm giảm chi phí, thời gian thực hiện, tài nguyên hệ thống và nguồn nhân lực trong môi trường nhiều người dùng, có nhiều hoạt động khác nhau Các kỹ thuật được dùng để dự đoán và đánh giá hiệu năng hệ thống thông tin dựa trên web trong quá trình thiết kế và triển khai thực hiện hệ thống
có khi chỉ là tính toán bằng tay, nhưng cũng có khi được mô phỏng rất tinh vi Các số liệu hiệu năng đo đạc thường được thu thập ở điều kiện hệ thống có tải thấp, tuy nhiên việc đánh giá hiệu năng có vai trò quan trọng hơn cho môi trường tải cao, dĩ nhiên vẫn đảm bảo đúng cho cả trường hợp tải thấp Có nhiều hướng tiếp cận để giải quyết bài toán này Ở luận văn này tôi sử dụng công cụ Apache Jmeter1 để kiểm tra hiểu năng hệ thống Để từ đó đánh giá hiệu năng tạo cơ sở khoa học cho các công ty/đơn vị hoạch định, cải tiến cũng như phát triển hệ thống trở nên hoàn thiện hơn, người sử dụng cảm thấy hài lòng hơn Việc đánh giá hệ thống thông tin dựa trên web là đánh giá hệ thống
có đáp ứng được các mục tiêu đặt ra không? Người sử dụng hài lòng ở mức nào? Đánh giá 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
1
Đường dẫn truy cập: http://jmeter.apache.org/
Trang 11dụng trong môi trường nhiều người dùng, có nhiều hoạt động khác nhau Cụ thể đánh giá hiệu năng HTTT dựa trên web với hai mục đích quan trọng: Thứ nhất đánh giá khả năng chịu tải của hệ thống, nhằm biết được miền tải mà hệ thống hoạt động ổn định;
dự đoán trước được mức tải sẽ làm hệ thống bị quá tải; chuẩn bị kế hoạch mở rộng hoặc nâng cấp hệ thống trong tương lai Thứ hai tìm ra các “nút cổ chai” trong hệ thống để điều chỉnh hoặc nâng cấp một cách có hiệu quả cao nhất Đo lường được các yếu tố trọng yếu của hệ thống thong tin dựa trên web và đưa ra những cải tiến, phát triển để đảm bảo hệ thống thành công trong hiện tại, tương lai và phát triển bền vững
2 Mục tiêu của luận văn
Luận văn tập trung nghiên cứu, đánh giá hiệu năng của các hệ thống thông tin dựa trên web: các vấn đề ảnh hưởng đến hiệu năng phần mềm; phương pháp đánh giá hiệu năng; giải pháp cải tiến hiệu năng hiện có; kỹ thuật/ công cụ ;xác định tốc độ, khả năng phân tải và mức độ tin tưởng của người dùng đối với các hệ thống thông tin
dựa trên web trong môi trường nhiều người dùng, có nhiều hoạt động khác nhau
3 Đối tượng và phạm vi nghiên cứu của luận văn
Luận văn nghiên cứu, tìm hiểu về đánh giá hiệu năng mạng nói chung, tập trung chủ yếu vào các mô hình đánh giá hệ thống thông tin dựa trên web, thiết kế kịch bản trong đánh giá hiệu năng các hệ thống thông tin dựa trên web
Sử dụng công cụ Jmeter để kiểm tra hiệu năng của các hệ thống thống tin dựa trên web, cụ thể là website bán hàng trực tuyến http://christmas-clothing.com/ để đánh giá khả năng chịu tải và thời gian đáp ứng của hệ thống
4 Phương pháp nghiên cứu
Đề tài tập trung nghiên cứu, tìm hiểu các mô hình, phương pháp và kỹ thuật đánh giá hệ thống thông tin dựa trên web Đánh giá, kiểm tra hiệu năng của các ứng dụng chạy trên hệ thống web trong các môi trường có nhiều người dùng đồng thời truy cập vào hệ thống
Sử dụng công cụ Apache Jmeter mô phỏng lượng người dùng, thiết kế và chạy các kịch bản kiểm thử Kết quả của các kịch bản kiểm thử để xác định khả năng đáp ứng của hệ thống, là cơ sở cho tổ chức có cái nhìn chi tiết về mức độ hoạt động của từng thiết bị trong hệ thống, lập kế hoạch phát triển theo nhu cầu hoặc triển khai lại cho phù hợp trước khi đưa ra sử dụng chính thức
5 Ý nghĩa khoa học và thực tiễn của đề tài
Đề tài đã ứng dụng những kiến thức đã học trong đánh giá hiệu năng mạng, kiểm thử phần mềm góp phần nghiên cứu đánh giá hiệu năng của các hệ thống thông tin dựa trên web ở môi trường có những hoạt động và số lượng người dùng khác nhau Đó chính là điều kiện cần thiết trong việc phát triển và mở rộng hệ thống thông tin dựa trên web
Trang 126 Cấu trúc của luận văn
Bố cục của luận văn tuân theo mẫu của trường Đại Học Công Nghệ - Đại học Quốc Gia Hà Nội; luận văn gồm 4 chương chính, ngoài ra còn có các phần mở đầu, kết luận và tài liệu tham khảo Phần kết luận nêu tóm tắt các vấn đề đã trình bày trong các chương, đánh giá các kết quả đã đạt được Nội dung các chương được tóm tắt như sau:
Chương 1: Trình bày tổng quan về hệ thống thông tin, hệ thống thông tin trên
nền web, sự phụ thuộc của các hệ thống trên nền web vào mạng toàn cầu, các thành phần và vai trò của hệ thống thông tin trên nền web
Chương 2: Nghiên cứu các mô hình, phương pháp, mục tiêu và các yếu tố ảnh
hưởng đến việc đánh giá hiệu năng của hệ thống thông tin web
Chương 3: Tìm hiểu về phần mềm mã nguồn mở Apache Jmeter để mô phỏng
một tải có thể thay đổi được từ nhẹ đến nặng đặt lên một máy chủ, phân tích hiệu suất tổng thể của hệ thống theo các mức tải trọng khác nhau
Chương 4: Thực hiện mô phỏng người dùng đồng thời bằng Jmeter cùng truy
cập vào website bán hàng trực tuyến http://christmas-clothing.com/ để phân tích đánh giá khả năng chịu tải và thời gian đáp ứng của hệ thống
Phần kết luận: Tóm lược kết quả đạt được của luận văn và định hướng phát triển
tương lai
Trang 13CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN DỰA
TRÊN WEB 1.1 Khái niệm cơ bản về hệ thống thông tin dựa trên web
Hệ thống (System): Hệ thống là tập hợp các thành phần có liên hệ nội tại, cùng vận động, tương tác để thực hiện một mục đích xác định nào đó
Thông tin (Information): Thông tin (system) là tập hợp các yếu tố dữ liệu được truyền từ nguồn phát đến nguồn nhận Dữ liệu (data) là các yếu tố rời rạc như: một con
số, một chuỗi ký tự
Hệ thống thông tin (Information System): Hệ thống thông tin là một hệ thống
bao gồm các yếu tố có quan hệ với nhau cùng làm nhiệm vụ thu thập, xử lý, lưu trữ và phân phối thông tin và dữ liệu và cung cấp một cơ chế phản hồi để đạt được một mục
tiêu định trước Hệ thống thông tin phát triển qua bốn loại hình:
- Hệ xử lý dữ liệu: lưu trữ và cập nhật dữ liệu hàng ngày, ra các báo cáo theo định
kỳ (Ví dụ: Các hệ thống tính lương)
- Hệ thống thông tin quản lý (Management Information System - MIS): gồm cơ sở
dữ liệu hợp nhất và các dòng thông tin giúp con người trong sản xuất, quản lý và
Khái niệm về hệ thống thông tin dựa trên web
World Wide Web, gọi tắt là Web hoặc WWW, mạng lưới toàn cầu là một không gian thông tin toàn cầu mà mọi người có thể truy nhập (đọc và viết) qua các máy tính nối với mạng internet Thuật ngữ này thường được hiểu nhầm là từ đồng nghĩa với chính thuật ngữ internet Nhưng web thực ra chỉ là một trong các dịch vụ chạy trên
internet, ngoài web ra còn các dịch vụ khác như thư điện tử hoặc FTP
Theo [10], Hệ thống thông tin dựa trên web hoặc hệ thống thông tin web, là
một hệ thống thông tin có sử dụng công nghệ web internet để cung cấp thông tin và dịch vụ cho người sử dụng hay các hệ thống thông tin, ứng dụng khác Nó là một hệ
Trang 14thống phần mềm với mục đích chính là để giúp cho con người biết đến và duy trì dữ liệu
Web dựa trên một kỹ thuật biểu diễn thông tin siêu văn bản (hypertext), trong đó các từ được chọn trong văn bản có thể được ''mở rộng" bất kỳ lúc nào Sự mở rộng ở đây có thể được hiểu là chúng có các liên kết (links) tới các tài liệu khác (có thể là văn bản, hình ảnh, âm thanh hoặc hỗn hợp) Siêu văn bản là một loại văn bản thông thường nhưng lại chứa một hay nhiều tham chiếu tới các văn bản khác
Như đã nói ở trên, Web không phải là một hệ thống cụ thể mà là một tập hợp các công cụ tiện ích và siêu giao diện (meta-Interace) giúp người sử dụng có thể tự tạo ra các "siêu văn bản" và cung cấp cho người dùng khác trên Internet và người ta gọi đó là Công nghệ Web
URL (Union Resource Locator)
Để thực hiện việc truy nhập, liên kết các tài nguyên khác nhau theo kỹ thuật Siêu văn bản, Web sử dụng khái niệm URL Đây chính là một dạng tên để định danh duy nhất cho một tài liệu hoặc một dịch vụ trong Web
Cấu trúc của một URL: Protocol://host.domain/derictory/filename
Ví dụ: HTTP://www.microsoft.com/index.htm
Protocol có thể là:
Ftp file ở trong một Fpt Server Ví dụ: Ftp://ftp.microsoft.com/file.doc
Mail to: Địa chỉ E-mail cá nhân Vídụ: someone@microsoft.com
File: Truyền file
HTTP: (Hypertext Transfer Protocol)
URL được sử dụng trong tất cả các dịch vụ thông tin của Internet và đặc biệt là trong Web Mỗi trang Web có một URL duy nhất để xác định nó, thông qua URL có thể truy cập tới bất kì tài nguyên của bất kì dịch vụ nào trên Internet
Giao thức http
Trình duyệt web (Web browser) và máy chủ web (Web Server) giao tiếp với nhau thông qua giao thức HTTP (HyperText Transfer Protocol) Giao thức này hỗ trợ truyền và trao đổi nhiều thông tin khác nhau như văn bản, hình ảnh, âm thanh,… theo các chuẩn MIME sao cho thông tin khi truyền đi sẽ được nhận một cách đúng đắn
1.2 Đặc điểm của hệ thống thông tin dựa trên web
Hệ thống mạng toàn cầu đã trở nên rộng khắp thông qua một loạt các tiêu chuẩn được thiết lập rộng rãi và đảm bảo được các thành phần ở các mức độ khác nhau Web được sử dụng chủ yếu như là một phương tiện truyền thông Các dịch vụ world wide
Trang 15web ngày càng đóng vai trò quan trọng đáp ứng nhu cầu đang gia tăng với tốc độ cao, ảnh hưởng đáng kể trong các cơ sở thông tin lớn
Không giống như hệ thống dựa trên nền tảng server thường đòi hỏi khắt khe về mặt kĩ thuật và chi phí server cao, hệ thống trên nền tảng web chỉ cần một thiết bị mạng duy nhất rất dễ dàng cài đặt và có thể được cấu hình trong một vài phút thay vì mất hàng giờ Điều này khiến hệ thống dựa trên nền tảng web đặc biệt thích hợp cho các khu vực nhỏ, ở xa hoặc văn phòng tạm thời
Tất cả dữ liệu về hệ thống có thể được truy cập thông qua một trình duyệt internet trên bất kỳ thiết bị nào, bao gồm máy tính xách tay, máy tính bảng và cả điện thoại Điều này cho phép người dùng quản việc lý được việc ra vào các khu vực (sites)
từ bất cứ đâu
Các giải pháp quản lý vào ra dựa trên nền tảng web cũng có nhiều khả năng tích hợp được với các hệ thống an ninh dựa trên nền tảng internet khác như là các hệ thống giám sát bằng camera IP Điều này có nghĩa là các hệ thống dựa trên nền tảng web sẽ nằm trong số các hệ thống sẽ còn được sử dụng lâu dài trong tương lai
Hình 1 1 Hệ thống thông tin dựa trên web
Hệ thống dựa trên nền tảng web loại bỏ việc sử dụng các thiết bị máy chủ đắt tiền cần thời gian để thiết lập; vậy nên giúp giảm thiểu đáng kể chi phí đầu tư ban đầu Công nghệ này đặc biệt kinh tế cho các khu vực, địa bàn nhỏ
Tất cả các đặc điểm nhận dạng, vai trò và các chính sách trên hệ thống có thể được đồng bộ hóa một cách thuận tiện theo thời gian thực qua internet
Trang 16Hệ thống thông tin trên nền tảng web chỉ cần một điểm bảo trì duy nhất: một máy chủ, một cơ sở dữ liệu, một đội ngũ công nghệ thông tin, và do vậy chi phí vận hành, bảo trì và nâng cấp thấp hơn và giảm đáng kể trong tổng chi phí sở hữu
Hệ thống thông tin trên nền web mở rộng cho các điểm mới một cách dễ dàng với đầu tư tối thiểu cho công nghệ thông tin Không cần phải triển khai thêm một máy chủ hoặc một máy trạm với cấu hình mạnh Một máy tính bình thường, có kết nối internet với một trình duyệt chuẩn là tất cả những gì cần phải có
Website là một tập hợp các trang web (web pages) bao gồm văn bản, hình ảnh, video, flash v.v… thường chỉ nằm trong một tên miền (domain name) hoặc tên miền phụ (subdomain) Trang web được lưu trữ (web hosting) trên máy chủ web (web server) có thể truy cập thông qua internet
Website đóng vai trò là một văn phòng hay một cửa hàng trên mạng internet – nơi giới thiệu thông tin về doanh nghiệp, sản phẩm hoặc dịch vụ do doanh nghiệp cung cấp…Có thể coi website chính là bộ mặt của doanh nghiệp, là nơi để đón tiếp và giao dịch với các khách hàng, đối tác trên Internet
1.3 Các thành phần của hệ thống thông tin dựa trên web
Hệ thống thông tin tập trung trong nó hầu như tất cả các công nghệ của công nghệ thông tin – truyền thông
Hình 1 2 Các thành phần của hệ thống thông tin
Ở đây, vòng trong của hệ thống chính là mạng máy tính gồm các đơn vị chức năng thực hiện việc nhập, xử lý, xuất, lưu giữ (các bộ xử lý, bộ nhớ, thiết bị nhập, thiết
bị xuất) dữ liệu và thông tin - đầu vào hoặc đầu ra của quá trình xử lý và đơn vị kiểm
Trang 17soát (bộ điều khiển) quá trình tạo ra sản phẩm thông tin trên Để đảm bảo cho việc thực hiện các quá trình trên, cần có các tài nguyên (còn gọi là dự trữ hay nguồn lực) của hệ thống, biểu diễn ở vành ngoài của sơ đồ Đó là các tài nguyên về phần cứng, phần mềm, mạng, dữ liệu và nhân lực
- Tài nguyên về nhân lực: con người là một yếu tố quan trọng của hệ thống thông tin Con người có kĩ thuật, có khả năng để điều khiển mọi hoạt động của hệ thống thông tin và con người cũng chính là chủ thể là mục tiêu mà hệ thống thông tin phục vụ Các chuyên gia hệ thống thông tin, những người điều khiển hệ thống như chuyên gia phân tích hệ thống, chuyên gia phát triển, quản trị hệ thống… Người dùng cuối là tất cả những người sử dụng hệ thống thông tin trong doanh nghiệp, từ các nhà lãnh đạo, các cấp quản lý, cho đến các nhân viên thực hành và tác nghiệp
- Tài nguyên phần cứng: Là máy móc, là thiết bị hiện hữu, trực tiếp thao tác, vận hành trong hệ thống Máy móc: máy tính, màn hình, các ổ đĩa, máy in, máy quét… (tức là các thiết bị dùng trong xử lý) Môi trường (hay media): đĩa mềm, đĩa cứng, đĩa CD, bìa nhớ, giấy, v.v (tức là các phương tiện dùng để lưu trữ)
- Tài nguyên phần mềm: Là những ứng dụng, những chương trình góp phần điều khiển và xử lý thông tin trong toàn bộ hệ thống, nhận sự điều khiển của con người và thực hiện xử lý thông tin theo lộ trình đã được thiết lập sẵn Các chương trình: Hệ điều hành, các chương trình ứng dụng, các chương trình nghiệp vụ như tính lương, quản lý khách hàng… (dùng để điều khiển máy tính xử lý thông tin) Các quy trình thủ tục: cho nhập liệu, để sửa lỗi, kiểm tra… (dùng để điều chỉnh hoạt động của con người)
- Tài nguyên dữ liệu: Dữ liệu là những thông tin được đưa vào hệ thống, chúng được xử lý, phân tích và lưu trữ trong hệ thống thông tin Dữ liệu là nhân tố chính để hệ thống thông tin hoạt động, là yếu tố đầu vào cho hệ thống, là cái mà
hệ thống cần phải thao tác, lưu trữ… và bảo vệ mật thiết (an ninh thông tin) Mô
tả dữ liệu: các bản ghi của khách hàng, các hồ sơ nhân viên, thông tin sản phẩm,
cơ sở dữ liệu Cơ sở tri thức: những kiến thức, những thông tin kinh doanh, hoạt động thị trường…
- Tài nguyên mạng: Mang yếu tố của hoạt động truyền thông trong hệ thống, giúp truyền thông tin dữ liệu trong hệ thống và giữa hệ thống với bên ngoài Môi trường truyền thông, quản lý và truy cập mạng, các dịch vụ mạng Trong sơ đồ này, môi trường (media) dùng lưu giữ thông tin và truyền thông là một phần của
“phần cứng” Các thủ tục được xem như một thành phần của “phần mềm”, phần liên quan đến con người Còn cơ sở tri thức được xếp vào tài nguyên dữ liệu của
hệ thống thông tin
Trang 18- Việc xây dựng một hệ thống thông tin với các thành phần như trên đòi hỏi phải
có một cái nhìn hệ thống không chỉ về mặt công nghệ, mà còn về tổ chức, một tầm nhìn xa về các biện pháp đưa hệ thống công nghệ thông tin/tổ chức đó phục
vụ cho một tổ chức Đó là một cách nhìn, một cách tiếp cận cơ bản, xem xét các
sự vật trong các mối tương quan của chúng khi hoạt động nhằm đạt đến mục tiêu
đã định, gọi là tiếp cận hệ thống, hay quan điểm hệ thống
1.4 Vai trò của hệ thống thông tin dựa trên web
Hệ thống thông tin dựa trên web là khái niệm xuất hiện trên thế giới từ lâu Hiện nay, ở Việt Nam sự phát triển của các hệ thống thông tin trên nền web cũng là một trong những điểm sáng đáng chú ý trong lĩnh vực công nghệ thông tin
Cùng với quá trình chạy đua trong việc nâng cấp hệ điều hành (OS) từ các nhà cung cấp cũng như sự phát triển của HTML5 và phần cứng thì các hệ thống thông tin chạy trên nền web cũng theo đó phát triển rất mạnh Với những hạn chế trước đây như tốc độ truy cập, giao diện người dùng không hấp dẫn đã dần được khắc phục Các nhà phát triển phần mềm đang dần chuyển sang mảnh đất được cho là khá màu mỡ này, vì không bị giới hạn bởi hệ điều hành cụ thể, và đặc biệt phần mềm có thể được nâng cấp nhanh chóng hơn Vậy những ưu điểm của hệ thống thông tin dựa trên web là gì?
- Truy cập qua internet: Hầu hết 100% các hệ thống thông tin đều yêu cầu và kết nối Internet một cách nhanh chóng, dễ dàng để sử dụng Sự phát triển mạnh mẽ không ngừng của internet cũng là một trong những yếu tố thúc đẩy quá trình tìm tòi và sáng tạo không ngừng của các nhà phát triển trên nền công nghệ web
- Cài đặt và nâng cấp phần mềm hoặc ứng dụng dễ dàng, thuận lợi: Khác với ứng dụng trước đây phải được tải và cài đặt trực tiếp lên máy tính/điện thoại thì bản chất của ứng dụng web là dựa trên trình duyệt web, cho nên người dùng chỉ cần
"refresh" là có thể thấy ngay sự thay đổi (nếu có) về giao diện hoặc cập nhật phiên bản mới
- Giao diện người dùng: Nhiều ý kiến cho rằng, nếu ứng dụng gốc có thể đáp ứng những giao diện khó cũng như được thiết kế ấn tượng thì hệ thống thông tin dựa trên web đơn giản hơn Đặc biệt, gần đây, với sự tiến bộ của HTML5, Javascript (jQuery Mobile) đã và đang mang lại nhiều nét tươi mới cho các hệ thống thông tin hoặc ứng dụng web Đó cũng là một lợi thế lớn cho những hệ thống thông tin / ứng dụng web mới
- Tương thích với phần cứng: Xã hội ngày càng phát triển, nhu cầu sử dụng máy tính cũng như các thiết bị di động SmartPhone càng trở nên thiết yếu và phổ biến rộng rãi So với phần mềm gốc phải phụ thuộc nhiều vào hệ điều hành, cả phần cứng thì hệ thống thông tin dựa trên web lại càng chứng tỏ ưu điểm của phần mềm trên nền web: không phụ thuộc vào hệ điều hành, chỉ cần thiết bị hỗ trợ khả
Trang 19năng truy cập Internet; CSS là một yếu tố quan trọng trong việc tạo nên giao diện cũng như tính tương thích với thiết bị
- Đa phương tiện: Ứng dụng gốc phụ thuộc nhiều vào phần mềm phát nhạc/video Định dạng Adobe Flash chỉ được hỗ trợ trên một vài thiết bị (RIM OS7 trở lên, Android OS 2.1 trở lên) Còn Nghe nhạc/Video của ứng dụng web lại phụ thuộc nhiều vào trình duyệt có hỗ trợ hay không iOS sử dụng HTML5 trong việc hỗ trợ định dạng Flash
- Chức năng tìm kiếm: Trên thực tế, phần mềm / ứng dụng gốc chỉ tìm kiếm được trên thiết bị Còn những nội dung khác thì thiết bị sẽ kết nối với máy tìm kiếm khác bằng việc mở một phần mềm / ứng dụng web Song đối với hệ thống thông tin dựa trên web, module tìm kiếm là chức năng mặc định Đây rõ ràng cũng là một trong những lợi thế của hệ thống thông tin dựa trên web
- Khả năng chia sẻ ứng dụng: Khả năng chia sẻ dữ liệu của các hệ thống thông tin dựa trên web giờ đây đơn giản hơn nhiều, chỉ cần gửi liên kết người nhận sẽ tự biết phải làm gì để mở phần mềm / ứng dụng lên
- Phát triển phần mềm: Quá trình cập nhật cũng như quá trình nâng cấp khá đơn giản, không phải xây dựng phần mềm lại từ đầu rồi mới xuất bản mà thao tác đơn giản, đôi khi chỉ cần 1 click chuột
- Cung cấp và phân phối: Đối với ứng dụng trước đây, người phát triển phần mềm cần phải xin phép nhà cung cấp để có thể đưa sản phẩm của mình lên các kho lưu trữ ứng dụng trực tuyến như Apple App Store, Blackberry AppWorld, Google Play… Nhưng với ứng dụng web thì ngược lại, người dùng hoàn toàn có thể chủ động và dễ dàng chia sẻ liên kết website, chia sẻ thông tin trên apps
Với những ưu điểm đó, hệ thống thông tin dựa trên web ngày càng trở nên phổ biến và là nền tảng không thể thiếu của tổ chức, doanh nghiệp
Hệ thống thông tin dựa trên web có rất nhiều lợi ích tuy nhiên nó cũng có rất nhiều bất cập mà khi xây dựng các nhà phát triển phải đặc biệt quan tâm Mạng internet là kênh dẫn hữu hiệu nhất cho quá trình toàn cầu hóa truyền thông đại chúng, nhưng cũng là kênh tiềm ẩn những nguy hiểm, một trong những vấn đề đó chính là vấn đề an ninh hệ thống, độ tin cậy và sự đảm bảo về thông tin cá nhân của người sử dụng
Những hạn chế của các hệ thống thông tin dựa trên web tồn tại song song cùng các tiện ích của nó Tuy nhiên, tính biện chứng của vấn đề là ở chỗ, sự vật nào cũng vậy, sức mạnh càng lớn thì càng tiềm ẩn nhiều nguy cơ Do đó phải có cơ chế quản lý phù hợp để các hệ thống phục vụ sự phát triển với với tốc độ nhanh và bền vững hơn
1.5 So sánh hệ thống thông tin dựa trên web và hệ thống thông tin thông thường
Trang 20Hệ thống thông tin trên dựa trên web cho phép truy cập thông tin mọi lúc, mọi nơi, từ bất cứ thiết bị nào kể cả trên điện thoại thông minh hoặc máy tính bảng như iPad, không phải cài đặt, giảm chi phí triển khai phần mềm Cho phép người sử dụng
có thể tự động hóa nghiệp vụ của mình, kiểm soát dữ liệu rõ ràng hơn Điều này có nghĩa là ta sẽ có một cái nhìn chính xác, kịp thời về hiệu quả của các hoạt động trong doanh nghiệp, giúp đưa ra quyết định tốt hơn Ví dụ, đội ngũ bán hàng có thể truy cập xem hóa đơn và lịch sử thanh toán của khách hàng của họ bất lúc nào, bất cứ đâu mà không cần phải gọi cho bộ phận kế toán; điều này sẽ giảm tải cho bộ phận kế toán và cho phép họ thực hiện công việc của mình hiệu quả hơn
So với các hệ thống thông tin truyền thống thì hệ thống thông tin dựa trên web mang nhiều ưu điểm
Là phần mềm chạy hoàn toàn trên nền web; người sử dụng chỉ cần có trình duyệt
để chạy phần mềm, tương thích với hầu hết các hệ điều hành, luôn luôn được cập nhật
vì chúng chạy trên server sẵn sàng 24/7; dễ dàng backup dữ liệu thường xuyên; có thể truy cập mọi lúc, mọi nơi, miễn là bạn có internet, không đòi hỏi đường truyền có tốc
độ cao, truy cập vào server làm việc dễ dàng bằng đường truyền internet, mạng 3G, GPRS mọi lúc mọi nơi; sử dụng online hoặc offline trên các mạng internet, WAN, LAN; chi phí triển khai cực rẻ so với phần mềm chạy trên desktop; cở sở dữ liệu tập trung trên 1 server duy nhất, dữ liệu phát sinh trên toàn hệ thống chi nhánh, cửa hàng, văn phòng giao dịch,… luôn được cập nhật tức thời về server; không cần cài đặt trên từng máy tính sử dụng
Với phần mềm chạy trên nền web, chúng ta có thể dùng cho nhiều cửa hàng, công ty sử dụng chung một cơ sở dữ liệu và theo dõi quản lý được các bộ phận riêng lẻ
Hệ thống thông tin dựa trên web cho phép các bộ phận kết nối với nhau hiệu quả, cho phép dễ dàng tích hợp các dịch vụ mở rộng như email, công cụ phân tích, cho phép kết nối từ xa, người sử dụng có thể truy cập ngay trên các thiết bị có internet Đây là một trong những đặc điểm mà hệ thống thông tin thông thường không có được Như vậy, so với hệ thống thông tin thông thường thì hệ thống thông tin dựa trên web đem lại rất nhiều tiện ích cho người sử dụng Nó là nền tảng để các phần mềm phát triển nhanh chóng và hiệu quả
1.6 Kết luận
Chương này đã trình bày tổng hợp tất cả các khái niệm, kiến thức và hiểu biết chung về hệ thống thông tin dựa trên web Các đặc điểm, thành phần và vai trò của hệ thống thông tin dựa trên web cũng như sự khác nhau giữa hệ thống thông tin thông thường và hệ thống thông tin dựa trên web
Trang 21CHƯƠNG 2: TỔNG QUAN VỀ ĐÁNH GIÁ HIỆU NĂNG HỆ
THỐNG THÔNG TIN DỰA TRÊN WEB2.1 Khái niệm hiệu năng hệ thống thông tin dựa trên web
Theo nghĩa chung [1], hiệu năng là một độ đo công việc mà một hệ thống thực hiện được Hiệu năng chủ yếu được xác định bởi sự kết hợp của các nhân tố: tính sẵn sàng để dùng (availability), thông lượng (throughput) và thời gian đáp ứng (responsetime)
Theo [6], Kiểm thử hiệu năng nói chung là một loại kiểm thử với với ý định là để xác định khả năng phản hồi, thông lượng, độ tin cậy và/hoặc khả năng mở rộng của hệ thống dưới lượng tải công việc (workload) xác định Theo đó, các tác giả cho rằng các hoạt động liên quan đến hiệu năng, như kiểm tra và chỉnh sửa, quan tâm đến việc đạt được thời gian phản hồi (response times), thông lượng (throughput) và các mức độ tối
ưu hóa tài nguyên (resource-utilization) phù hợp với các mục tiêu hiệu năng đối với ứng dụng cần kiểm tra
Đánh giá hiệu năng là tiến trình thu thập và phân tích thông tin mà trong đó dữ liệu đo lường được lập để dự đoán khi nào các mức tải sẽ vượt quá khả năng chịu đựng của nguồn tài nguyên của hệ thống Trong tiến trình này chúng ta sẽ tập hợp các giá trị chuẩn Các giá trị này được sử dụng để xây dựng các kịch bản kiểm thử tải và quá tải khác nhau Các số liệu chuẩn đó cũng được sử dụng như ranh giới giúp cho ta phát hiện khi nào hiệu năng hệ thống được cải thiện hoặc bắt đầu giảm đi Kết quả của việc đánh giá này cung cấp cho người nghiên cứ hiểu biết sâu sắc về hiệu năng và thời gian đáp ứng của hệ thống trong các điều kiện thực tế
Với các hệ thống thông tin dựa trên web trong thực tế cần phải đảm bảo ba yếu tố cần thiết sau Một là tính co giãn được (Scalability) Tính co giãn được của một hệ thống thông tin dựa trên Web thể hiện ở chỗ hệ thống đó phải luôn luôn phù hợp với những yêu cầu đặt ra ban đầu của nó, đồng thời cũng có thể thích ứng với những sự phát triển, mở rộng hay sự co hẹp của hệ thống về sau này Hai là sự đảm bảo về hiệu năng của hệ thống (Performance) Nhắc tới hiệu năng ở đây là nhắc tới việc các hệ thống thông tin dựa trên web phải thực thi các câu truy vấn một cách nhanh chóng, hoàn thành yêu cầu của người sử dụng trong một khoảng thời gian ngắn hoặc chấp nhận được, giảm thiểu sự chậm trễ trong các bản tin gửi đi và thời gian xử lí của hệ thống trong điều kiện mạng băng thông rộng Ba là tính dự đoán được (Predictability), nghĩa là hệ thống thông tin dựa trên Web phải đảm bảo sao cho không còn chỗ nào trong hệ thống còn mơ hồ, không rõ ràng Thời gian đáp ứng của hệ thống cũng phải là một đại lượng có thể dự đoán được Theo ba yếu tố kể trên, chúng ta sẽ xem xét yếu tố
về hiệu năng của hệ thống thông tin dựa trên Web
2.2 Mục đích của việc đánh giá hiệu năng
Trang 22Trong hệ thống mạng của một tổ chức, giả sử các chức năng đều hoạt động bình thường, tuy nhiên thường xuyên bị người dùng phàn nàn về hiệu suất trong giờ cao điểm Do đó ta cần xác định:
- Thiết bị nào trong hệ thống cần nâng cấp?
- Nâng cấp phần mềm hay phần cứng?
- Đâu là điểm yếu (điểm nghẽn cỗ chai) trong hệ thống giúp tổ chức có kế hoạch đầu tư nâng cấp hạ tầng công nghệ thông tin hoặc phần mềm ứng dụng một cách hợp lý và chính xác Giảm thiểu các chi phí đầu tư không cần thiết
Đối với hệ thống mạng mới được triển khai ta cần xác định:
- Hiệu năng hoạt động thực tế của hệ thống so với nhu cầu đề ra?
- Hiệu năng hoạt động của hệ thống so với cam kết của nhà triển khai?
- Việc đo hiệu năng của hệ thống giúp cho tổ chức đánh giá được khả năng phục
vụ của hệ thống mạng, thẩm định hiệu năng hệ thống so với nhu cầu đề ra, giúp
tổ chức lập kế hoạch phát triển theo nhu cầu hoặc triển khai lại cho phù hợp trước khi đưa ra sử dụng chính thức
Đánh giá hiệu năng của hệ thống được xây dựng với mục đích xác định khả năng đáp ứng của hệ thống Giúp tổ chức có cái nhìn chi tiết về mức độ hoạt động của từng thiết bị trong hệ thống; khả năng phục vụ của hệ thống so với nhu cầu của tổ chức; hỗ trợ công tác cấu hình tăng hiệu suất; xác định các điểm nghẽn trong hệ thống và phục
vụ cho nhu cầu nâng cấp thiết bị và ứng dụng để phù hợp hơn với những nhu cầu ngày càng tăng của tổ chức
2.3 Độ đo hiệu năng
Hiệu năng của các hệ thống thông tin dựa trên Web phụ thuộc vào rất nhiều yếu
tố ràng buộc, ví dụ như mạng kết nối mà dịch vụ được sử dụng (một yếu tố khó xác định), các hệ thống đầu cuối khác liên kết với các hệ thống Web, các ứng dụng và công nghệ sử dụng trong hệ thống, người sử dụng đầu cuối, tốc độ xử lí trong máy chủ của hệ thống, kiến trúc của hệ thống, thậm chí là cả các ràng buộc về chi phí Tất nhiên máy chủ càng nhanh, bền thì càng tốt, nhưng đồng hành với nó là chi phí mua máy chủ
đó là đắt Khi xây dựng một hệ thống dựa trên Web cần chú ý tới yếu tố giá thành, từ
đó ảnh hưởng tới hiệu năng của dịch vụ Nhiều đơn vị, tổ chức có thể đầu tư nhiều phần cứng để cải thiện hiệu năng hệ thống, chi phí cho giải pháp này thường tốn kém Giải pháp thứ hai là phát triển yếu tố về công nghệ, sử dụng những công nghệ tiên tiến, tối ưu hóa mã nguồn tốt nhất nhằm tăng hiệu năng hệ thống Giải pháp này áp dụng với công ty, tổ chức đã có độ phát triển cao
Hiệu năng của một hệ thống thông tin dựa trên web có thể được đánh giá từ nhiều độ đo khác nhau, đứng trên nhiều phương diện khác nhau Đứng trên phương diện khách hàng, độ đo được sử dụng có thể là thời gian đáp ứng (response times) của
Trang 23hệ thống Thời gian đáp ứng có thể tính bởi khoảng thời gian từ lúc người dùng gửi yêu cầu tới hệ thống, cho đến khi Server phân tích xử lí yêu cầu xong và trả kết quả về cho người dùng Ngoài độ đo hiệu năng là thời gian đáp ứng, trên phương diện khách hàng, một độ đo khác cũng được sử dụng đó là số lượng kết nối bị lỗi, hiệu năng của dịch vụ cao khi giảm tới mức tối thiểu số lượng kết nối bị lỗi từ khách hàng và người
sử dụng Đứng trên phương diện nhà phân phối dịch vụ thì hiệu năng thường được đánh giá bởi số lượng giao dịch và dịch vụ thực hiện trong một đơn vị thời gian, hoặc
có thể tính bằng số lượng người sử dụng đang kết nối đồng thời để sử dụng dịch vụ Nếu dịch vụ đáp ứng được nhiều giao dịch, nhiều người sử dụng đồng thời thì hiệu năng của dịch vụ đó tốt Đứng trên khía cạnh quá trình, thì hiệu năng được đánh giá bởi thời gian cần thiết để thực hiện một giao dịch kinh doanh Để có thể đánh giá chính xác hiệu năng của hệ thống cần phải có một mô hình toán học rõ ràng trong việc tính hiệu năng của dịch vụ Web Việc mô hình hóa hiệu năng là cần thiết trong suốt quá trình hình thành và phát triển của dịch vụ Mô hình hóa hiệu năng để xác thực kiến trúc, thiết kế, và sự thực thi của dịch vụ; để dự đoán hiệu năng của dịch vụ trong các trường hợp thực tế khác …
Trước khi xây dựng mô hình đánh giá hiệu năng ta cần chỉ ra những độ đo nào có thể được sử dụng trong mô hình Các độ đo thường liên quan tới yếu tố về chất lượng dịch vụ (QoS); đây là một yếu tố quan trọng trong việc đánh giá sự thành công của các
hệ thống thông tin dựa trên Web QoS sẽ quyết định đến khả năng sử dụng và tính hữu ích của dịch vụ, cả hai yếu tố này đều ảnh hưởng đến tính phổ biến của hệ thống Web Một số yếu tố cần phải xem xét trong QoS là tính có sẵn, tính truy cập được, tính toàn vẹn, tính tin cậy, khả năng hoạt động, tính linh động, tính an toàn Khi xem xét các yếu
tố này trong QoS ta có thể đưa ra một vài độ đo phổ biến về hiệu năng của các hệ thống thông tin dựa trên Web như:
2.3.1 Tải
Theo [4], tải (Workload hay load) của một hệ thống/ứng dụng được xác định bởi
số lượng và bản chất của các yêu cầu gửi đến hệ thống/ứng dụng Số lượng yêu cầu gửi đến một hệ thống trong một đơn vị thời gian được gọi là cường độ tải (Intensity of load) Khi cường độ tải tăng dần, hiệu năng của hệ thống cũng tăng theo, tuy nhiên khi tải tăng quá một ngưỡng nào đó thì hiệu năng của hệ thống có xu hướng giảm Hiệu năng của hệ thống còn phụ thuộc vào bản chất của yêu cầu (nature of request) Những yêu cầu như chỉ lấy một trang web thì thường ít làm ảnh hưởng đến hiệu năng của hệ thống so với một yêu cầu như truy cập dữ liệu hay một yêu cầu có tính toán phức tạp Các hành động của người dùng, ví dụ nhấp chuột vào một nút, tải một tập tin xuống,… là nguồn tạo ra tải cho hệ thống Nhiều người sử dụng hệ thống sẽ tạo ra nhiều tải cho hệ thống và hệ thống có nguy cơ chuyển về trạng thái quá tải Bên cạnh
đó, tải của hệ thống còn phụ thuộc vào hạ tầng phần cứng triển khai hệ thống/ứng dụng Ví dụ, xét hệ thống gồm 100 người sử dụng đồng thời, mỗi người dùng sẽ chiếm
Trang 241Mbyte bộ nhớ RAM Hệ thống được triển khai trên hai máy chủ Máy chủ thứ nhất có
bộ nhớ RAM với dung lượng 200 Mbytes Máy chủ thứ hai có dung lượng RAM là
400 Mbytes Trong trường hợp này, trạng thái tải theo RAM của máy chủ thứ nhất là 50%, trạng thái máy chủ thứ hai là 25% Ta nói máy chủ thứ hai đang nhẹ tải hơn máy chủ thứ nhất
Để đánh giá sức chịu tải của một hệ thống, ba yếu tố cần được xem xét: người sử dụng, ứng dụng và nguồn tài nguyên Với sự hiểu biết về số lượng người sử dụng (cùng với các hoạt động phổ biến của họ), các yêu cầu ứng dụng xử lý các hoạt động của người sử dụng và yêu cầu về nguồn tài nguyên của hệ thống, có thể tính được sức chịu tải của hệ thống
Môi trường của hệ thống và nguồn tài nguyên có sẵn: Có ba thành phần cơ bản
biểu diễn nguồn tài nguyên liên quan trong bất kỳ giao tác trực tuyến nào: trình duyệt
phía khách hàng - trình khách, mạng và trình chủ Các hệ thống thông tin dựa trên web
điển hình gồm nhiều thành phần: phần cứng và phần mềm tương tác, nếu một trong những thành phần này không hoạt động hoặc hoạt động không tốt đều có thể ảnh hưởng đến hiệu năng, do đó cần định nghĩa rõ ràng môi trường và nguồn tài nguyên cần được kiểm thử Môi trường và nguồn tài nguyên liên quan trong một ứng dụng
web bao gồm một số hoặc tất cả các thành phần sau: Các biến truy cập mạng; các biến
về nhân khẩu học; các biến về địa lý; các biến hạ tầng ISP; cấu hình của trình khách; cấu hình của trình chủ
2.3.2 Thước đo tải
Để kiểm soát được hiệu năng của một hệ thống/ứng dụng thì cần thiết phải đo được lượng tải mà hệ thống/ứng dụng đang chịu đựng Điều này dẫn đến phải xác định một thước đo (hay độ đo) tải (metric) Thước đo tải là lượng có thể đo được để ghi nhận chính xác những gì chúng ta muốn đo hệ thống Thước đo tải là một đại lượng rất tổng quát, không có định nghĩa chung và cụ thể Người ta có thể chia thước đo tải thành 2 nhóm: Thước đo tải xây dựng dựa trên sự trải nghiệm của người dùng và thước đo tải dựa trên mức độ sử dụng tài nguyên của hệ thống
a) Thước đo tải xây dựng dựa trên sự trải nghiệm của người dùng
Thước đo tải xây dựng dựa trên trải nghiệm của người dùng có thể dùng các đại lượng như thông lượng của hệ thống (throughput); thời gian đáp ứng (response time),
Thông lượng của hệ thống (throughput): Số lượng tác vụ hoàn thành trong
một đơn vị thời gian, hoặc số lượng người dùng đã được phục vụ trong một đơn vị thời gian,…) Đơn vị tổng quát là transaction per time_period ví dụ: transactions per second, calls per day, lượng dữ liệu được xử lí bởi Server trong một đơn vị thời gian
Ví dụ một hệ thống thông tin Web xử lí 1000 yêu cầu HTTP trong khoảng 10 phút với tập tin có dung lượng là 789Kb Khi đó throughput được tính là:
Trang 25𝑻𝒉𝒓𝒐𝒖𝒈𝒉𝒑𝒖𝒕 =𝑻𝒐𝒕𝒂𝒍𝑹𝒆𝒒𝒖𝒆𝒔𝒕 ∗ 𝑨𝒗𝒆𝒓𝒂𝒈𝒆𝑺𝒊𝒛𝒆
𝟏𝟎𝟎𝟎 ∗ 𝟕𝟖𝟗𝑲𝒃𝟔𝟎𝟎𝒔
= 𝟏𝟑𝟏𝟓 (𝑲𝒃𝒑𝒔)
Thời gian đáp ứng cho một yêu cầu (response time): Có nhiều cách hiểu khác
nhau về thời gian đáp ứng, đứng trên các khía cạnh khác nhau Đứng trên khía cạnh Server, thời gian đáp ứng được xem là khoảng thời gian từ lúc yêu cầu bắt đầu đi vào
hệ thống cho tới khi yêu cầu được Server thực thi và đáp ứng cho yêu cầu đó đi ra khỏi
hệ thống Đứng trên khía cạnh Client, thời gian đáp ứng được xem bằng tổng thời gian Server thực thi và thời gian chờ (Latency) trong quá trình giao tiếp giữa Client và Server Có thể hiểu thời gian đáp ứng là thời gian từ lúc client gửi request tới server cho đến khi client nhận được response từ server trả về
Hiệu năng hệ thống thông tin dựa trên Web được xem xét ở nhiều mức độ, góc nhìn khác nhau Ở mức độ hệ thống (System level), ta coi hệ thống như cả một hộp đen, khi đó sẽ đứng trên phương diện người sử dụng đầu cuối để đánh giá hiệu năng Đại lượng được dùng lúc này là Throughput, hoặc thời gian đáp ứng của hệ thống Ở mức độ thành phần (Component level), đánh giá hiệu năng thông qua các tương tác, các thông số tài nguyên của dịch vụ Ở mức độ mô phỏng, đánh giá hiệu năng hệ thống dịch vụ trong thực tế thông qua việc mô phỏng các trạng thái chuyển đổi trong hệ thống Ở mức độ phân tích chi tiết, hiệu năng sẽ được xác định rõ bởi các biểu thức toán học Từ đó xây dựng nên những đồ thị cho phép ta suy diễn ra hiệu năng của hệ thống Web là:
Hình 2 1 Quan hệ hiệu năng theo thời gian đáp ứng
Đồ thị biểu diễn mối quan hệ giữa thời gian đáp ứng của hệ thống thông tin Web với tốc độ tới (Arrival rate) của người sử dụng
Một số các độ đo khác cũng rất quan trọng trong việc đánh giá hiệu năng hệ thống Web dựa trên sự trải nghiệm của người dùng, được trình bày dưới đây:
Trang 26Thời gian giao tác (Transaction time): thời gian giao tác là tổng thời gian yêu
cầu bởi trình khách, mạng và trình chủ để hoàn thành một giao tác Là thời gian cần thiết để thực thi một nhiệm vụ Trong công thức tính thời gian giao dịch, có thể bao gồm nhiều quá trình vận chuyển các tập tin qua lại giữa Client và Server Trong một ứng dụng web, thời gian của giao tác có thể được đo lường bởi khoảng thời gian khi người sử dụng nhấp vào một nút hay một liên kết đến khi trình duyệt kết thúc hiển thị trang kết quả
Độ trễ (Latency): là thời gian cần thiết để hoàn thành một yêu cầu Thời gian
cần để truyền dữ liệu đi từ một máy tính đến máy tính khác, nó được coi là độ trễ mạng (Network latency) Thời gian tại một máy chủ hoàn thành việc xử lý một yêu cầu được gọi là độ trễ trình chủ
Thời gian nghĩ (Think time): Là khoảng thời gian thể hiện độ trễ mà người
dùng thực hiện một hành động tương tác với hệ thống như nhấp vào một đường dẫn, nút, v.v…
b) Thước đo tải dựa trên mức độ sử dụng tài nguyên của hệ thống
Thước đo tải dựa trên mức độ sử dụng tài nguyên của hệ thống chủ yếu dựa vào mức độ sử dụng tài nguyên (computational resources), ví dụ như mức độ sử dụng CPU, RAM, băng thông mạng, số lượng nối kết đến máy chủ,…
Dung lượng (capacity): Dung lượng của hệ thống là tổng các tải làm việc nó xử
lý mà không gây xung đột với tiêu chí chính chấp nhận về hiệu năng cho trước
Simultaneous user load: Tải người sử dụng đồng thời là tải nhiều người đồng
thời cùng sử dụng ứng dụng, tại cùng một thời điểm bất kỳ mỗi người thực hiện một tương tác khác nhau
Tải người sử dụng đồng thời thực hiện một hành động (Concurrent user load): Là tải nhiều người đồng thời cùng sử dụng ứng dụng và thực hiện cùng một
hoạt động tại bất kỳ thời điểm nào
Yêu cầu/mục đích hiệu năng (Performance requirements/goals): Là định
lượng đưa ra tiêu chí cho rằng hiệu năng của hệ thống là tốt Yêu cầu hiệu năng của một ứng dụng được thể hiện trong thời gian đáp ứng, số lượt truy cập trong 1 giây (hits), số giao địch trong 1 giây, v.v…
Hit: là yêu cầu gửi về máy chủ để truy cập vào một trang web hoặc một tập tin
hoặc một ảnh từ máy chủ web
Số giao dịch đồng thời được thực hiện (Concurrency): Tính bằng số giao dịch
đồng thời hệ thống đáp ứng được Đơn vị là transaction, ví dụ: 100 transactions đồng thời, 200 transactions đồng thời
CPU usage: Hiệu suất sử dụng CPU Đơn vị là %
Trang 27RAM usage: Hiệu suất sử dụng RAM Đơn vị là %
Tỉ lệ lỗi (Fail rate): Tính bằng số giao dịch không thực hiện thành công trên
tổng số giao dịch đã thực hiện Giá trị này dùng để làm điều kiện cần cho các mục tiêu trên Đơn vị là %
Tiêu chuẩn thành công: Response time, Throughput, Concurrency, CPU usage,
RAM usage, Fail rate có thể chấp nhận được Một hệ thống thông tin dựa trên Web được gọi là có hiệu năng cao có throughput lớn; thời gian chờ, thời gian thực thi nhỏ; thời gian xử lí giao dịch nhanh, hay thời gian đáp ứng thấp
Một thước đo có thể gồm một bộ nhiều giá trị Mỗi giá trị trong thước đo được gọi là một đại lượng ước lượng tải
2.3.3 Ước lượng tải
Ước lượng tải nhằm để xác định trạng thái tải của một hệ thống/ứng dụng Thông thường một hệ thống sẽ có những trạng thái tải như tải bình thường (normal), rảnh rỗi (idle) và quá tải (overloaded) Để ước lượng tải công việc đầu tiên là phải xác định thước đo tải cho hệ thống, sau đó tiến hành đo giá trị tải hiện tại của hệ thống/ứng dụng Hai giá trị ngưỡng thấp và ngưỡng cao phải được xác định để biết được với giá trị tải hiện tại thì hệ thống đang ở trạng thái tải nào Nếu giá trị tải hiện hành dưới ngưỡng thấp thì hệ thống đang ở trạng tái nhàn rỗi Nếu giá trị tải hiện hành của hệ thống nằm giữa ngưỡng thấp và ngưỡng cao thì hệ thống đang ở trạng thái bình thường Nếu giá trị tải hiện hành của hệ thống nằm trên ngưỡng cao thì hệ thống đang
ở trong tình trạng quá tải
Hình 2 2 Ước lượng trạng thái tải của hệ thống 2.4 Phân loại kiểm thử hiệu năng
Theo [6], kiểm thử hiệu năng một hoạt động khá phức tạp, nó có thể thực hiện với nhiều kiểu khác nhau dẫn đến cung cấp cho các đơn vị, tổ chức các kết quả sai khác cũng như gặp nhiều rủi ro Việc quan trọng là hiểu được các loại kiểm thử hiệu năng khác nhau để giảm rủi ro, giảm thiểu chi phí và để biết khi nào áp dụng kiểm thử hiệu năng trong một dự án là hiệu quả và chính xác Cần xác định một số tiêu chí chính để xác định chọn kiểu kiểm thử nào cho phù hợp (chi tiết phần 2.5)
Ngưỡng thấp
Giá trị đo được
Tải cao
Trạng thái tải của ứng dụng
Tải thấp
Ngưỡng cao
Tải bình thường
Trang 28Theo [3], kiểm thử hiệu năng (Performance test) là một thuật ngữ chung Nó bao gồm các loại kiểm thử nhỏ hơn: kiểm thử tải (Load test), kiểm thử áp lực (Stress test)
Kiểm thử tải (load test): Kiểm thử tải được thực hiện xác định hiệu năng hệ
thống với điều kiện tải nhiều người sử dụng đồng hệ thống như trong thực tế Nó được xây dựng với mục đích tìm ra hiệu năng hệ thống ở điều kiện tải bình thường hoặc điều kiện tải tối đa
Kiểm thử áp lực (stress test): Kiểm thử áp lực là kiểm thử được tiến hành bằng
cách kiểm thử hệ thống trong điều kiện tải bất hợp lý để xác định điểm dừng (breakpoint) của hệ thống
Ngoài ra, còn có một số loại kiểm thử nhỏ khác:
Kiểm thử cơ sở (baseline test): Việc kiểm thử này thiết lập một điểm so sánh
cho thử nghiệm chạy, đặc trưng cho việc đo đạc thời gian đáp ứng của giao dịch (transaction) Kiểm thử này thường được thực hiện trong một giao dịch đơn lẻ cũng như một người dùng ảo đơn lẻ trong một khoảng thời gian cố định hoặc một số lượng lặp các giao dịch cố định Việc này nên được thực hiện mà không có bất kì hoạt động nào khác trong hệ thống nhằm cung cấp một số đo trong “trường hợp tốt nhất” Giá trị thu được có thể được sử dụng để xác định lượng suy giảm hiệu suất xảy ra trong đáp ứng để tăng số lượng người dùng hoặc thông lượng
Việc kiểm thử này giúp giảm thất bại trong việc tìm nguyên nhân gây ra vấn đề hoặc nút thắt cổ chai so với việc giám sát nhiều người dùng và giao dịch ở cùng một thời điểm
Kiểm thử chuẩn (benchmark test): Kiểm thử chuẩn là kiểm thử được tiến hành
để đo lường hiệu năng của ứng dụng trong một điều kiện tải thấp Thông thường kiểm thử chuẩn chiếm 15-20% mức tải mục tiêu
Kiểm thử tăng đột ngột (spike test): Kiểm thử này rất giống kiểm thử áp lực
(stress test) nhưng hệ thống được đặt trong tải cực cao trong một thời gian gian ngắn Kiểm thử giúp xác nhận hiệu năng hệ thống trong điều kiện tải cao đột ngột trong giờ giao dịch cao điểm của ứng dụng
Kiểm thử chịu đựng (endurance test): Kiểm thử chịu đựng tập trung vào đánh
giá hiệu năng của hệ thống với mức tải sử dụng được định trước trong khoảng thời gian kéo dài Kiểm thử chịu đựng chạy với 70%- 80% của tải mục tiêu, trong kịch bản
có cài đặt thời gian nghĩ giống như trong thực tế
Kiểm thử cô lập nghẽn cổ chai (bottleneck isolation test): Kiểm thử cô lập
nghẽn cổ chai là kiểm thử được thực hiện trên hệ thống hoặc một thành phần cụ thể để tìm ra các vấn đề và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống [5]
Trang 29Kiểm thử khối lượng (volume test): Kiểm thử khối lượng là kiểm thử hiệu năng
cho hệ thống khi nó phải thao tác với một lượng dữ liệu nhất định Số lượng này có thể
là kích thước bản ghi dữ liệu hoặc nó cũng có thể là kích thước của 1 tập tin
Kiểm thử dung lượng (Capacity test): Kiểm thử dung lượng bổ sung cho kiểm
thử tải bằng cách xác định điểm lỗi cuối cùng của máy chủ, trong khi kiểm thử tải theo dõi các kết quả ở các mức độ khác nhau của các mẫu lưu lượng và tải Kiểm thử dung lượng được thực hiện cùng với các kế hoạch về dung lượng, cái được sử dụng để lập
kế hoạch cho sự tăng trưởng trong tương lai, như tăng số lượng người dùng cơ bản hoặc tăng khối lượng dữ liệu Ví dụ, để phù hợp với lượng tải trong tương lai, chúng ta cần biết có bao nhiêu tài nguyên cần thiết được thêm vào để hỗ trợ các mức độ sử dụng trong tương lai như dung lượng bộ vi xử lý, khả năng sử dụng bộ nhớ, dung lượng ổ đĩa hoặc băng thông mạng Kiểm thử dung lượng giúp xác định được một chiến lược mở rộng quy mô để xác định nên mở rộng theo chiều dọc hoặc chiều ngang
Kiểm thử dài (Soak test): Một kiểm thử dài là một kiểm thử tải chạy trong
khoảng thời gian dài Những rò rỉ của bộ nhớ có lẽ là vấn đề được phát hiện phổ biến nhất trong suốt quá trình kiểm thử dài, nhưng việc mất kết nối cũng được phát hiện và việc tăng cơ sở dữ liệu cũng được kiểm soát Những người liên quan sẽ tham gia vào lập kế hoạch kiểm thử dài và hỏi họ muốn kiểm soát những gì trong lĩnh vực cụ thể của họ Thời gian và các vấn đề cần thiết khác như dữ liệu kiểm thử cũng là một số vấn đề chính cần giải quyết khi lập kế hoạch và thực hiện một kiểm thử dài đúng đắn Kiểm thử nên chạy trong thời gian dài nhất có thể hoặc đến khi xác định được xu hướng cụ thể qua một số giám sát Quá trình kiểm thử dài có lẽ đã phát hiện ra nhiều nhất các lỗi nghiêm trọng
2.5 Các lỗi thường gặp trong phân tích và đánh giá hiệu năng hệ thống
Mục này sẽ trình bày về các lỗi thường gặp trong phân tích và đánh giá hiệu năng
hệ thống [1] Hầu hết các lỗi được liệt kê ở đây là lỗi không cố ý mà do các nhầm lẫn đơn giản, nhận thức sai hoặc thiếu kiến thức về các kỹ thuật đánh giá hiệu năng
1 Mục đích không rõ ràng
Mục đích là phần quan trọng nhất trong bất kỳ phương pháp đánh giá hiệu năng nào Tuy nhiên, trong nhiều trường hợp, khởi đầu của việc đánh giá hiệu năng chưa xác định được mục đích rõ ràng Một người làm công việc phân tích hiệu năng thường gắn bó chặt chẽ và lâu dài cùng với bộ phận thiết kế Sau quá trình thiết kế, người phân tích hiệu năng có thể bắt đầu mô hình hóa hoặc mô phỏng thiết kế đó Khi được hỏi về mục đích, những câu trả lời tiêu biểu của các nhà phân tích là: mô hình này sẽ giúp chúng ta trả lời các vấn đề phát sinh từ thiết kế Yêu cầu chung đối với các mô hình kiểu này là đảm bảo tính mềm dẻo và dễ thay đổi để giải quyết những vấn đề phức tạp Người phân tích có kinh nghiệm đều hiểu rằng: Không có mô hình cụ thể nào được sử dụng cho một mục đích chung chung Mỗi một mô hình phải được phát
Trang 30triển với mục đích cụ thể xác định trước Các thông số, khối lượng công việc và phương pháp thực hiện đều phụ thuộc vào mục đích Các phần của thiết kế hệ thống trong một mô hình được nghiên cứu tùy theo các vấn đề khác nhau Bởi vậy, trước khi viết dòng mã chương trình mô phỏng đầu tiên hoặc viết phương trình đầu tiên của một
mô hình phân tích hoặc trước khi cài đặt một thí nghiệm đo, người phân tích cần hiểu
về hệ thống và nhận thức rõ vấn đề để giải quyết Điều đó sẽ giúp nhận biết chính xác các thông số, khối lượng công việc và phương pháp thực hiện
Xác lập các mục đích không phải là một bài toán đơn giản Bởi vì hầu hết các vấn đề về hiệu năng đều mơ hồ khi được trình bày lần đầu Vì vậy, nhận thức rõ vấn
đề viết ra một tập hợp của các mục đích là việc khó Một khi vấn đề được sáng tỏ và mục đích đã được viết ra, thì việc tìm ra giải pháp thường sẽ dễ dàng hơn
và mọi kết luận phải dựa vào kết quả phân tích chứ không phải là dựa vào các niềm tin thuần túy
3 Phương pháp tiếp cận không có hệ thống
Các nhà phân tích thường tiến hành theo phương pháp tiếp cận không có hệ thống; bởi vậy họ lựa chọn tham số hệ thống, các yếu tố ảnh hưởng, thông số (hiệu năng) và tải làm việc một cách tùy ý Điều này sẽ dẫn tới các kết luận sai Phương pháp tiếp cận hệ thống được sử dụng để giải quyết một vấn đề về hiệu năng là nhận biết một tập hoàn chỉnh của các mục đích, tham số hệ thống, các nhân tố ảnh hưởng, các thông số hiệu năng và tải làm việc
4 Phân tích mà không hiểu về vấn đề
Các nhà phân tích thiếu kinh nghiệm cảm thấy rằng không có gì thực sự có được trước khi một mô hình được dựng nên và chỉ có được một số kết quả Với kinh nghiệm
đã có, họ nhận ra rằng, phần lớn của các nỗ lực phân tích là dùng cho việc xác định một vấn đề Phần này thường chiếm tới 40% tổng số nỗ lực này Điều này khẳng định một châm ngôn xưa: “Khi một vấn đề được nêu ra rõ rang thì đã được giải quyết xong một nửa” 60% còn lại liên qua tới vấn đề thiết kế các phương pháp, giải thích kết quả
và trình bày kết luận Việc phát triển của mô hình tự bản thân nó là phần nhỏ của quá trình giải quyết vấn đề Ví dụ như, xe ô tô và tàu hỏa là phương tiện để đi tới đâu đó chứ không phải là điểm đến cuối cùng Các mô hình là phương thức để đi đến kết luận
Trang 31chứ không phải là kết quả cuối cùng Các nhà phân tích đã được đào tạo về các khía cạnh mô hình hóa của vấn đề đánh giá hiệu năng nhưng không được đào tạo về việc xác định vấn đề hoặc trình bày kết quả thì thường thấy rằng mô hình của họ bị bỏ đi bởi người phê duyệt, vì người phê duyệt là người đang tìm kiếm đường hướng chứ không tìm kiếm một mô hình
5 Các thông số hiệu năng không đúng
Một thông số hiệu năng (metric) ứng với một tiêu chí được sử dụng để định lượng hiệu năng của hệ thống Các ví dụ về các thông số hiệu năng hay dùng là thông lượng (throughput) và thời gian đáp ứng (response time) Sự lựa chọn của các thông số hiệu năng đúng đắn phụ thuộc vào các dịch vụ cung cấp bởi hệ thống hoặc bởi hệ thống con đang được mô hình hóa
Một lỗi chung khi lựa chọn các thông số hiệu năng đó là các nhà phân thích thường chọn các thông số dễ tính toán hoặc dễ đo đạc hơn là chọn thông số thích hợp
6 Tải làm việc không có tính đại diện (unrepresentative workload)
Tải làm việc được sử dụng để so sánh hai hệ thống cần đại diện cho khía cạnh sử dụng thực tiễn của các hệ thống này trong lĩnh vực của chúng Ví dụ, nếu các gói dữ liệu trong mạng thông thường bao gồm hai loại có kích thước ngắn và dài thì tải làm việc dùng để so sánh hai mạng phải bao gồm các gói dữ liệu có kích thước ngắn và dài Việc chọn tải làm việc ảnh hưởng rất lớn tới kết quả của việc nghiên cứu hiệu năng Tải làm việc sai sẽ dẫn tới các kết luận sai
7 Phương pháp đánh giá sai
Có ba phương pháp đánh giá: đo lường, mô phỏng và mô hình hóa phân tích Các nhà phân tích thường có một phương pháp ưa thích và được sử dụng thường xuyên đối với mọi vấn đề về đánh giá hiệu năng Ví dụ như những ai thành thạo về lý thuyết hàng đợi sẽ có xu hướng quy đổi mọi vấn đề về hiệu năng sang một vấn đề về hàng đợi ngay cả khi hệ thống quá phức tạp và thuận lợi cho việc đo lường Những ai thành thạo về lập trình sẽ thường có xu hướng giải quyết mọi vấn đề bằng mô phỏng Việc gắn với một phương pháp đơn lẻ này dẫn tới kết quả một mô hình mà họ có thể giải quyết tốt nhất hơn là một mô hình giải quyết tốt nhất vấn đề này Vấn đề đối với các quy trình chuyển đổi này là chúng có thể đưa thêm các hiện tượng vào mô hình, trong khi các hiện tượng này không có trong hệ thống nguyên gốc hoặc dẫn đến có thể bỏ qua các hiện tượng quan trọng thuộc về hệ thống nguyên gốc
Một nhà phân tích cần có hiểu biết cơ bản về cả ba phương pháp Khi xem xét lựa chọn phương pháp đánh giá hiệu năng, cần chú ý tới nhiều hệ số khác nhau
8 Bỏ qua các thông số quan trọng
Nên tạo ra một danh sách hoàn chỉnh về các đặc điểm của hệ thống và của tải làm việc ảnh hưởng tới hiệu năng của hệ thống Những đặc điểm này được gọi chung
Trang 32là thông số Các thông số tải làm việc có thể bao gồm số người sử dụng, các loại yêu cầu đến, sự ưu tiên, v… v Nhà phân tích có thể chọn một tập hợp các giá trị cho mỗi thông số Kết quả nghiên cứu cuối cùng phụ thuộc nhiều vào các chọn lựa này Bỏ sót một hoặc nhiều thông số quan trọng có thể nhận được các kết quả vô ích
9 Bỏ qua các hệ số quan trọng
Các thông số biến đổi trong nghiên cứu thì được gọi là các hệ số Ví dụ như trong
số các thông số về tải làm việc liệt kê trên đây, chỉ có số lượng người sử dụng có thể được chọn như là một hệ số, và các thông số khác có thể được giữ nguyên tại các giá trị điển hình Không phải tất cả các thông số có tác động như nhau đối với hiệu năng Điều quan trọng là nhận ra những tham số mà nếu chúng thay đổi thì sẽ gây nên ảnh hưởng quan trọng tới hiệu năng Trừ khi có lý do nào khác, những thông số này nên được sử dụng như là các hệ số trong việc nghiên cứu hiệu năng Ví dụ như nếu tốc độ (rate) gói đến tác động tới thời gian đáp ứng của một gateway của mạng hơn là ảnh hưởng của kích thước gói tới nó, việc nghiên cứu sẽ tốt hơn nếu như sử dụng một số tốc độ đến khác nhau thay vì quan tâm tới kích thước gói
10 Thiết kế thí nghiệm không thích hợp
Sự thiết kế thí nghiệm liên quan tới số lượng các phép đo hoặc các thí nghiệm
mô phỏng được thực hiện và các giá trị của các thông số sử dụng trong mỗi thí nghiệm Việc chọn đúng các giá trị này có thể mang tới nhiều thông tin hơn đối với cùng một
số lượng các thí nghiệm Chọn lựa không đúng có thể gây ra lãng phí thời gian của nhà phân tích và tài nguyên
11 Mức độ chi tiết không thích đáng
Mức độ chi tiết được sử dụng trong mô hình của hệ thống có ảnh hưởng quan trọng trong việc hệ thống hóa, công thức hóa vấn đề Một lỗi chung xảy ra là việc sử dụng lối tiếp cận chi tiết đối với mô hình hóa ở mức cao sẽ thực hiện và ngược lại
Các nhà phân tích có thể gây nên hàng loạt các lỗi trong khi đo đạc, mô phỏng và
mô hình hóa phân tích vì dụ như lấy giá trị trung bình của các tỷ số và thời gian mô phỏng quá ngắn
14 Không phân tích độ nhậy
Trang 33Các nhà phân tích thường quá nhấn mạnh đến kết quả của sự phân tích của họ, trình bày nó như là một thực tế hơn là một bằng chứng Thực tế mà trong đó các kết quả nhạy cảm đối với tải làm việc và thông số hệ thống thì thường bị coi nhẹ Khi không có sự phân tích độ nhậy, không thể chắc chắn rằng liệu các kết luận có thay đổi hay không nếu như phân tích này được thức hiện trong một thiết lập khác biệt đôi chút Không có phân tích độ nhạy thì sẽ khó khăn cho việc đánh giá sự quan trọng tương đối của các thông số khác nhau
15 Bỏ qua các lỗi đầu vào
Thường là các thông số được lựa chọn không thể đo được Thay vào đó, ta sử dụng các biến có thể đo được khác để ước lượng thông số này Ví dụ như trong một thiết bị mạng máy tính, các gói dữ liệu được lưu trữ trong danh sách liên kết của bộ đệm Mỗi một bộ đệm có dung lượng là 512x8bit Với một số lượng bộ đệm được yêu cầu để lưu trữ gói dữ liệu, không thể dự báo trước một cách chính xác số gói hoặc số bít trong gói dữ liệu Điều nãy dẫn tới độ bất định được cộng thêm ở dữ liệu đầu vào Nhà phân tích cần điều chỉnh mức độ tin cậy trong kết quả đầu ra của mô hình thu được từ dữ liệu này
16 Cách xử lý mẫu ngoại lai không thích hợp
Những giá trị quá cao hoặc quá thấp so với phần lớn giá trị trong một tập hợp được gọi là mẫu ngoại lai Mẫu ngoại lai trong đầu vào hoặc đầu ra của mô hình là một vấn đề Nếu mẫu ngoại lai không được tạo ra bởi một hiện tượng trong hệ thống thực,
nó có thể được bỏ qua Mô hình bao trùm mẫu ngoại lai có thể tạo nên một mô hình không hợp lệ Mặt khác, nếu mẫu ngoại lai là sự xuất hiện có thể xảy ra trong trong hệ thống thực, mẫu ngoại lai này cần hiện diện trong mô hình Việc bỏ qua mẫu ngoại lai kiểu này có thể tạo nên một mô hình không hợp lệ
17 Giả thiết không có thay đổi trong tương lai
Một mô hình dựa trên tải làm việc và hiệu năng quan sát được trong quá khứ được sử dụng để dự báo hiệu năng trong tương lai Tải làm việc và hoạt động hệ thống trong tương lai được giả thiết là giống như những gì đã đo được Nhà phân tích và người thực hiện quyết định nên thảo luận về giả thiết này và giới hạn thời lượng tương lai cho các dự đoán
18 Bỏ qua tính biến thiên
Thường thì người ta chỉ phân tích hiệu năng trung bình bởi vì việc xác định tính biến thiên thường gặp khó khăn Nếu độ biến thiên lớn, nếu chỉ sử dụng duy nhất giá trị trung bình có thể dẫn tới quyết định sai Ví dụ, việc quyết định dựa trên nhu cầu máy tính trung bình hàng ngày có thể không có ích nếu như không tính tới đặc tính tải đạt đỉnh điểm theo giờ, gây tác động bất lợi tới hiệu năng người sử dụng
19 Phân tích quá phức tạp
Trang 34Các nhà phân tích hiệu năng nên đi đến kết luận bằng phương thức đơn giản nhất
có thể Tốt nhất là luôn bắt đầu với một mô hình hoặc thí nghiệm đơn giản nhằm đạt được một số kết quả và sau đó tăng thêm tính phức tạp Các mô hình công bố trong tài liệu khoa học và các mô hình sử dụng trong thực tế khác nhau rõ rệt Các mô hình trong các tài liệu khoa học, trong các trường học thường là quá phức tạp Phần lớn các vấn đề hiệu năng trong thực tế hàng ngày được giải quyết bởi các mô hình đơn giản Các mô hình phức tạp nếu có thì cũng hiếm khi được sử dụng
20 Trình bày kết quả không thích hợp
Đích cuối cùng của mọi nghiên cứu hiệu năng là để hỗ trợ bài toán quyết định Một phân tích mà không tạo ra bất kỳ kết quả hữu ích nào thì đó là một sự thất bại bởi
đó là sự phân tích với kết quả khó hiểu đối với người đưa ra quyết định Người phân tích phải có trách nhiệm chuyển tải các kết quả phân tích tới người đưa ra quyết định qua việc sử dụng các từ ngữ, hình ảnh, đồ thị để giải thích kết quả phân tích
21 Bỏ qua các khía cạnh xã hội
Sự trình bày thành công kết quả phân tích yêu cầu 2 loại kỹ năng: xã hội và chuyên biệt Kỹ năng viết và nói là kỹ năng xã hội trong khi mô hình hóa và phân tích
dữ liệu là các kỹ năng chuyên biệt Hầu hết các nhà phân tích đều có các kỹ năng chuyên biệt tốt, nhưng chỉ những người có các kỹ năng xã hội tốt thì mới thành công khi bán các kết quả của họ cho những người ra quyết định Việc chấp nhận kết qủa phân tích yêu cầu hình thành sự tin tưởng giữa người ra quyết định và nhà phân tích,
và sự trình bày các kết quả tới người ra quyết định theo cách hiểu chính xác nhất Nếu những người ra quyết định không tin tưởng hoặc không hiểu sự phân tích, thì nhà phân tích thất bại trong việc tạo nên ấn tượng đối với quyết định cuối cùng Các kỹ năng xã hội đặc biệt quan trọng khi trình bày các kết quả mà chúng có ảnh hưởng tới niềm tin
và giá trị của người ra quyết định hoặc yêu cầu về một thay đổi quan trọng trong thiết
kế
22 Bỏ sót các giả thiết và các giới hạn
Các giả thiết và các giới hạn của mô hình phân tích thường bị bỏ qua trong báo cáo cuối cùng Điều này có thể làm cho người sử dụng áp dụng mô hình phân tích này vào một ngữ cảnh khác khi mà các giả thiết không còn hợp lệ Đôi khi các nhà phân tích lên danh sách các giả thiết ngay ở phần mở đầu báo cáo nhưng họ quên mất các giới hạn và đưa ra các kết luận về các môi trường mà phân tích này không áp dụng vào
2.6 Các phần mềm đo hiệu năng
a) Phần mềm đo hiệu năng
Có rất nhiều phần mềm kiểm thử hiệu năng trên thị trường Nó có thể được chia thành hai loại chính: phần mềm mã nguồn mở và phần mềm có bản quyền
- Phần mềm mã nguồn mở như: Apache Jmeter, The Grinder, TestMaker,
Trang 35Apache Jmeter: Là một công cụ chuyên dùng để kiểm tra hiệu năng của các ứng
dụng web, được viết bằng Java, Jmeter có thể hoạt động trên các hệ điều hành có hỗ trợ JVM (Java Virtual Machine) phiên bản 1.4 trở lên Jmeter không đòi hỏi kiến thức lập trình chuyên sâu để sử dụng Hiện nay ứng dụng này đã được cải tiến để có thể đo lường hiệu năng hoạt động của các đối tượng và giao thức sau: HTTP, HTTPS, SOAP, JDBC, LDAP, JMS, POP3,…
The Grinder: Nhìn chung, The Grinder có nhiều điểm tương đồng với Jmeter: là
một ứng dụng thuần Java, hoạt động trên nhiều hệ điều hành, yêu cầu JVM phiên bản 1.4 trở lên The Grinder cũng được thiết kế để kiểm tra hiệu năng web, cơ sở dữ liệu qua JDBC và một số giao thức khác Điều khác biệt là The Grinder đòi hỏi tester phải
có khả năng sử dụng ngôn ngữ Python để có thể viết/chỉnh sửa các kịch bản kiểm tra (test script) theo ý mình, và hệ thống báo cáo kết quả kiểm tra không linh động như Apache Jmeter
TestMaker: Hỗ trợ kiểm tra hiệu năng và tính năng của ứng dụng web
TestMaker có khả năng chạy test script được thâu từ các công cụ khác như TestGen4Web và Selenium Tuy nhiên, phiên bản được xây dựng sẵn để cài đặt và sử dụng miễn phí nhưng bị hạn chế khả năng chạy kiểm tra tối đa với 200 người dùng ảo
Để xóa bỏ hạn chế này, người sử dụng có thể trả tiền hoặc tự tải mã nguồn của TestMaker về và tự xây dựng (build) thành một bộ cài đặt và sử dụng hoàn chỉnh Điều này đòi hỏi kiến thức về Java, Ant, NetBean
- Phần mềm thương mại: Loadrunner, Microsoft LoadTest, LoadUI, Rational Performance Tester, WebLoad OpenSource
LoadRunner: là công cụ kiểm thử tự động thực hiện việc kiểm tra hiệu năng của
phần mềm Nó cho phép chúng ta tìm ra những lỗi về khả năng thực thi bằng việc phát hiện nguyên nhân, chỗ làm cho phần mềm chạy chậm hoặc không đúng yêu cầu Đây
là công cụ mạnh với giải pháp kiểm tra tải, phát hiện và đưa ra giải pháp cải tiến Ứng dụng LoadRunner sẽ giúp giảm thời gian viết test script đến 80% nhờ có chức năng tự động phát sinh script mô tả lại các tình huống muốn kiểm tra LoadRunner có khả năng tạo ra hàng ngàn người dùng ảo thực hiện các giao dịch cùng một lúc Sau đó LoadRunner giám sát các thông số xử lý của phần mềm được kiểm tra Kết quả thống
kê sẽ được lưu lại và cho phép kiểm thử viên thực hiện phân tích
WebLoad OpenSource: Vốn là một công cụ thương mại hỗ trợ kiểm tra hiệu
năng web của RadView Software Gia nhập cộng đồng mã nguồn mở vào năm 2007 nhưng WebLoad OpenSource bị hạn chế nhiều tính năng so với phiên bản thương mại của nó Hiện tại WebLoad OpenSource không hỗ trợ giao thức HTTPS nên khá bất tiện trong một số trường hợp
b) So sánh một số công cụ đo hiệu năng
Các công cụ đo hiệu năng có đặc điểm chung sau: