Hi,
I also encountered the same problem.
The RabbitMQ version I am using is 3.11.10, and the Erlang version is 25.0.
Current environment has more than 500 devices connected to RabbitMQ via MQTT.
Each device sends data to RabbitMQ every minute.
Then redirect these data to another queue (such as MyQueue).
Then use another program to go to MyQueue to consume the data.
When the memory and hard disk resource are sufficient, sometimes connection state blocked occurs.
When connection state blocked occurs, the following situations will occur:
1. The operation of RabbitMQ management UI becomes very slow.
2. The data in MyQueue keeps accumulating (accumulating to hundreds of thousands of data), but our program just cannot consume the data.
3. A large number of logs appear, including:
a. "Channel is stopping with 64 pending publisher confirms".
b. "MQTT: a socket write failed, the socket might already be closed".
Erlang's CPU usage is between 5-10% as usual, but about half an hour later the system returned to normal.
Huge number of data can be consume normally, the connection will no longer have a blocked state, and the log will no longer have many of the abnormal logs mentioned above.
It is also worth mentioning that the log usually shows the log of get_disk_info timeout.
Also, the disk space cannot be obtained in the overview, it is all shown as 0, but my system has more than 50GB of free space.
Are there any other recommended commands to observe the current behavior when the above blocked state occurs, or are there any recommended configuration settings to reduce the occurrence of the problem?
Thanks.