Một trong những vấn đề thực sự đau đầu, đáng phải suy nghĩ khi dự án, sản phẩm của bạn đến giai đoạn triển khai. Bạn thực sự rất lo lắng, rất muốn biết năng lực của hệ thống của mình có đáp ứng được bài toán thực tế hay không? Rõ ràng, bài kiểm thử, loadtest đã đáp ứng đúng giả định, đúng yêu cầu về chức năng, và hiệu năng. Nhưng thực tế kết quả có như bạn mong đợi hay không? Bạn cần phải tối ưu hóa hệ thống như thế nào ?

Tối ưu hóa hệ thống

Đầu tiên, bạn cần đánh giá đúng đắn về hiệu năng hệ thống, nó cần bằng với các yếu tố: Hiệu năng hệ thống = Kiến trúc + Ứng dụng + Cơ sở dữ liệu + Phần cứng + Hệ điều hành

Rõ ràng, kiến trúc hệ thống ảnh hưởng trực tiếp rất nhiều đến hiệu năng của hệ thống, thiết kế quá nhiều tầng, quá nhiều lớp, Proxy dẫn đến tiêu tốn quá nhiều hiệu năng của hệ thống, nhưng thiết kế quá ít tầng + xử lý quá nhiều nghiệp vụ trong kiến trúc dẫn đến rất khó nâng cấp và mở rộng. Như vậy, riêng về thiết kế kiến trúc bạn cần phải cân nhắc và đánh đổi khả năng nâng cấp và mở rộng của hệ thống.

Một yếu tổ khác, ảnh hưởng rất nhiều và trực tiếp đến hệ thống, đó là Ứng dụng. Dự án của bạn có rất nhiều người tham gia phát triển ? Mỗi người một module, một tính năng con chắp vá? Ôi, thật choáng ngợp với đống mã nguồn này, thật rối rắm, cồng kềnh, không hề tối ưu và cũng không hề ngắn gọn … ^_^

tối ưu hóa hệ thống

http://www.dreamstime.com/-image14444496

Tối ưu hóa hệ thống

Vâng, nhưng xin bạn hãy giữ bình tĩnh! Đó là vấn đề mà hầu hết các công ty, nhóm nhiều thành viên gặp phải. Bạn cần có tinh thần thoải mái trước khi bắt tay vào xử lý những vấn đề này. Đây, chắc chắn không phải là vấn đề xử lý trong 1, 2 ngày là xong được.

Các bước bạn cần thực hiện đó là:

  1. Đo hiệu năng, thu thập hiện trạng
  2. Đánh giá kết quả và lên phương án tối ưu
  3. Ngồi xuống với nhau và xử lý từng vấn đề nhỏ

Trong bài viết này, sẽ viết lại những kinh nghiệm các bước mà tôi đã gặp phải trong quá trình kiểm thử và triển khai dự án của công ty. Nhưng dừng lại ở giai đoạn tối ưu ứng dụng, vì đây là nút cổ chai mà gần như dự án nào cũng gặp phải.

Qua các bước đo đạc và đánh giá hiệu năng của hệ thống ở trên, nếu gặp phải hiệu năng của ứng dụng, các bạn cần rà soát và đánh giá lại ứng dụng của mình ở các đầu mục sau:

  1. Xử lý quá lâu trong 1 thread
  2. Tối ưu Cache khi truy cập File (đọc file quá nhiều lần, tốn I/O)
  3. Threadpool không hợp lý, quá nhiều hoặc quá ít
  4. Log ứng dụng không hợp lý, ghi thông tin quá nhiều
  5. Mở kết nối đến Database không hợp lý, quá nhiều hoặc quá ít
  6. Kiến trúc kết nối các phân hệ cồng kềnh

Kế hoạch và phương án tối ưu

Còn tiếp …

About The Author