There is a PHP script on the line to connect a set of socket service query data, which is run every minute.
After running for a period of time in the log to find a small number of eintr errors, mainly performed to Socket_read thrown.
After reviewing the data, it is understood that the operation of the socket read is called slow system call, and when the kernel executes slow system calls, the process receives a signal during the blocking state, causing the slow system call to be interrupted, triggering a eintr error.
I would like to ask the next, in the production environment, this kind of problem is generally caused by what reason?
=====
System environment:
Os:centos 5.4
HTTP Server: Apache,worker mode, multi-process multithreading
PHP works as a module, version 5.3.22
Is it possible that the Apache worker has reached the maximum number of requests and destroyed the rebuild?
Is it possible that there is a problem with the Socket server?
Reply content:
There is a PHP script on the line to connect a set of socket service query data, which is run every minute.
After running for a period of time in the log to find a small number of eintr errors, mainly performed to Socket_read thrown.
After reviewing the data, it is understood that the operation of the socket read is called slow system call, and when the kernel executes slow system calls, the process receives a signal during the blocking state, causing the slow system call to be interrupted, triggering a eintr error.
I would like to ask the next, in the production environment, this kind of problem is generally caused by what reason?
=====
System environment:
Os:centos 5.4
HTTP Server: Apache,worker mode, multi-process multithreading
PHP works as a module, version 5.3.22
Is it possible that the Apache worker has reached the maximum number of requests and destroyed the rebuild?
Is it possible that there is a problem with the Socket server?
As long as an interrupt is encountered, it will return to EINTR, which is very normal, just go straight to read.