Support » Plugin: WooCommerce » Poor performance after WordPress 5.5, WooCommerce 4.4 and PHP 7.4

  • Resolved furzedo

    (@furzedo)


    Hi there!

    My WooCommerce instance runs on a mid-range hosting plan. It is limited at 6GB for memory and 10MB/s for I/O. I constantly monitor those resources and my WooCommerce has been using around 10% of that memory on average (peaking 25% rarely), and 3MB/s of I/O on average (peaking 6MB/s).

    Before migrating to WordPress 5.5 and WooCommerce 4.4, the performance was not great, but acceptable. The first response of the server was the main issue, requiring around 2.5 seconds according to a network trace. All additional resources would load fast after that (around a second).

    Then, one day I decided to update to WordPress 5.5, WooCommerce 4.4 and switch from PHP 7.3 to PHP 7.4, all in the same day. The performance degraded considerably after that, being the first server response time the main issue. It now takes around 6 seconds to get the first response from the server for the same page that used to take 2.5 seconds before the update. Almost 3 times worse. It is interesting that my cPanel monitoring does not show any increment in terms of resource usage… it basically reports same memory and I/O use patterns as before the updates.

    So my first question is if anyone experienced the same performance issues after updating to WordPress 5.5 and WooCommerce 4.4?

    I know WooCommerce itself and many people recommend that classic approach for troubleshooting performance issues: activate a cache mechanism, disable plugins, contact hosting provider and test other themes. However, I am wondering if there is a more intelligent and direct method to isolate the real bottleneck of a WooCommerce instance rather than trial and error. Perhaps checking logs every time a new request comes and check where the server takes longer to process?

    I appreciate if someone could point me in the right direction to intelligently troubleshoot this issue.

    Thank you very much!

    Status report below:

    ### WordPress Environment ###

    WC Version: 4.4.1
    REST API Version: ✔ 1.0.15
    WC Blocks Version: ✔ 3.3.0
    Action Scheduler Version: ✔ 3.1.6
    WC Admin Version: ✔ 1.4.0
    Log Directory Writable: ✔
    WP Version: 5.5.1
    WP Multisite: –
    WP Memory Limit: 256 MB
    WP Debug Mode: –
    WP Cron: ✔
    Language: en_AU
    External object cache: –

    ### Server Environment ###

    Server Info: LiteSpeed
    PHP Version: 7.4.9
    PHP Post Max Size: 32 MB
    PHP Time Limit: 90
    PHP Max Input Vars: 5000
    cURL Version: 7.72.0
    OpenSSL/1.1.1g

    SUHOSIN Installed: –
    MySQL Version: 5.5.5-10.3.24-MariaDB
    Max Upload Size: 32 MB
    Default Timezone is UTC: ✔
    fsockopen/cURL: ✔
    SoapClient: ✔
    DOMDocument: ✔
    GZip: ✔
    Multibyte String: ✔
    Remote Post: ✔
    Remote Get: ✔

    ### Database ###

    WC Database Version: 4.4.1
    WC Database Prefix: wp_
    Total Database Size: 22.89MB
    Database Data Size: 20.68MB
    Database Index Size: 2.21MB
    wp_woocommerce_sessions: Data: 0.73MB + Index: 0.02MB + Engine MyISAM
    wp_woocommerce_api_keys: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_woocommerce_attribute_taxonomies: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_downloadable_product_permissions: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_order_items: Data: 0.02MB + Index: 0.02MB + Engine MyISAM
    wp_woocommerce_order_itemmeta: Data: 0.51MB + Index: 0.23MB + Engine MyISAM
    wp_woocommerce_tax_rates: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_woocommerce_tax_rate_locations: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_shipping_zones: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_shipping_zone_locations: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_shipping_zone_methods: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_payment_tokens: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_payment_tokenmeta: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_log: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_actionscheduler_actions: Data: 0.13MB + Index: 0.07MB + Engine MyISAM
    wp_actionscheduler_claims: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_actionscheduler_groups: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_actionscheduler_logs: Data: 0.09MB + Index: 0.06MB + Engine MyISAM
    wp_adtribes_my_conversions: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_commentmeta: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_comments: Data: 0.61MB + Index: 0.21MB + Engine MyISAM
    wp_links: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_mailchimp_carts: Data: 0.08MB + Index: 0.00MB + Engine MyISAM
    wp_mailchimp_jobs: Data: 0.01MB + Index: 0.00MB + Engine MyISAM
    wp_ms_snippets: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_options: Data: 1.90MB + Index: 0.08MB + Engine MyISAM
    wp_postmeta: Data: 10.49MB + Index: 0.79MB + Engine MyISAM
    wp_posts: Data: 5.28MB + Index: 0.18MB + Engine MyISAM
    wp_snippets: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_termmeta: Data: 0.01MB + Index: 0.01MB + Engine MyISAM
    wp_terms: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_term_relationships: Data: 0.01MB + Index: 0.03MB + Engine MyISAM
    wp_term_taxonomy: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_usermeta: Data: 0.02MB + Index: 0.02MB + Engine MyISAM
    wp_users: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_wcpdf_invoice_number: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_admin_notes: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_admin_note_actions: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_category_lookup: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_customer_lookup: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_wc_download_log: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_order_coupon_lookup: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_order_product_lookup: Data: 0.02MB + Index: 0.03MB + Engine MyISAM
    wp_wc_order_stats: Data: 0.01MB + Index: 0.01MB + Engine MyISAM
    wp_wc_order_tax_lookup: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_wc_product_meta_lookup: Data: 0.02MB + Index: 0.03MB + Engine MyISAM
    wp_wc_reserved_stock: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_wc_tax_rate_classes: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_wc_webhooks: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_woocommerce_bundled_itemmeta: Data: 0.14MB + Index: 0.11MB + Engine MyISAM
    wp_woocommerce_bundled_items: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_wpforms_tasks_meta: Data: 0.05MB + Index: 0.00MB + Engine MyISAM
    wp_xeroom_credentials: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_xeroom_debug: Data: 0.01MB + Index: 0.00MB + Engine MyISAM
    wp_xeroom_export_log: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_xeroom_license_key_status: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_xeroom_orders_export: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_xeroom_tax: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_yoast_indexable: Data: 0.46MB + Index: 0.10MB + Engine MyISAM
    wp_yoast_indexable_hierarchy: Data: 0.00MB + Index: 0.00MB + Engine MyISAM
    wp_yoast_migrations: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_yoast_primary_term: Data: 0.00MB + Index: 0.01MB + Engine MyISAM
    wp_yoast_seo_links: Data: 0.01MB + Index: 0.01MB + Engine MyISAM
    wp_yoast_seo_meta: Data: 0.07MB + Index: 0.07MB + Engine MyISAM

    ### Post Type Counts ###

    attachment: 346
    custom_css: 2
    customize_changeset: 6
    elementor_library: 1
    nav_menu_item: 32
    oembed_cache: 3
    page: 22
    post: 2
    postman_sent_mail: 250
    product: 93
    product_variation: 137
    revision: 1128
    shop_coupon: 10
    shop_order: 86
    shop_order_refund: 1
    wpforms: 1

    ### Security ###

    Secure connection (HTTPS): ✔
    Hide errors from visitors: ✔

    ### Active Plugins (24) ###

    Advanced noCaptcha & invisible Captcha: by Shamim Hasan – 5.7.1 – Installed version not tested with active version of WooCommerce 4.4.1
    Code Snippets: by Code Snippets Pro – 2.14.0
    Column Shortcodes: by Codepress – 1.0.1
    Yoast Duplicate Post: by Enrico Battocchi & Team Yoast – 3.2.5
    Elementor: by Elementor.com – 3.0.5
    Font Awesome: by Font Awesome – 4.0.0-rc20
    GA Google Analytics: by Jeff Starr – 20200815
    Limit Login Attempts Reloaded: by WPChef – 2.15.1
    Mailchimp for WooCommerce: by Mailchimp – 2.4.5
    Maintenance: by WP Maintenance – 3.96
    WooCommerce: No PO Boxes: by Maje Media LLC – 2.1.1 – Installed version not tested with active version of WooCommerce 4.4.1
    WooCommerce Onsale Page: by wpgenie – 1.0.10 – Installed version not tested with active version of WooCommerce 4.4.1
    Post SMTP: by Yehuda Hassine – 2.0.15
    Really Simple SSL: by Really Simple Plugins – 3.3.5
    WebP Converter for Media: by Mateusz Gbiorczyk – 1.4.2
    WooCommerce Blocks: by Automattic – 3.3.0
    Product Feed PRO for WooCommerce: by AdTribes.io – 8.7.0 – Installed version not tested with active version of WooCommerce 4.4.1
    WooCommerce MIGS Gateway: by MIGS – 2.4 – Installed version not tested with active version of WooCommerce 4.4.1
    StarShipIT Services: by StarShipIT – 1.0.3 – Installed version not tested with active version of WooCommerce 4.4.1
    WooCommerce PDF Invoices & Packing Slips: by Ewout Fernhout – 2.6.0
    WooCommerce Product Bundles: by SomewhereWarm – 6.3.5
    WooCommerce: by Automattic – 4.4.1
    Yoast SEO: by Team Yoast – 14.9
    WPForms Lite: by WPForms – 1.6.2.2

    ### Inactive Plugins (2) ###

    WooCommerce Google Ads Conversion Tracking: by Wolf+Bär Agency – 1.6.9
    WooCommerce Services: by Automattic – 1.24.2 – Installed version not tested with active version of WooCommerce 4.4.1

    ### Settings ###

    API Enabled: ✔
    Force SSL: –
    Currency: AUD ($)
    Currency Position: left
    Thousand Separator: ,
    Decimal Separator: .
    Number of Decimals: 2
    Taxonomies: Product Types: bundle (bundle)
    external (external)
    grouped (grouped)
    simple (simple)
    variable (variable)
    woosb (woosb)

    Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog)
    exclude-from-search (exclude-from-search)
    featured (featured)
    outofstock (outofstock)
    rated-1 (rated-1)
    rated-2 (rated-2)
    rated-3 (rated-3)
    rated-4 (rated-4)
    rated-5 (rated-5)

    Connected to WooCommerce.com: ✔

    ### WC Pages ###

    Shop base: #5 – /shop/
    Cart: #6 – /cart/
    Checkout: #7 – /checkout/
    My account: #8 – /my-account/
    Terms and conditions: #974 – /terms-and-conditions/

    ### Theme ###

    Name: Online Shop
    Version: 3.0.3
    Author URL: https://www.acmethemes.com/
    Child Theme: ❌ – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme
    WooCommerce Support: ✔

    ### Templates ###

    Overrides: –

    ### Product Bundles ###

    Database Version: 6.3.5
    Loopback Test: ✔
    Template Overrides: –

    ### Action Scheduler ###

    Complete: 434
    Oldest: 2020-08-13 15:49:33 +1000
    Newest: 2020-09-08 14:54:28 +1000

    Failed: 7
    Oldest: 2020-04-01 07:30:37 +1000
    Newest: 2020-04-25 20:32:17 +1000

    Pending: 2
    Oldest: 2020-09-08 21:18:28 +1000
    Newest: 2020-09-09 14:54:28 +1000

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Support RK

    (@riaanknoetze)

    Hi there,

    The follow-up to the suggestions above is usually to install a query monitor plugin to check which query *exactly* is causing the hold-up. With that said, if the issue lies with TTFB, then this is something that *only* your hosting provider can look into – there’s nothing that would address TTFB from the software side of things.

    What happens if you disable the WooCommerce Admin on that site do you still have I/O and CPU issues?

    add_filter( 'woocommerce_admin_disabled', '__return_true' );

    You can test true TTFB on the site by testing the readme.html file on the site and then look at the TTFB on that static file.

    • This reply was modified 2 months, 3 weeks ago by Luke Cavanagh. Reason: clarify wording

    Hi guys,

    Thank you so much for offering help. Sorry for the delayed reply.

    @riaanknoetze, I am trying to get my head around the Query Monitor plugin. I hope it can shed some light on this issue.

    @lukefiretoss, unfortunately my website was built without a child theme, so I am not sure if there is a safe way to deactivate the WC Admin. Is there? Anyway, even if deactivating the Admin makes my website faster, I’m afraid I cannot operate my ecommerce without the Admin and eventually I will have to reactivate it. Am I missing something?

    I did test the readme.html and the server response is immediate… no delay at all.

    Any further help you can provide will be highly appreciated.

    Thank you.

    You can disable the WooCommerce Admin using that provided code snippet you could use a plugin like Code Snippets or search for Disable WooCommerce Bloat plugin.

    Hi @lukefiretoss and @riaanknoetze,

    I disabled the WC Admin stuff, as per @lukefiretoss suggestion, and let my WooCommerce instance running for a couple of days. My monitoring says it did not improve the loading time, unfortunately.

    I also installed the Query Monitor plugin. A typical loading scenario of the main shop page is looking like this:

    https://drive.google.com/file/d/1fUQuHjzn2fYiZ4NWj5BtMJY5U26UHq2w/view?usp=sharing

    I noticed the actual query time is considerable (always around 500ms), but it becomes kind of irrelevant when compared to the total page generation time (floating around 7-9 seconds). The page generation time reported by the Query Monitor plugin aligns well with the TTFB reported by the network inspector on the same query. It seems to me the page generation time is actually the main issue.

    Looking at my hosting environment, I had the following scenario in the 12 hours prior to the test above:

    https://drive.google.com/file/d/1Y9KTeICb2P5IyXJt9bT170HUmOKjwCU6/view?usp=sharing

    CPU and I/O showing some activity, but under the limits of my current (shared) hosting plan… and no errors/faults detected in the environment.

    In the beginning of this, I thought there was some kind of database bottleneck somewhere, but it does not seem to be the case. The hosting server is actually struggling to generate the page itself.

    Are you able to suggest anything else I can check at this stage? Or that is enough evidence for me to push the issue into my hosting provider?

    Thanks guys

    Plugin Support Phillip C.

    (@phillipwoo)

    Hi,

    It looks like you may have found a solution to this. I am going to mark this as Resolved at this time. If you have another issue please feel free to open a new post. 🙂

    Thanks!

Viewing 6 replies - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.