{"id":1202,"date":"2024-01-21T12:26:39","date_gmt":"2024-01-21T06:56:39","guid":{"rendered":"https:\/\/www.techandtrain.com\/blog\/?p=1202"},"modified":"2025-10-22T14:52:14","modified_gmt":"2025-10-22T09:22:14","slug":"steps-for-database-tuning-mysql-postgresql-generated-by-chatgpt-bard","status":"publish","type":"post","link":"https:\/\/www.techandtrain.com\/blog\/2024\/01\/steps-for-database-tuning-mysql-postgresql-generated-by-chatgpt-bard\/","title":{"rendered":"Steps for database tuning &#8211; MySQL &amp; PostgreSQL &#8211; Generated by ChatGPT &amp; BARD"},"content":{"rendered":"\n<p id=\"ember39\">ChatGPT &#8211; Database tuning for PostgreSQL and MySQL involves several steps to optimize performance. Each database has its own specific settings and best practices. Here are some general steps for tuning both PostgreSQL and MySQL databases:<\/p>\n\n\n\n<p id=\"ember40\">### PostgreSQL Tuning<\/p>\n\n\n\n<p id=\"ember41\">1. <strong>Hardware Optimization<\/strong>:<\/p>\n\n\n\n<p id=\"ember42\">&#8211; Ensure your server has adequate memory and CPU resources.<\/p>\n\n\n\n<p id=\"ember43\">&#8211; Use fast storage systems, such as SSDs, for your database files.<\/p>\n\n\n\n<p id=\"ember44\">2. <strong>Configuration Settings<\/strong>:<\/p>\n\n\n\n<p id=\"ember45\">&#8211; Adjust the postgresql.conf file:<\/p>\n\n\n\n<p id=\"ember46\">&#8211; shared_buffers: Set to approximately 25% of the total RAM.<\/p>\n\n\n\n<p id=\"ember47\">&#8211; work_mem: Determines the amount of memory used for sorting and other operations. Adjust based on your workload.<\/p>\n\n\n\n<p id=\"ember48\">&#8211; maintenance_work_mem: Increase this for heavy maintenance tasks.<\/p>\n\n\n\n<p id=\"ember49\">&#8211; effective_cache_size: Should be set to an estimate of how much memory is available for disk caching.<\/p>\n\n\n\n<p id=\"ember50\">3. <strong>Query Optimization<\/strong>:<\/p>\n\n\n\n<p id=\"ember51\">&#8211; Use EXPLAIN to analyze query execution plans.<\/p>\n\n\n\n<p id=\"ember52\">&#8211; Identify and optimize slow queries.<\/p>\n\n\n\n<p id=\"ember53\">4. <strong>Indexing<\/strong>:<\/p>\n\n\n\n<p id=\"ember54\">&#8211; Regularly monitor and create necessary indexes.<\/p>\n\n\n\n<p id=\"ember55\">&#8211; Consider using partial or expression indexes for specific use cases.<\/p>\n\n\n\n<p id=\"ember56\">5. <strong>Connection Pooling<\/strong>:<\/p>\n\n\n\n<p id=\"ember57\">&#8211; Use connection pooling to manage database connections efficiently.<\/p>\n\n\n\n<p id=\"ember58\">6. <strong>Regular Maintenance<\/strong>:<\/p>\n\n\n\n<p id=\"ember59\">&#8211; Run VACUUM and ANALYZE regularly to maintain table statistics and remove bloat.<\/p>\n\n\n\n<p id=\"ember60\">7. <strong>Monitoring and Logging<\/strong>:<\/p>\n\n\n\n<p id=\"ember61\">&#8211; Enable logging of slow queries.<\/p>\n\n\n\n<p id=\"ember62\">&#8211; Regularly monitor the database performance.<\/p>\n\n\n\n<p id=\"ember63\">### MySQL Tuning<\/p>\n\n\n\n<p id=\"ember64\">1. <strong>Hardware Optimization<\/strong>:<\/p>\n\n\n\n<p id=\"ember65\">&#8211; Ensure sufficient memory and CPU.<\/p>\n\n\n\n<p id=\"ember66\">&#8211; Utilize fast storage for better I\/O performance.<\/p>\n\n\n\n<p id=\"ember67\">2. <strong>Configuration Settings<\/strong>:<\/p>\n\n\n\n<p id=\"ember68\">&#8211; Adjust settings in my.cnf\/`my.ini`:<\/p>\n\n\n\n<p id=\"ember69\">&#8211; innodb_buffer_pool_size: Should be set to up to 80% of total RAM for dedicated servers.<\/p>\n\n\n\n<p id=\"ember70\">&#8211; max_connections: Determines the number of allowed concurrent connections.<\/p>\n\n\n\n<p id=\"ember71\">&#8211; query_cache_size: Adjust based on workload, though query cache might be less effective in highly dynamic databases.<\/p>\n\n\n\n<p id=\"ember72\">3. <strong>Query Optimization<\/strong>:<\/p>\n\n\n\n<p id=\"ember73\">&#8211; Use EXPLAIN to understand query execution.<\/p>\n\n\n\n<p id=\"ember74\">&#8211; Optimize slow and inefficient queries.<\/p>\n\n\n\n<p id=\"ember75\">4. <strong>Indexing<\/strong>:<\/p>\n\n\n\n<p id=\"ember76\">&#8211; Regularly review and optimize your indexes.<\/p>\n\n\n\n<p id=\"ember77\">&#8211; Consider using composite indexes where appropriate.<\/p>\n\n\n\n<p id=\"ember78\">5. <strong>Replication and Partitioning<\/strong>:<\/p>\n\n\n\n<p id=\"ember79\">&#8211; Use replication for load balancing and partitioning for large tables.<\/p>\n\n\n\n<p id=\"ember80\">6. <strong>Regular Maintenance<\/strong>:<\/p>\n\n\n\n<p id=\"ember81\">&#8211; Perform table optimization with OPTIMIZE TABLE.<\/p>\n\n\n\n<p id=\"ember82\">&#8211; Run ANALYZE TABLE to update table statistics.<\/p>\n\n\n\n<p id=\"ember83\">7. <strong>Monitoring and Logging<\/strong>:<\/p>\n\n\n\n<p id=\"ember84\">&#8211; Enable slow query log to identify inefficient queries.<\/p>\n\n\n\n<p id=\"ember85\">&#8211; Continuously monitor performance metrics.<\/p>\n\n\n\n<p id=\"ember86\">### General Tips<\/p>\n\n\n\n<p id=\"ember87\">&#8211; Always <strong>backup your database<\/strong> before making significant changes.<\/p>\n\n\n\n<p id=\"ember88\">&#8211; Test configuration changes in a staging environment before applying them to production.<\/p>\n\n\n\n<p id=\"ember89\">&#8211; Keep your database software up to date with the latest patches and versions.<\/p>\n\n\n\n<p id=\"ember90\">&#8211; Consider using specialized tools for monitoring and performance tuning.<\/p>\n\n\n\n<p id=\"ember91\">&#8211; Regularly review your settings and performance metrics, as optimization is an ongoing process.<\/p>\n\n\n\n<p id=\"ember92\">Remember, the optimal settings depend heavily on your specific workload and hardware, so it&#8217;s important to test and adjust based on your particular situation.<\/p>\n\n\n\n<p id=\"ember94\"><strong>Here are steps for database tuning of PostgreSQL and MySQL, covering key areas (BARD):<\/strong><\/p>\n\n\n\n<p id=\"ember95\"><strong>1. Configuration Parameter Tuning:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PostgreSQL:<\/strong> shared_buffers: Allocate 25-40% of available RAM for data caching. effective_cache_size: Set to total available memory for caching. work_mem: Adjust for individual query workspaces. maintenance_work_mem: Increase for maintenance tasks like vacuuming. max_connections: Limit concurrent connections based on workload.<\/li>\n\n\n\n<li><strong>MySQL:<\/strong> innodb_buffer_pool_size: Set to 70-80% of available RAM for data caching. innodb_log_file_size: Tune for transaction logging efficiency. query_cache_size: Consider disabling if workload is write-heavy. max_connections: Set appropriate for expected concurrency.<\/li>\n<\/ul>\n\n\n\n<p id=\"ember97\"><strong>2. Query Optimization:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Identify Slow Queries:<\/strong> Use tools like EXPLAIN or EXPLAIN ANALYZE to analyze query plans and execution times.<\/li>\n\n\n\n<li><strong>Indexing:<\/strong> Create appropriate indexes to speed up frequent queries.<\/li>\n\n\n\n<li><strong>Query Rewriting:<\/strong> Optimize queries for better performance, consider using EXPLAIN to understand query execution.<\/li>\n\n\n\n<li><strong>Materialized Views:<\/strong> Pre-compute expensive query results for faster retrieval.<\/li>\n<\/ul>\n\n\n\n<p id=\"ember99\"><strong>3. Hardware Optimization:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CPU:<\/strong> Use faster processors for query processing.<\/li>\n\n\n\n<li><strong>Memory:<\/strong> Increase RAM for caching and query execution.<\/li>\n\n\n\n<li><strong>Storage:<\/strong> Use fast storage devices (SSDs) for better performance.<\/li>\n<\/ul>\n\n\n\n<p id=\"ember101\"><strong>4. Monitoring and Maintenance:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Regularly monitor database performance metrics<\/strong> (e.g., CPU usage, query response times, I\/O wait times).<\/li>\n\n\n\n<li><strong>Perform maintenance tasks:<\/strong> Vacuuming, analyzing, and rebuilding indexes to maintain database health.<\/li>\n<\/ul>\n\n\n\n<p id=\"ember103\"><strong>5. Additional Considerations:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Table Partitioning:<\/strong> Divide large tables into smaller partitions for improved query performance.<\/li>\n\n\n\n<li><strong>Query Caching:<\/strong> Cache frequently used queries for faster retrieval (use with caution in write-heavy workloads).<\/li>\n\n\n\n<li><strong>Application Optimization:<\/strong> Ensure application code is written efficiently to avoid unnecessary database calls.<\/li>\n<\/ul>\n\n\n\n<p id=\"ember105\"><strong>Remember:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tuning involves experimentation and adjustment based on specific workload and hardware.<\/li>\n\n\n\n<li>Monitor changes carefully to assess their impact.<\/li>\n\n\n\n<li>Consider using specialized database tuning tools for advanced analysis and optimization.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Email me: <a href=\"mailto:Neil@HarwaniSytems.in\">Neil@HarwaniSytems.in<\/a><\/li>\n\n\n\n<li>Website: <a href=\"http:\/\/www.harwanisystems.in\/\">www.HarwaniSystems.in<\/a><\/li>\n\n\n\n<li>Blog: <a href=\"http:\/\/www.techandtrain.com\/blog\">www.TechAndTrain.com\/blog<\/a><\/li>\n\n\n\n<li>LinkedIn: <a href=\"https:\/\/www.linkedin.com\/in\/neil27\/\">Neil Harwani | LinkedIn<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>ChatGPT &#8211; Database tuning for PostgreSQL and MySQL involves several steps to optimize performance. Each database has its own specific [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[333],"tags":[342],"class_list":["post-1202","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","tag-database-tuning"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/01\/DB.png?fit=1277%2C720&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7do02-jo","jetpack-related-posts":[{"id":1191,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/12\/list-of-tools-for-debugging-and-profiling-openjdk-databases-bard-generated-part-1\/","url_meta":{"origin":1202,"position":0},"title":"List of tools for debugging and profiling OpenJDK &amp; Databases &#8211; BARD generated &#8211; Part 1","author":"Neil Harwani","date":"December 22, 2023","format":false,"excerpt":"Here's a list of tools you can use with OpenJDK for debugging and profiling, along with their key features and some visual examples: Debugging Tools: Java VisualVM:Built-in tool, included with OpenJDK. Monitors memory usage, CPU threads, and garbage collection. Profiles application performance. Captures and analyzes thread dumps. Java VisualVM screenshot:\u2026","rel":"","context":"In &quot;Databases&quot;","block_context":{"text":"Databases","link":"https:\/\/www.techandtrain.com\/blog\/category\/databases\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/12\/1703222439562.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/12\/1703222439562.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/12\/1703222439562.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/12\/1703222439562.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/12\/1703222439562.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1132,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/09\/what-you-should-not-be-doing-in-liferay-part-1\/","url_meta":{"origin":1202,"position":1},"title":"What you should not be doing in Liferay &#8211; Part 1","author":"Neil Harwani","date":"September 30, 2023","format":false,"excerpt":"Here is a list of what you should not be doing in Liferay - Part 1 and also what you should be doing written right next to it in place of the wrong things: Write JDBC calls in portlets. Avoid JDBC calls in portlets. Please explore expando, service builder, dynamic\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/09\/caution-943376_1280.png?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1084,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/07\/liferay-clustering-part-1\/","url_meta":{"origin":1202,"position":2},"title":"Liferay clustering &#8211; Part 1","author":"Neil Harwani","date":"July 2, 2023","format":false,"excerpt":"Notes on Liferay clustering: Clustering for High Availability - Liferay Learn\u00a0- Main page for clustering Here is what\u2019s required to create an effectively functional DXP cluster: 1. Liferay DXP\u00a0installed\u00a0on separate application server nodes. 2. A\u00a0database or database cluster\u00a0that\u2019s accessible to all nodes 3. A\u00a0File Store\u00a0that\u2019s accessible to all nodes 4.\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credit: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/07\/laptop-1478822_1280.jpg?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1138,"url":"https:\/\/www.techandtrain.com\/blog\/2023\/10\/general-checklist-for-performance-tuning-go-live-in-java-part-1\/","url_meta":{"origin":1202,"position":3},"title":"General checklist for performance tuning &amp; go-live in Java &#8211; Part 1","author":"Neil Harwani","date":"October 11, 2023","format":false,"excerpt":"Here is a general checklist for performance tuning & go-live in Java - Part 1: Servers: CPU, Memory, Threads, Network configurations, page size, hardening and more JVM: MBeans, Security, Garbage collection type and settings, Arguments, Heap, Version, Core allotment, Generations and more App server: Thread pool, JDBC\/JNDI, Type of connection\u2026","rel":"","context":"In &quot;Java&quot;","block_context":{"text":"Java","link":"https:\/\/www.techandtrain.com\/blog\/category\/java\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Blue-Angels.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Blue-Angels.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Blue-Angels.jpg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Blue-Angels.jpg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2023\/10\/Blue-Angels.jpg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1205,"url":"https:\/\/www.techandtrain.com\/blog\/2024\/01\/how-do-i-fine-tune-my-elasticsearch-when-its-slow-chatgpt-bard-generated\/","url_meta":{"origin":1202,"position":4},"title":"How do I fine tune my ElasticSearch when it&#8217;s slow &#8211; ChatGPT &amp; BARD generated","author":"Neil Harwani","date":"January 21, 2024","format":false,"excerpt":"ChatGPT - Fine-tuning an Elasticsearch cluster to address performance issues involves several steps. Elasticsearch is a powerful search and analytics engine, but it requires careful tuning to achieve optimal performance, especially in environments with large amounts of data or high query volumes. Here are some general guidelines to help you\u2026","rel":"","context":"In &quot;Elasticsearch&quot;","block_context":{"text":"Elasticsearch","link":"https:\/\/www.techandtrain.com\/blog\/category\/elasticsearch\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/01\/ES.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/01\/ES.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/01\/ES.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/01\/ES.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/01\/ES.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1370,"url":"https:\/\/www.techandtrain.com\/blog\/2024\/11\/performance-tuning-in-liferay-part-4\/","url_meta":{"origin":1202,"position":5},"title":"Performance Tuning in Liferay &#8211; Part 4","author":"Neil Harwani","date":"November 11, 2024","format":false,"excerpt":"In addition to 3-part series on performance tuning given here below are additional points to explore for performance tuning in Liferay. Java 17\/21 Network and subnet between Application server, Web server, Elastic search, Database Difference between JMeter and JVM\/Glowroot load times for pages Lighthouse reports Elastic search response times and\u2026","rel":"","context":"In &quot;Liferay&quot;","block_context":{"text":"Liferay","link":"https:\/\/www.techandtrain.com\/blog\/category\/liferay\/"},"img":{"alt_text":"Credits: www.Pixabay.com","src":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/11\/Ferrari.jpeg?fit=1052%2C720&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/11\/Ferrari.jpeg?fit=1052%2C720&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/11\/Ferrari.jpeg?fit=1052%2C720&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/11\/Ferrari.jpeg?fit=1052%2C720&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.techandtrain.com\/blog\/wp-content\/uploads\/2024\/11\/Ferrari.jpeg?fit=1052%2C720&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/comments?post=1202"}],"version-history":[{"count":1,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1202\/revisions"}],"predecessor-version":[{"id":1203,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/posts\/1202\/revisions\/1203"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media\/1204"}],"wp:attachment":[{"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/media?parent=1202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/categories?post=1202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techandtrain.com\/blog\/wp-json\/wp\/v2\/tags?post=1202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}