Tôi có một trang web có tập lệnh tùy chỉnh chạy trên dịch vụ lưu trữ VPS. Tất cả các kịch bản đi ra ngoài thông qua index.php sử dụng mod_rewrite và .htaccess cho các URL thân thiệnLàm thế nào để theo dõi kịch bản PHP chạy một quy trình nhất định?
Something trong kịch bản của tôi được tạo ra sử dụng CPU cao, như hiển thị:
Khi tôi đi và strace
một quá trình nhất định tôi nhận được điều này mà tôi không hiểu:
setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={90, 0}}, NULL) = 0
rt_sigaction(SIGPROF, {0x7a6b8f, [PROF], SA_RESTORER|SA_RESTART, 0x2af8ae8742f0}, {0x7a6b8f, [PROF], SA_RESTORER|SA_RESTART, 0x2af8ae8742f0}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
Điều này được lặp lại liên tục trong một vòng lặp vô hạn.
Điều tôi cần biết là cách theo dõi tập lệnh PHP chính xác gây ra sự cố này. Bất kỳ đề xuất?
Bật ghi nhật ký lỗi. Đặt thời gian thực hiện tối đa. Hãy nhìn vào nhật ký lỗi mà kịch bản không hoạt động. Có thể tạo trình xử lý lỗi của riêng bạn có thể đổ chi tiết yêu cầu trong trường hợp lỗi thời gian chờ được kích hoạt, vì vậy bạn có thể bắt đầu tái tạo điều này bằng trình gỡ lỗi từ xa. – hakre
Bạn đang sử dụng API nào? CGI? – hakre