2014-07-21 16 views
6

Có cơ sở dữ liệu một trên địa phương và khác là trên vị trí máy chủ từ xa. Framework - CakePHP Mysql: 5.1.71 - "vị trí từ xa" PHP Version 5.5.14httpd - Sử dụng CPU 100% - Máy chủ Mysql từ xa vị trí

Bây giờ khi sử dụng cơ sở dữ liệu mysql địa phương, việc sử dụng CPU là bình thường đối với yêu cầu httpd trong khi kiểm tra bằng lệnh TOP.

Tuy nhiên trong khi tôi đang sử dụng cơ sở dữ liệu máy chủ từ xa. việc sử dụng CPU sẽ tăng tối đa 70% hoặc đôi khi 100% khi truy cập vào cùng một trang.

Sau đây là vài cài đặt chính cho php.ini và httpd.conf file

php.ini

memory_limit = 128M 
max_input_time = 60 
post_max_size = 8M 

httpd.conf

<IfModule prefork.c> 
StartServers  8 
MinSpareServers 5 
MaxSpareServers 20 
ServerLimit  256 
MaxClients  256 
MaxRequestsPerChild 4000 
</IfModule> 

<IfModule worker.c> 
StartServers   4 
MaxClients   300 
MinSpareThreads  25 
MaxSpareThreads  75 
ThreadsPerChild  25 
MaxRequestsPerChild 0 
</IfModule> 

KeepAlive Off 
MaxKeepAliveRequests 100 
KeepAliveTimeout 15 

gì có thể là nguyên nhân cho sử dụng CPU cao cho httpd trong trường hợp này.

Mọi trợ giúp sẽ được đánh giá cao.

Cảm ơn Sudhir

Trả lời

0

Tôi từng có hai máy chủ mysql đó đã cố định như thế này. Tôi sẽ có một vài kịch bản đã làm một vài điều. Một sẽ cho tôi biết những gì các hành động kết nối được tìm kiếm như (concurrrent phiên kết nối n máy chủ) và đăng nhập đó. Điều tiếp theo sẽ kiểm tra việc sử dụng dịch vụ và nếu ngưỡng đạt 70%, tôi sẽ bắt đầu giết các kết nối và gửi cho tôi một số email để xem thỏa thuận là gì.

Nó bật ra rằng trong thời gian sử dụng bình thường của bạn khi bạn mong đợi để xem những người duyệt trang web của bạn đã borking máy chủ của tôi).

Một số điều tôi đã làm để giảm nhẹ việc này bên cạnh các phiên giết người (điều này không hề hay). Là bình thường hóa cơ sở dữ liệu của tôi, các bảng refactor đã được nhìn thấy sử dụng nặng. Sau đó tôi sẽ sửa chữa và reindex.

Tôi cũng nhận ra rằng một số thứ nhất định không thể định cấu hình được. Chúng tôi tạo ra dư thừa.

Tôi phải phản chiếu máy chủ MySQL của mình và sau đó định tuyến người dùng dựa trên các tham số yêu cầu.

Cuối cùng tôi đã nhận ra rằng tôi cần một số cân bằng tải tốt hơn và kết thúc với 4 máy chủ MySQL và giảm tải cân bằng và hướng lưu lượng truy cập.

Vì vậy, cách tiếp cận của bạn là ở cấp truy vấn và xem bạn có thể làm gì ở đó, sau đó chuyển đổi lại bảng và DB của bạn/bảng.

Tiếp theo tạo tập lệnh giết người kết nối đồng thời và người dùng mục tiêu không hoạt động và chuyển hướng họ ở đâu đó hoặc chỉ cắt chúng và nhường chỗ cho những người nặng ký trên trang web của bạn.

Tôi đã làm rất nhiều thứ theo thời gian nhưng đó là cách tất cả bắt đầu lại trong ngày.

Hy vọng điều này hữu ích hoặc ít nhất giúp bạn suy nghĩ về cách tiếp cận

Các vấn đề liên quan