Tối ưu hóa Apache và MySQL trên Linux Xen VPS


10

Tôi có một máy chủ riêng ảo Xen (VPS) chạy Ubuntu 8.10, với RAM 128M.

Tôi đã tìm thấy một số trang "cách tối ưu hóa Apache và MySQL cho VPS bộ nhớ thấp" thông qua Google, nhưng chúng cung cấp thông tin trái ngược nhau. Vì vậy, tôi đang hỏi Server Fault: làm thế nào để tối ưu hóa Apache và MySQL cho cấu hình VPS bộ nhớ thấp?


Một vài người đã đề nghị sử dụng nginx thay vì Apache. Tôi sẽ xem xét điều đó, nhưng tôi thích gắn bó với Apache hơn nếu có thể, chỉ để tránh phải tìm hiểu tất cả về cách định cấu hình ngăn xếp ứng dụng trên máy chủ web không quen thuộc (với tôi).

Câu trả lời:


7

Nginx rất tuyệt, nhưng nếu bạn muốn gắn bó với Apache, có thể giảm nhẹ nó xuống một chút so với các cài đặt mặc định:

  • Sử dụng MPM worker thay vì prefork (với MPM Apache worker không còn có mô hình "process per results").
  • Nhìn vào tất cả các mô-đun được chia sẻ mà bạn đang tải, loại bỏ bất kỳ mô-đun nào bạn không cần.
  • Tránh nhúng các máy chủ ứng dụng bên trong Apache (ví dụ mod_python, mod_php, v.v.) nếu bạn có thể tránh nó. Thay vào đó, hãy chạy các máy chủ ứng dụng trong một quy trình riêng biệt và có proxy Apache cho chúng (tức là đối với mã Python sử dụng mod_wsgi trong chế độ daemon). Bằng cách này, các luồng Apache của bạn chỉ đơn giản là phục vụ nội dung tĩnh sẽ không bị phồng lên một cách không cần thiết.
  • Trong cấu hình Apache của bạn, giảm các cài đặt StartServers, MaxCl Client, MinSpareThreads và MaxSpareThreads. Tùy thuộc vào tải dự kiến ​​của bạn, đôi khi bạn có thể giảm chúng theo hệ số năm hoặc nhiều hơn từ cài đặt mặc định.

2

Nếu bạn có các hạn chế về bộ nhớ, tôi khuyên bạn nên sử dụng nginx như một giải pháp thay thế nếu có thể. Nó tiêu thụ ít bộ nhớ hơn Apache và tùy thuộc vào nhu cầu của bạn có thể là tất cả những gì bạn cần.

Là một phần thưởng, nginx có xu hướng nhanh hơn đáng kể so với Apache. =)


2

Bỏ qua apache, quá trình trên mỗi mô hình kết nối sẽ không phát với VPS bộ nhớ thấp của bạn.

Tôi đề nghị nginx như một sự thay thế.


4
Đây chỉ là một vấn đề cho 1.3. apache 2.x cho phép các mô đun quy trình có thể cắm bao gồm MPM chạy nhiều luồng trong một số lượng nhỏ các quy trình. Tất cả có thể điều chỉnh để nếm thử
Vagnerr

Đúng, nhưng nginx vẫn sẽ là một quá trình nhỏ hơn
Dave Cheney

2
Vâng, nhưng đó không phải là những gì bạn đã nói
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.