У меня есть и старый код работает нормально в этой среде:
Curl 7.19, php 5.3.17 Экземпляр AWS EC2 PV DynamoDB SDK ver 1.5
Я понимаю, что SDK является древним, нонам нужно, чтобы этот код работал еще несколько месяцев.
После перемещения кода в новый экземпляр (экземпляр AWS EC2 HVM) код начал работать нестабильно.Каждый день 2-3 раза, случайно и неожиданно код зависает.После добавления некоторой отладки мы заметили шаблон:
- таймауты Dynamodb
- tcp застрял в CLOSE_WAIT
- Загрузка ЦП идет на 100%
Основное различие, которое я заметил между старым и новым экземпляром - это версия CurlЯ пытался получить любую информацию о проблемах, связанных с Curl 7.61 и более ранним DynamoDb SDK для php, но ничего не смог найти.
Я хочу спросить, не сталкивался ли кто-нибудь с подобными проблемами и в чем может быть причина?
Мы попытались перенести код обратно в экземпляр PV, который работал нормально.Код работает здесь, как и ожидалось.
Точные версии и ошибки Curl:
старый экземпляр PV
curl --version
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
новый экземпляр HVM
curl --version
curl 7.61.1 (x86_64-redhat-linux-gnu) libcurl/7.61.1 OpenSSL/1.0.2k zlib/1.2.8 libidn2/0.16 libpsl/0.6.2 (+libicu/50.1.2) libssh2/1.4.2 nghttp2/1.21.1
Release-Date: 2018-09-05
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz HTTP2 UnixSockets HTTPS-proxy PSL
"ошибка тайм-аута ", которую мы нашли в логах
[2019-06-26 08:05:42][30661] * Connection #2 to host dynamodb.ap-northeast-1.amazonaws.com left intact
[2019-06-26 08:05:42][30661] * Operation timed out after 120000 milliseconds with 0 out of 0 bytes received
[2019-06-26 08:05:42][30661] * Closing connection 1
[2019-06-26 08:05:42][30661] <div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
[2019-06-26 08:05:42][30661]
[2019-06-26 08:05:42][30661] <h4>A PHP Error was encountered</h4>
[2019-06-26 08:05:42][30661]
[2019-06-26 08:05:42][30661] <p>Severity: Warning</p>
[2019-06-26 08:05:42][30661] <p>Message: curl_multi_add_handle(): 110 is not a valid cURL handle resource</p>
[2019-06-26 08:05:42][30661] <p>Filename: requestcore/requestcore.class.php</p>
[2019-06-26 08:05:42][30661] <p>Line Number: 879</p>