Mẹo hiệu suất máy chủ LAMP [đã đóng]


11

Những mẹo hiệu suất nào có thể được cung cấp cho ai đó đang chạy máy chủ LAMP?

Trong trường hợp có thứ gì đó là Phân phối cụ thể, tôi đang nhắm mục tiêu Debian.

Câu trả lời:


26

Nó thực sự phụ thuộc vào khối lượng công việc của bạn.

  • cho L phần

    • nhận được rất nhiều bộ nhớ,
    • nếu bạn có thể vượt quá 4GB, hãy đi 64 bit.
    • cho các phân vùng nơi nội dung, nhật ký và dữ liệu MySQL của bạn được sử dụng tùy chọn gắn kết: noatime, gật đầu.
    • sử dụng các ổ đĩa / bộ đột kích vật lý riêng biệt, lý tưởng là giữ dữ liệu SQL, nhật ký, nội dung bạn phục vụ - mỗi bộ trên trục chính riêng biệt.
  • cho phần A của ngăn xếp của bạn - có thể bạn muốn thay thế hoàn toàn bằng nginx hoặc lighthttpd hoặc có thể chỉ để lại Apache cho nội dung động và có máy chủ riêng (như hai hoặc mathopd ) cho nội dung tĩnh. Hãy xem ở đây để có nhiều lựa chọn hơn. Nếu bạn định chạy cả Apache và một máy chủ khác trong cùng một hộp, địa chỉ IP thứ 2 sẽ có ích. Để giảm độ trễ cho người dùng cuối, hãy sử dụng http / 1.1 với chế độ duy trì. Cân nhắc sử dụng CDN cho nội dung tĩnh.

  • đối với phần M của đèn của bạn - hãy xem mysqlperformanceblog . từ đỉnh đầu của tôi:

    • đăng nhập truy vấn chậm,
    • cho đủ bộ nhớ
    • xem xét sử dụng innodb.
    • nếu bạn có nhiều văn bản để tìm kiếm trên khắp - hãy sử dụng nhân sư và có một công việc hàng loạt để xây dựng lại chỉ mục.
    • xem xét việc hủy các truy vấn chạy lâu hơn XYZ giây. Tốt hơn hết là làm phiền 1% người dùng hơn là hạ toàn bộ trang web vào thời gian cao điểm. Nhưng điều đó thực sự phụ thuộc nếu bạn xử lý các giao dịch tiền mặt hoặc hiển thị hình ảnh đẹp.
    • sử dụng memcached nếu bạn có thể, để lưu trữ kết quả của các truy vấn SQL 'đắt tiền' hơn. Hãy ghi nhớ để vô hiệu hóa bộ đệm khi bạn thay đổi nội dung của SQL. Mặt khác, tôi có khá ít trang web mà tất cả dữ liệu phù hợp với bộ nhớ một cách thoải mái và vì điều đó MySQL rất nhanh và không cần thêm bộ đệm.
  • cho P

    • đặt thời gian thực hiện cho các tập lệnh.
    • xem xét sử dụng một số bộ tăng tốc / bộ đệm opcode PHP . Tôi khá hài lòng với xcache , nhưng hiện tại tôi không sử dụng nó.
    • nếu bạn có CPU xử lý chuyên sâu - kết quả bộ đệm và lưu trữ chúng trong SQL hoặc memcached

Không thực sự là một mẹo hiệu suất, nhưng hãy thực hiện sao lưu ngoại vi. Có thật không.


1
Nếu tôi có thể thêm cái này, gần đây tôi đã viết blog về các bản sao lưu an toàn với các chiến lược đẩy và kéo thông qua amazon s3. không khả thi đối với dữ liệu ngân hàng, nhưng mọi thứ bạn sẽ tin tưởng vào amzon sẽ ổn. logaholic.de/2009/05/21/ hy
Karsten

Tôi thực sự đã nhận thấy rằng bài viết trên blog trước khi bạn bình luận; -]. dù sao cũng tốt bạn luôn có thể mã hóa bản sao lưu của mình để làm cho nó an toàn hơn.
pQd

3

Tôi thực sự khuyên bạn nên tách MySQL và Apache / PHP trên hai máy khác nhau.

Ví dụ: tôi có một máy (C2D E6600) luôn tăng vọt lên 2.0 và trên trung bình tải. Tôi đặt MySQL trên máy thứ hai (P4C 3Ghz) và sau đó cả hai trung bình tải không vượt quá 0,2-0,3. Vì vậy, tôi đã đi từ một trang web thực sự chậm đến một trang web nhanh với hai máy chủ có rất nhiều hiệu suất.


điểm tốt. tôi chỉ có thể suy đoán rằng nút cổ chai của bạn có thể là hệ thống con IO / phản ứng ổ đĩa. sau đó có thể tách dữ liệu trên hai ổ đĩa khác nhau / có bộ điều khiển đĩa tốt cũng có thể thực hiện thủ thuật này. dù sao bộ nhớ nhiều hơn và nhiều cpus hơn luôn luôn tốt, nhưng sau đó bạn cũng nhận được nhiều điểm có thể thất bại hơn.
pQd

Chà, tôi không chắc chắn đó là I / O đĩa vì hầu hết (giả sử 90%) các lần truy cập SQL đã được lưu trữ. Tôi đã suy nghĩ về các chuyển đổi bối cảnh CPU nhưng tôi không biết nếu điều đó thực sự có thể đóng một vai trò quan trọng.
Antoine Benkemoun

1

Đối với phần P, bạn có thể xem xét bộ đệm ẩn opcode với APC . Người ta cũng có thể xem xét mod_fastcgi với php thay vì mod_php mặc định.


Tôi thực sự thích eAccelerator. Nó mang lại hiệu suất tốt nhất cho các trang web của tôi.
TheHippo
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.