From 66b1b0418c1c6a1b9e345d9415264834f9b9b0f8 Mon Sep 17 00:00:00 2001 From: mrspeedyy <98523796+mrspeedyy@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:55:26 +0200 Subject: [PATCH 1/2] 5.0 start.sh -> start web api sooner --- 5.0/start.sh | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/5.0/start.sh b/5.0/start.sh index 0634939..8333e13 100755 --- a/5.0/start.sh +++ b/5.0/start.sh @@ -67,6 +67,19 @@ fi tail -Fv /var/log/postgresql/postgresql-16-main.log & tailpid=${!} +#start api server even before cache warming +cd "$PROJECT_DIR" +sudo -u nominatim gunicorn \ + --bind :8080 \ + --pid $GUNICORN_PID_FILE \ + --workers 4 \ + --daemon \ + --enable-stdio-inheritance \ + --worker-class uvicorn.workers.UvicornWorker \ + nominatim_api.server.falcon.server:run_wsgi + +echo "--> Nominatim is ready to accept requests" + export NOMINATIM_QUERY_TIMEOUT=600 export NOMINATIM_REQUEST_TIMEOUT=3600 if [ "$REVERSE_ONLY" = "true" ]; then @@ -80,16 +93,4 @@ export NOMINATIM_QUERY_TIMEOUT=10 export NOMINATIM_REQUEST_TIMEOUT=60 echo "Warming finished" -echo "--> Nominatim is ready to accept requests" - -cd "$PROJECT_DIR" -sudo -u nominatim gunicorn \ - --bind :8080 \ - --pid $GUNICORN_PID_FILE \ - --workers 4 \ - --daemon \ - --enable-stdio-inheritance \ - --worker-class uvicorn.workers.UvicornWorker \ - nominatim_api.server.falcon.server:run_wsgi - -wait \ No newline at end of file +wait From 23b033e2507709883feaa6bcf50f8792991d0a0d Mon Sep 17 00:00:00 2001 From: mrspeedyy <98523796+mrspeedyy@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:57:50 +0200 Subject: [PATCH 2/2] 5.1 start.sh -> start web api server even before database warming On low spec hw, especially slow storage, database warming can take up hours before web api is available. This change tradeoffs initial performance for immediate availability. --- 5.1/start.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/5.1/start.sh b/5.1/start.sh index 7fbbec0..7f6f8a6 100755 --- a/5.1/start.sh +++ b/5.1/start.sh @@ -67,19 +67,6 @@ fi tail -Fv /var/log/postgresql/postgresql-16-main.log & tailpid=${!} -export NOMINATIM_QUERY_TIMEOUT=600 -export NOMINATIM_REQUEST_TIMEOUT=3600 -if [ "$REVERSE_ONLY" = "true" ]; then - echo "Warm database caches for reverse queries" - sudo -H -E -u nominatim nominatim admin --warm --reverse > /dev/null -else - echo "Warm database caches for search and reverse queries" - sudo -H -E -u nominatim nominatim admin --warm > /dev/null -fi -export NOMINATIM_QUERY_TIMEOUT=10 -export NOMINATIM_REQUEST_TIMEOUT=60 -echo "Warming finished" - # Set default number of workers if not specified if [ -z "$GUNICORN_WORKERS" ]; then GUNICORN_WORKERS=$(nproc) @@ -87,8 +74,6 @@ fi echo "Starting Gunicorn with $GUNICORN_WORKERS workers" -echo "--> Nominatim is ready to accept requests" - cd "$PROJECT_DIR" sudo -u nominatim gunicorn \ --bind :8080 \ @@ -99,4 +84,19 @@ sudo -u nominatim gunicorn \ --worker-class uvicorn.workers.UvicornWorker \ nominatim_api.server.falcon.server:run_wsgi -wait \ No newline at end of file +echo "--> Nominatim is ready to accept requests" + +export NOMINATIM_QUERY_TIMEOUT=600 +export NOMINATIM_REQUEST_TIMEOUT=3600 +if [ "$REVERSE_ONLY" = "true" ]; then + echo "Warm database caches for reverse queries" + sudo -H -E -u nominatim nominatim admin --warm --reverse > /dev/null +else + echo "Warm database caches for search and reverse queries" + sudo -H -E -u nominatim nominatim admin --warm > /dev/null +fi +export NOMINATIM_QUERY_TIMEOUT=10 +export NOMINATIM_REQUEST_TIMEOUT=60 +echo "Warming finished" + +wait