When I try importing data into the system using Data Import, sometimes in between i face this issue. I guess the background scheduler is taking time or so… So from the browser when i hit the URL, the web page doesn’t load and will show the error as ERP Next site not reachable. The reason it says is that server took long to respond.
The issues gets resolved after 5 to10 minutes.
sudo supervisorctl status show all the process are running. The nginx log or the frappe log is not showing any data…
What log do we need to check when the system becomes unresponsive.
How to debug this issue? How to avoid this kind of issue?
Thanks for your reply. I tried the same. I setup the number of workers to 3 in the supervisor.conf file
command=/home/frappe/frappe-bench/env/bin/gunicorn -b 127.0.0.1:8000 -w 3 -t 120 frappe.app:application --preload
However when i try to imports lets say 15 items, it again takes close to 10 minutes for the system to come back live. But after 10 minutes, the 15 items are getting created.
Anything i am doing it wrong?
How to check whether gunicorn workers count?
How to know the default http timeout set in erpnext?
I see the following link to set the timeout. What is the typical range set for http timeout.
First, what is your system (cpu-number of cores, memory - how many gigabytes)?
You can add --threads 10 after -w 3 to use gthread worker class in gunicorn which overcomes the timeout limitation of gunicorn.
Thanks for the response. For Assessment, we are trying with a AWS Trial EC2 instance with 1 core, 1 GB . This configuration will change once we move to production. Will check with above suggested change.
Unfortunately, this is not enough. To evaluate ERPNext properly, you need at least 2Core 8Gig Memory. (Try Google Cloud, Digital Ocean, or Microsoft Azure.) ERPNext is not a toy. Would you place SAP in this type of computer? ERPNext has MariaDB, Redis, etc.
Try adding --threads 4 to your supervisor.conf and erase --preload.
The objective is to overcome the timeout of sync gunicorn worker by using gthread, and to save the minimum resources you have by doing away with preload (this is only useful if you are not using threads and exclusively using sync workers only)