We uses around ~ 2 threads at most for a CPU core. On a 16 core machine so we uses 32 threads at most. The number of threads and connections should be ideally same as per the guideline. So the max connections we make to APNS are also 32. Machine has a 64GB RAM. By running the command "dig +short api.push.apple.com", seems there are less than 10 available servers for APNS.
Do you think with this configuration, the mentioned delivery time is expected? Do you recommend an open HTTP/2 connection for each 1k notifications in order to deliver notifications in 1-2 seconds? Sending is done asynchronous manner without waiting for response. There is also a flow control implemented. What is the maximum supported number of inflight notifications at a time?
Is there someway to identify when was message received at APNS? In https://icloud.developer.apple.com/dashboard → push notifications I can see some message delivery status but it is an aggregation of several days but do not show at what time of day notification was receieved in APNS
The mentioned delay is only for a customer but for others it is much faster.