Phần lớn cc ứng dụng trực tuyến được lưu trữ sử dụng một server web (front-end) v một server database (back-end). Qua thời gian, cc services c xu hướng ngốn CPU, bộ nhớ, I/O khiến chng bị thắt nt cổ chai dẫn đến hiệu suất km hoặc thậm ch server bị crash.
V vậy chng ta cần phải thường xuyn theo di tnh trạng server qua cc trnh monitoring để xử l kịp thời mỗi khi server c điều g bất thường như trang web trở nn chậm chạp trnh việc server bị crash.
Lm thế no để tăng tốc Web v Database services
Hm nay chng ta hy nhn vo cc thiết lập phổ biến nhất m chng ta đ thực hiện. Như một v dụ, chng ta sẽ xem lm thế no cc services như Apache v MySQL c thể được tối ưu ha trn server Linux chạy cPanel hay Plesk.
1. Tối ưu ha Apache
File cấu hnh của Apache được đặt tại /usr/local/apache/conf/httpd.conf trong một server cPanel v tại /etc/httpd/conf/httpd.conf trong một server Plesk. Bước đầu tin l để đo hiệu suất hiện tại của my chủ web. Bạn c thể sử dụngab
để benchmark my chủ. Nếu bạn nhận được lỗi command not found khi chạyab
, bạn c thể sử dụng đường dẫn tuyệt đối file binary củaab
, v dụ/usr/local/apache/bin/ab
trong một server cPanel. Nếu bạn thấy n qu phức tạp, hy sử dụng bất kỳ cng cụ trực tuyến để đo hiệu suất.
Bước tiếp theo l thay đổi cc chỉ thị trong file cấu hnh. Xin lưu rằng bạn sẽ phải khởi động lại Apache (/etc/init.d/httpd restart
) để cc thay đổi c hiệu lực. Cc chỉ thị phổ biến m bạn c thể thay đổi l:
Timeout
Chỉ thị Timeout được sử dụng để xc địnhsố lượng thời gian Apache sẽ chờmột request GET, POST, PUT v ACKs trn đường truyền trước khi n tự động ngắt khi thời gian nghỉ vượt qu gi trị ny.
Gi trị mặc định của Timeout l 60, ti thường thiết lập với gi trị 120. Tuy nhin, n được khuyến khch để thiết lậpgi trị ny thấp hơnnếu khch hng của bạn c thời gian trễ thấp. Trong một số trường hợp, thiết lập chỉ thị ny đến một gi trị thấp c thể gy ra vấn đề. Điều ny rất phụ thuộc vo mạng v my chủ của bạn thiết lập. Cc tốt nhất l để thử nghiệm với cc gi trị khc nhau để tm một trong đ ph hợp với nhu cầu của bạn.
KeepAlive
Chỉ thị KeepAlive nếu để l On,cho php kết nối lin tụctrn my chủ web. Đối với hiệu suất tốt hơn, n được đề nghị để thiết lập ty chọn ny để On v cho php nhiều request cho mỗi kết nối.
MaxKeepAliveRequests
Chỉ thị ny được sử dụng để xc địnhsố lượng requestscho php mỗi kết nối khi ty chọn KeepAlive trn được thiết lập để On. Khi gi trị của ty chọn ny được thiết lập để 0 c nghĩa rằng cho php khng giới hạn số lượng requests trn server. Để tăng hiệu suất my chủ, nn cho php khng giới hạn số lượng requests.
KeepAliveTimeout
Chỉ thị ny được sử dụng để xc địnhbao nhiu thời gian, chỉ trong vi giy, Apache sẽ chờ đợi cho một request tiếp theo trước khi đng kết nối. Khi một request đ được nhận, gi trị thời gian chờ quy định của Timeout chỉ được p dụng.
Đối với cc web server nhận được hơn 200 kết nối tại bất kỳ thời điểm no, ti thường để gi trị KeepAliveTimeout bằng 10 l một thiết lập tốt cho hiệu suất my chủ. Gi trị ny nn được giữ ở mức thấp như cc socket sẽ được nhn rỗi trong thời gian di khc.
MaxClients
Chỉ thị ny được sử dụng để xc định giới hạn vềsố lượng cc tiến trnh consẽ được tạo ra để phục vụ request. Mặc định nghĩa l ln đến 512 requests HTTP c thể được xử l đồng thời. Đy l một tham số điều chỉnh quan trọng về hiệu suất của my chủ web Apache. Đối với hoạt động tải trọng cao, gi trị 512 được khuyến khch. Để sử dụng tiu chuẩn, bạn c thể thiết lập gi trị 256.
MinSpareServers
Chỉ thị ny được sử dụng để xc địnhsố lượng tối thiểu của cc idle process concần được tạo. Một idle process trong đ l khng xử l một request. Nếu c t hơn MinSpareServers idle process, th process cha tạo ra con mới với tốc độ tối đa của 1 mỗi giy.
Thiết lập ny phải ph hợp với bao nhiu kết nối mới m bạn mong đợi mỗi giy. Với kinh nghiệm của ti, ti thấy rằng một gi trị MinSpareServers 10 l thch hợp cho cc my chủ nhận được ln đến 300 kết nối đồng thời.
MaxSpareServer
Chỉ thị ny được sử dụng để xc địnhsố lượng tối đa của cc idle process concần được tạo. Nếu c nhiều hơn MaxSpareServers idle process, th process cha sẽ kill cc process dư thừa v cc process bổ sung ny sẽ được chấm dứt. Gi trị idle l 15.
MaxRequestsPerChild
Ty chọn ny MaxRequestsPerChild được sử dụng để xc địnhsố lượng requestsrằng một process con c biệt sẽ xử l. Đặt chỉ thị ny để 0 để c được hiệu suất tối đa v khả năng mở rộng cho cc my chủ.
HostnameLookups
Chỉ thị ny nếu thiết lập để Off, quy định cụ thể đểv hiệu ha cc tra cứu DNS. Đ l khuyến co để thiết lập ty chọn ny để Off để trnh độ trễ để mọi yu cầu, để tiết kiệm thời gian lưu lượng mạng, v để cải thiện hiệu suất của my chủ web Apache.