Tôi thực hiện rất nhiều hiệu suất và mở rộng quy mô công việc và những gì tôi đã khám phá ra là:
Mỗi tải ứng dụng là duy nhất
Các phản hồi chung chung như thêm nhiều ram, nhận máy chủ khác, làm y, thử x thường là những bài học trong sự thất vọng và để lại các thiết lập phức tạp.
Đo lường những điều đúng đắn
Một trong những thách thức lớn nhất là xác định điểm chuẩn nào là quan trọng. Điều này thường đòi hỏi một bước lùi và bạn phải đặt mình vào vị trí của khách hàng. Đôi khi, thiết kế trang web đơn giản thay đổi và có nghĩa là lợi ích to lớn cho khách truy cập web. Đây là lý do tại sao tôi thích các công cụ như YSlow! tập trung nhiều vào trải nghiệm của người dùng cuối hơn là cấp độ máy chủ. Khi bạn quyết định điểm chuẩn phù hợp cho trang web của mình là gì, thì bạn có thể bắt đầu điều chỉnh. Điểm chuẩn có thể là tổng thời gian tải trang, tổng kích thước trang, hiệu quả bộ đệm, độ trễ trang, v.v. Bạn phải chọn một điểm hợp lý cho ứng dụng của mình.
Các loại hạt và bu lông
Một bạn đang theo dõi điểm chuẩn đúng, bắt đầu ở mức rất thấp. Tôi thích sử dụng sysstat. Bạn có thể nhận được rất nhiều thông tin từ sysstat và giúp bạn trêu chọc hệ thống nào có thể hạn chế hiệu năng ứng dụng tổng thể. Nói chung, tôi giải quyết các vấn đề về hiệu suất:
- ngăn xếp mạng
- ngăn xếp bộ nhớ
- đĩa io
- lớp ứng dụng
- lớp os
Sử dụng sysstat và các công cụ khác, bạn có thể bắt đầu chia tóc và tìm hệ thống hạn chế hiệu suất.
Ví dụ: tôi đã thấy các máy chủ tải cao bị lỗi do cách ứng dụng của chúng được cấu hình. Bộ nhớ đệm kém, thiếu tiêu đề hết hạn trên nội dung tĩnh, sử dụng HTTP so với tệp bao gồm, v.v ... tất cả đều góp phần vào hiệu suất ứng dụng kém. Khắc phục các sự cố ứng dụng này không yêu cầu thay đổi phần cứng. Trong các trường hợp khác, tôi đã thấy các đĩa được tối đa hóa mặc dù có rất nhiều bộ nhớ đệm. Di chuyển đến đĩa nhanh hơn đã khắc phục vấn đề.
Rửa sạch và lặp lại
Thông thường trong quá trình điều chỉnh ứng dụng, bạn sẽ mở nút cổ chai để chỉ tìm một nút khác. Đây là lý do tại sao tôi khuyên bạn nên cố gắng theo dõi bất cứ điều gì bạn đang điều chỉnh.
Ví dụ: giả sử bạn khắc phục sự cố IO đĩa nhưng ứng dụng của bạn vẫn chậm. Bạn có thể nghĩ rằng mình đã lãng phí công sức của mình, nhưng điều xảy ra là bạn đơn giản gặp phải một nút cổ chai khác. Bằng cách theo dõi IO đĩa cẩn thận, bạn có thể chắc chắn rằng mình đang cải thiện IO đĩa ngay cả khi màn hình hiệu suất ứng dụng quan trọng của bạn không thay đổi.
Nhận đúng công cụ
Hãy chắc chắn rằng bạn đang sử dụng các công cụ phù hợp cho công việc. Giám sát, kiểm tra, đo điểm chuẩn, định hình và các kỹ thuật tối ưu hóa khác đều có nhiều công cụ khác nhau. Tìm công cụ phù hợp nhất với tình huống của bạn nhất.
Quy tắc của ngón tay cái
Mặc dù mỗi ứng dụng là duy nhất, tôi tìm thấy một số điểm bắt đầu tiêu chuẩn:
- cơ sở dữ liệu bộ nhớ yêu bộ nhớ
- đĩa io bất cứ điều gì nhưng đột kích 10 có thể giết chết hiệu suất cơ sở dữ liệu
- tối ưu hóa sai - giá trị lớn không chuyển thành hiệu suất lớn
- ứng dụng - đổ lỗi cho máy chủ cho thiết kế ứng dụng kém
Bước tiếp theo của bạn
Nếu bạn không tìm thấy nút cổ chai của mình, việc thêm máy chủ có thể không giúp ích nhiều. Để giải quyết đĩa IO, bạn có thể cần một máy chủ hoặc SAN khác. Nếu bạn có một nút cổ chai ram, một máy chủ khác sẽ chỉ giải quyết vấn đề ở chỗ nó có thêm RAM. Di chuyển khá tốn kém so với việc chỉ thêm RAM vào máy chủ hiện tại của bạn.
Khắc phục nhanh
Quá triển khai. Tôi đã phải làm điều này khi nó xuất hiện ngăn xếp ứng dụng là vấn đề. Về cơ bản tải lên CPU, RAM và đĩa IO (RAID 10, 15K SCSI hoặc SSD). Đi lớn trên phần cứng và sau đó bắt đầu điều chỉnh. Điều này giữ cho bạn nổi cho đến khi bạn giải quyết vấn đề.