У меня есть приложение на сервере Java.
while(true)
{
serverSocket.receive(receivePacket);
process(receivePacket);
serverSocket.send(sendPacket);
try {
Thread.sleep(10000); // sleep for 10s
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Получает и обрабатывает 1 пакет UDP / 10 сек.
Если я отправляю 10 пакетов UDP, сервер обрабатывает 1 пакет, а затем переходит в спящий режим на 10 секунд. так что я получаю 10-й пакетный ответ через 100 с.
Если я это сделаю, то это server1 с CentOS-версией 6.4 (финальная версия).
Server 1: cat /proc/net/udp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
110: 00000000:10AE 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 85635445 2 ffff880836e6d100 0
111: 00000000:10AF 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 85635446 2 ffff88083913a1c0 0
115: 00000000:15B3 00000000:0000 07 00000000:00004FC8 00:00000000 00000000 0 0 390649369 2 ffff880434ae7440 0
117: 02FE6341:0035 00000000:0000 07 00000000:00000000 00:00000000 00000000 0 0 353480394 2 ffff8808367f9040 0
Если я сделаю то же самое на сервере 2:
Server 2: cat /proc/net/udp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
4: FCA9C11F:C36F 8C719AC6:0035 01 00000000:00000000 00:00000000 00000000 0 0 2983494501 2 ffff880169aff4c0 0
5: FCA9C11F:D3F0 8C719AC6:0035 01 00000000:00000000 00:00000000 00000000 0 0 2983494485 2 ffff8801b9bbedc0 0
16: 7A52BB59:007B 00000000:0000 07 00000000:00000000 00:00000000 00000000 38 0 2438608536 2 ffff8807656764c0 0
16: A2EE0D55:007B 00000000:0000 07 00000000:00000000 00:00000000 00000000 38 0 2438608045 2 ffff88077ccdd7c0 0
16: A58F466D:007B 00000000:0000 07 00000000:00000000 00:00000000 00000000 38 0 2438607809 2 ffff8801129f6240 0
Они оба являются сервотами Centos, и, как мы видим, буфер rx_queue сервера server1 увеличивается, поскольку приложение обрабатывает пакеты медленнее, чем данные поступают на сервер.
Я сделал то же самое в server2, но в server2 rx_queue не увеличивается.
что я делаю / неправильно понимаю?