Scan to open on your phone
Point a camera at the QR code - it opens this exact paste, no app needed.
https://codepastes.com/zzgsy0ebdfdmrvf6untitledPlain Text
# 1. ¿Qué dominios son web17 y web34?
grep -h open_basedir /etc/php/7.4/fpm/pool.d/web17.conf /etc/php/7.4/fpm/pool.d/web34.conf
# 2. ¿FPM se queda sin procesos?
sudo grep -iE 'max_children|slow' /var/log/php7.4-fpm.log | tail -20
# 3. ¿En qué está esperando un proceso colgado? (cambia el PID)
sudo strace -p 728492 -f -tt 2>&1 | head -30 # poll/recvfrom = red, flock = sesión
sudo ls -l /proc/728492/fd | grep -E 'socket|sess_'
sudo ss -tnp | grep 'php-fpm' | grep -v 127.0.0.1 # conexiones salientes abiertas y a qué IP
# 4. ¿Está lenta la API? (usa la URL de API_REQUEST de tu config)
curl -s -o /dev/null -w 'API: %{http_code} %{time_total}s\n' "https://.../API_STANDARD/1/"
curl -s -o /dev/null -w 'GEO: %{time_total}s\n' "https://www.panchotours.com/API_TURIFY/getcountryip?ip=8.8.8.8"
# 5. ¿O es MySQL?
sudo mysql -e "SHOW FULL PROCESSLIST" | grep -v Sleep
Para que la próxima vez te diga el sitio exacto, añade esto a web17.conf y web34.conf y recarga php-fpm:
request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm-$pool.slow.log
request_terminate_timeout = 120s
Cada petición que tarde más de 10 s quedará registrada con su stack trace (archivo y línea de PHP). El request_terminate_timeout evita además que un proceso se quede colgado indefinidamente.
Lo que haría en el código
1. En consume_api.php, poner CURLOPT_CONNECTTIMEOUT a 5 y CURLOPT_TIMEOUT a unos 30 (o lo que de verdad necesite el pago).
2. Al file_get_contents de geo-IP en pago.php, añadirle un stream_context_create con timeout => 3. Ya tienes HTTP_CF_IPCOUNTRY como alternativa.
3. Poner timeouts en el resto de curl_init.
4. Llamar a session_write_close() antes de las llamadas largas a la API cuando ya no haga falta escribir en la sesión.
Pásame la salida de los comandos 1, 2 y 3 y te digo exactamente qué es. Si quieres, también puedo aplicar ya los cambios de timeouts en el repo.1,888 chars · codepastes.com