Máy chủ chuyên dụng của tôi có RAM 32 GB và bộ nhớ chỉ tăng lên liên tục và tôi phải khởi động lại nó hàng ngày ngay bây giờ. Điều này khiến tôi tốn tiền và khách hàng.Cách tìm tập lệnh PHP nào bị rò rỉ bộ nhớ?
Tôi gặp khó khăn khi tìm nơi rò rỉ bộ nhớ. Tất cả tôi có thể tìm thấy trực tuyến là mọi người nói "Sử dụng xdebug" nhưng tôi đã không thể tìm thấy bất kỳ hướng dẫn xdebug về việc tìm kiếm rò rỉ bộ nhớ. Tôi đã thử in memory_get_usage trước và sau khi các cuộc gọi chức năng nhưng là đúng cách để làm điều đó?
Tôi có nhiều tập lệnh php đang chạy - một số từ khách truy cập, những người khác từ công việc cron - và tôi cần tìm (những) người nào đang rò rỉ bộ nhớ và sửa ASAP nhưng tôi thậm chí không biết cách xác định xem một chức năng cụ thể là bộ nhớ bị rò rỉ hay không.
Tôi đã thử in memory_get_usage trước khi gọi hàm và sau đó, và nó tăng lên, nhưng sau đó nếu tôi gọi hàm nhiều lần, nó sẽ không xuất hiện nữa. Ai đó có thể vui lòng giải thích điều này và cho tôi biết làm thế nào tôi có thể chỉ đơn giản và dễ dàng cho biết nếu một chức năng PHP có một rò rỉ bộ nhớ?
Tôi đã cân nhắc thực hiện điều đó ... sao chép toàn bộ nội dung sang một máy chủ khác và chỉ chạy một phần tại một thời điểm và xem nguyên nhân gây ra nó. Tốn kém và tốn thời gian mặc dù ... Không có cách nào để đơn vị kiểm tra bộ nhớ trong PHP? – Guy
Tôi không biết. Tôi cũng tò mò. Tôi đã bình chọn cho bạn và có thể cả hai chúng tôi sẽ tìm ra. –
Tôi đồng ý với @ TomášZato.Bạn có thể sử dụng một kịch bản 'auto_append_file' và' memory_get_ * 'để ghi lại tất cả các kịch bản của bạn và xem ra các kịch bản nặng. – metadings