we have a large Woocommerce website hosted on Google VM servers (E2 4vCPU + 16 GB RAM + 100 GB SSD Storage), recently we created a mobile application using flutter and WordPress -Woocommerce- API, but we faced a three issues
- if two users open the app at the same time, data loading synchronously not parallel, it seems the server dealing with a single request only at the same time
- fetching data is very slow, to load a product maybe it will take more than 5 seconds on a HighSpeed Internet connection
- if the user using the app the website will take more time to load, it seems the server dealing with a single request only at the same time
Environment Details
- server NGINX + MySQL + PHP-FPM
- PHP 7.4
- OS: Centos 8
- All tables Engin - InnoDB
we did the following
- increased PHP.ini memory limit to 15GB
- increased PHP.ini timeout limit to 3000 sec
- Linked website with cloudflare. - Installed Cache Plugin W3 Total Cache
- Increase NGINX MAX Clients to 150
I am looking for a suggestion on how I can allow to server/MySQL handle a lot of requests?
PHP-FPM Config
pm.max_children = 200
pm.start_servers = 50
pm.min_spare_servers = 50
pm.max_spare_servers = 150
;pm.max_requests = 500
;php_admin_value[memory_limit] = 128M
;request_terminate_timeout = 0
;rlimit_core = 0
;rlimit_files = 1024
;pm.process_idle_timeout = 10s;
;pm.max_requests = 500
pm = dynamic
; process.priority = -19
PHP ini
;user_ini.cache_ttl = 300
implicit_flush = Off
;unserialize_max_depth = 4096
;realpath_cache_size = 4096k
;realpath_cache_ttl = 120
zend.exception_ignore_args = On
max_input_time = 6000
max_execution_time = 3000
;max_input_nesting_level = 64
memory_limit = 15000M
post_max_size = 800M
;mysqlnd.mempool_default_size = 16000
;mysqlnd.net_read_timeout = 31536000
;mysqlnd.net_cmd_buffer_size = 2048
soap.wsdl_cache_enabled=1
soap.wsdl_cache_ttl=86400
PHP-FPM www-status, when the app opening
pool: www
process manager: ondemand
start time: 03/Feb/2023:11:59:36 +0000
start since: 25801
accepted conn: 14613
listen queue: 0
max listen queue: 0
listen queue len: 0
idle processes: 0
active processes: 20
total processes: 20
max active processes: 20
max children reached: 53
slow requests: 0
************************
pid: 14270
state: Running
start time: 03/Feb/2023:19:08:39 +0000
start since: 58
requests: 17
request duration: 563199
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14272
state: Running
start time: 03/Feb/2023:19:09:03 +0000
start since: 34
requests: 12
request duration: 267198
request method: GET
request URI: /index.php
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14273
state: Finishing
start time: 03/Feb/2023:19:09:03 +0000
start since: 34
requests: 7
request duration: 5577206
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14274
state: Running
start time: 03/Feb/2023:19:09:03 +0000
start since: 34
requests: 7
request duration: 2475191
request method: GET
request URI: /index.php?consumer_key=xx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14275
state: Running
start time: 03/Feb/2023:19:09:03 +0000
start since: 34
requests: 8
request duration: 2731158
request method: GET
request URI: /index.php?status=publish&category=189&orderby=popularity&per_page=5&consumer_key=xxx&consumer_secret=yy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14276
state: Running
start time: 03/Feb/2023:19:09:04 +0000
start since: 33
requests: 8
request duration: 934026
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14277
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 6
request duration: 3243188
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14278
state: Finishing
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 6
request duration: 5822217
request method: GET
request URI: /index.php?consumer_key=xx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14279
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 7
request duration: 220
request method: GET
request URI: /www-status?full
content length: 0
user: -
script: -
last request cpu: 0.00
last request memory: 0
************************
pid: 14280
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 6
request duration: 5309224
request method: GET
request URI: /index.php?status=publish&per_page=20&page=1&skip_cache=1&stock_status=instock&consumer_key=xxx&consumer_secret=yy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14281
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 7
request duration: 2048190
request method: GET
request URI: /index.php?consumer_key=xx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14282
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 6
request duration: 5482457
request method: GET
request URI: /index.php?consumer_key=xx&consumer_secret=yy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14283
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 6
request duration: 5262082
request method: GET
request URI: /index.php?consumer_key=xx&consumer_secret=yy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14288
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 7
request duration: 330128
request method: GET
request URI: /index.php?per_page=100&page=1&per_page=10&consumer_key=xxx&consumer_secret=yy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14291
state: Running
start time: 03/Feb/2023:19:09:07 +0000
start since: 30
requests: 6
request duration: 4372096
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14293
state: Running
start time: 03/Feb/2023:19:09:10 +0000
start since: 27
requests: 6
request duration: 710233
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14296
state: Running
start time: 03/Feb/2023:19:09:12 +0000
start since: 25
requests: 5
request duration: 4356106
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14297
state: Running
start time: 03/Feb/2023:19:09:13 +0000
start since: 24
requests: 5
request duration: 3993473
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14299
state: Running
start time: 03/Feb/2023:19:09:15 +0000
start since: 22
requests: 4
request duration: 5846079
request method: GET
request URI: /index.php?status=publish&category=190&orderby=popularity&per_page=5&consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
************************
pid: 14269
state: Running
start time: 03/Feb/2023:19:08:37 +0000
start since: 60
requests: 15
request duration: 355854
request method: GET
request URI: /index.php?consumer_key=xxx&consumer_secret=yyy
content length: 0
user: -
script: /var/www/mydomain.com/html/index.php
last request cpu: 0.00
last request memory: 0
SHOW CREATE TABLE.SHOW PROCESSLIST(preferrably without the "Sleep" entries).