{"id":18035,"date":"2022-07-25T11:20:10","date_gmt":"2022-07-25T09:20:10","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=18035"},"modified":"2024-11-08T15:38:43","modified_gmt":"2024-11-08T14:38:43","slug":"postgresql-on-80-core-arm-server","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/","title":{"rendered":"PostgreSQL on 80 core ARM Server"},"content":{"rendered":"\n<p>This Blog is about intallation and testing PostgreSQL 14 latest on an ARM based 80 core Server using Rocky Linux 8.6.<\/p>\n\n\n\n<p>Many thanks to Happyware for providing the machine used for this Blog.<\/p>\n\n\n\n<p><a href=\"https:\/\/happyware.com\/\">https:\/\/happyware.com\/<\/a><\/p>\n\n\n\n<p>The machine used for this Blog is a Gigabyte R272-P30 with Ampere Altra Q80-30 CPU, 80 cores at 3GHz.<\/p>\n\n\n\n<p><a href=\"https:\/\/happyware.com\/gigabyte\/arm-server-ampere-altra-r272-p30-q80-30\/6nr272p30mr-00\">https:\/\/happyware.com\/gigabyte\/arm-server-ampere-altra-r272-p30-q80-30\/6nr272p30mr-00<\/a><\/p>\n\n\n\n<p>Very nice IPMI:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"296\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1024x296.png\" alt=\"\" class=\"wp-image-18107\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1024x296.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-300x87.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-768x222.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1536x443.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-2048x591.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>IPMI Settings<\/figcaption><\/figure>\n\n\n\n<p>CPU Invetory within IPMI:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"346\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_cpu_inventory-1024x346.png\" alt=\"\" class=\"wp-image-18108\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_cpu_inventory-1024x346.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_cpu_inventory-300x101.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_cpu_inventory-768x259.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_cpu_inventory-1536x519.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_cpu_inventory-2048x692.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>CPU inventory<\/figcaption><\/figure>\n\n\n\n<p>All Memory channels used.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"457\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_memory_inventory-1024x457.png\" alt=\"\" class=\"wp-image-18109\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_memory_inventory-1024x457.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_memory_inventory-300x134.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_memory_inventory-768x342.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_memory_inventory-1536x685.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_memory_inventory-2048x913.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Memory inventory<\/figcaption><\/figure>\n\n\n\n<p>The cpu itself is very interesting, 80 cores, 1 MByte Cache per core, 8 Memory channels, and 128 PCIE 4 Lines.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Altra_CPU-1024x532.png\" alt=\"\" class=\"wp-image-18037\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Altra_CPU-1024x532.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Altra_CPU-300x156.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Altra_CPU-768x399.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Altra_CPU-1536x798.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Altra_CPU.png 1705w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The OS used for this Blog is Rocky Linux 8.6 for ARM64:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# cat \/etc\/os-release\nNAME=\"Rocky Linux\"\nVERSION=\"8.6 (Green Obsidian)\"\nID=\"rocky\"\nID_LIKE=\"rhel centos fedora\"\nVERSION_ID=\"8.6\"\nPLATFORM_ID=\"platform:el8\"\nPRETTY_NAME=\"Rocky Linux 8.6 (Green Obsidian)\"\nANSI_COLOR=\"0;32\"\nCPE_NAME=\"cpe:\/o:rocky:rocky:8:GA\"\nHOME_URL=\"https:\/\/rockylinux.org\/\"\nBUG_REPORT_URL=\"https:\/\/bugs.rockylinux.org\/\"\nROCKY_SUPPORT_PRODUCT=\"Rocky Linux\"\nROCKY_SUPPORT_PRODUCT_VERSION=\"8\"\nREDHAT_SUPPORT_PRODUCT=\"Rocky Linux\"\nREDHAT_SUPPORT_PRODUCT_VERSION=\"8\"\n&#091;root@localhost ~]#<\/code><\/pre>\n\n\n\n<p>Interesting is the output of htop on this machine.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"563\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/ARM_80-1024x563.png\" alt=\"\" class=\"wp-image-18039\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/ARM_80-1024x563.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/ARM_80-300x165.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/ARM_80-768x422.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/ARM_80-1536x844.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/ARM_80-2048x1125.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# lscpu\nArchitecture:        aarch64\nByte Order:          Little Endian\nCPU(s):              80\nOn-line CPU(s) list: 0-79\nThread(s) per core:  1\nCore(s) per socket:  80\nSocket(s):           1\nNUMA node(s):        1\nVendor ID:           ARM\nBIOS Vendor ID:      Ampere(R)\nModel:               1\nModel name:          Neoverse-N1\nBIOS Model name:     Ampere(R) Altra(R) Processor\nStepping:            r3p1\nCPU max MHz:         3300.0000\nCPU min MHz:         1000.0000\nBogoMIPS:            50.00\nL1d cache:           64K\nL1i cache:           64K\nL2 cache:            1024K\nNUMA node0 CPU(s):   0-79\nFlags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs\n&#091;root@localhost ~]#<\/code><\/pre>\n\n\n\n<p>The storage in the background are two Samsung SSD 980Pro of 500GB, so nothing very special.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# lsblk\nNAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT\nnvme1n1     259:0    0 465.8G  0 disk\n\u2514\u2500nvme1n1p1 259:2    0 465.8G  0 part\n  \u2514\u2500rl-home 253:2    0   856G  0 lvm  \/home\nnvme0n1     259:1    0 465.8G  0 disk\n\u251c\u2500nvme0n1p1 259:3    0   600M  0 part \/boot\/efi\n\u251c\u2500nvme0n1p2 259:4    0     1G  0 part \/boot\n\u2514\u2500nvme0n1p3 259:5    0 464.2G  0 part\n  \u251c\u2500rl-root 253:0    0    70G  0 lvm  \/\n  \u251c\u2500rl-swap 253:1    0     4G  0 lvm  &#091;SWAP]\n  \u2514\u2500rl-home 253:2    0   856G  0 lvm  \/home\n&#091;root@localhost ~]#<\/code><\/pre>\n\n\n\n<p>The installation of PostgreSQL will follow the documentation I have described in my atricle at heise.de, it is in german.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.heise.de\/ratgeber\/PostgreSQL-installieren-mit-den-Community-Paketen-4877556.html\">https:\/\/www.heise.de\/ratgeber\/PostgreSQL-installieren-mit-den-Community-Paketen-4877556.html<\/a><\/p>\n\n\n\n<p>Means installing postgresql.org repository and disabling Rocky Linux postgresql modules.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# dnf install -y https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-8-aarch64\/pgdg-redhat-repo-latest.noarch.rpm\nLast metadata expiration check: 1:36:40 ago on Thu 21 Jul 2022 07:15:54 AM EDT.\npgdg-redhat-repo-latest.noarch.rpm                                                                                                                                                 4.5 kB\/s |  11 kB     00:02\nDependencies resolved.\n===================================================================================================================================================================================================================\n Package                                                 Architecture                                  Version                                           Repository                                           Size\n===================================================================================================================================================================================================================\nInstalling:\n pgdg-redhat-repo                                        noarch                                        42.0-26                                           @commandline                                         11 k\n\nTransaction Summary\n===================================================================================================================================================================================================================\nInstall  1 Package\n\nTotal size: 11 k\nInstalled size: 13 k\nDownloading Packages:\nRunning transaction check\nTransaction check succeeded.\nRunning transaction test\nTransaction test succeeded.\nRunning transaction\n  Preparing        :                                                                                                                                                                                           1\/1\n  Installing       : pgdg-redhat-repo-42.0-26.noarch                                                                                                                                                           1\/1\n  Verifying        : pgdg-redhat-repo-42.0-26.noarch                                                                                                                                                           1\/1\n\nInstalled:\n  pgdg-redhat-repo-42.0-26.noarch\n\nComplete!\n&#091;root@localhost ~]# dnf -qy module disable postgresql\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\nImporting GPG key 0x6D960B89:\n Userid     : \"PostgreSQL RPM Repository &lt;pgsql-pkg-yum@postgresql.org&gt;\"\n Fingerprint: 33EC A7E4 0671 479E 2279 EA81 A8AC 42ED 6D96 0B89\n From       : \/etc\/pki\/rpm-gpg\/RPM-GPG-KEY-PGDG-AARCH64\n&#091;root@localhost ~]#<\/code><\/pre>\n\n\n\n<p>Within the pgdg-redhat-all.repo file I have disabled all PostgreSQL versions except 14 which I want to use. The installation itself is the same like on other servers using Intel or AMD.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install postgresql14 postgresql14-server postgresql14-contrib<\/code><\/pre>\n\n\n\n<p>On that system a stripe of two NVME SSDs is used for \/home, so I changed the PGDATA for the service file creating a override.conf.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# systemctl edit postgresql-14.service<\/code><\/pre>\n\n\n\n<p>And add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;Service]\nEnvironment=PGDATA=\/home\/PG14\/data<\/code><\/pre>\n\n\n\n<p>Now we can run initdb.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# \/usr\/pgsql-14\/bin\/postgresql-14-setup initdb\nInitializing database ... OK\n\n&#091;root@localhost ~]#<\/code><\/pre>\n\n\n\n<p>Starting PostgreSQL and enabling the service.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost opt]# systemctl start postgresql-14.service\n&#091;root@localhost opt]# systemctl enable postgresql-14.service\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/postgresql-14.service \u2192 \/usr\/lib\/systemd\/system\/postgresql-14.service.\n&#091;root@localhost opt]#<\/code><\/pre>\n\n\n\n<p>PostgreSQL 14 is up and running on this ARM based host.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;postgres@localhost ~]$ psql\npsql (14.4)\nType \"help\" for help.\n\npostgres=#<\/code><\/pre>\n\n\n\n<p>The configuration of PostgreSQL is following best practices.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;root@localhost ~]# cat \/home\/PG14\/data\/postgresql.auto.conf\n# Do not edit this file manually!\n# It will be overwritten by the ALTER SYSTEM command.\nlisten_addresses = '*'\nmax_connections = '1000'\neffective_cache_size = '192 GB'\nshared_buffers = '64 GB'\nwork_mem = '64 MB'\nmaintenance_work_mem = '8000 MB'\nmax_worker_processes = '80'\nmax_parallel_workers = '80'\nmax_parallel_workers_per_gather = '40'\nmax_parallel_maintenance_workers = '40'\nshared_preload_libraries = 'pg_stat_statements'\ncheckpoint_timeout  = '15 min'\ncheckpoint_completion_target = 0.9\nmin_wal_size = '1024 MB'\nmax_wal_size = '16384 MB'\nwal_buffers = '512MB'\nwal_compression = on\nbgwriter_delay = 200ms\nbgwriter_lru_maxpages = 100\nbgwriter_lru_multiplier = 2.0\nbgwriter_flush_after = 0\nbgwriter_delay = 200ms\nbgwriter_lru_maxpages = 100\nbgwriter_lru_multiplier = 2.0\nbgwriter_flush_after = 0\nenable_partitionwise_join = on\nenable_partitionwise_aggregate = on\njit = on\n&#091;root@localhost ~]#<\/code><\/pre>\n\n\n\n<p>I&#8217; using the tuned.conf for PostgreSQL out of the dbi DMK Package.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\n# dbi services tuned profile for PostgreSQL servers\n#\n\n&#091;main]\nsummary=dbi services tuned profile for PostgreSQL servers\ninclude=throughput-performance\n\n&#091;bootloader]\ncmdline = \"transparent_hugepage=never\"\n\n&#091;cpu]\ngovernor=performance\nenergy_perf_bias=performance\nmin_perf_pct=100\n# Explicitly disable deep c-states to reduce latency on OLTP workloads.\nforce_latency=1\n\n&#091;disk]\nreadahead=&gt;4096\n\n&#091;sysctl]\nkernel.sched_min_granularity_ns = 10000000\nkernel.sched_wakeup_granularity_ns = 15000000\nkernel.sched_migration_cost_ns=50000000\n# this one is for pgpool\n## http:\/\/www.pgpool.net\/docs\/latest\/en\/html\/runtime-config-connection.html =&gt; num_init_children\nnet.core.somaxconn=256\nnet.ipv4.tcp_timestamps=0\nvm.dirty_expire_centisecs = 500\nvm.dirty_writeback_centisecs = 250\nvm.overcommit_memory=2\nvm.overcommit_ratio=75\nvm.swappiness=1\nvm.dirty_ratio=2\nvm.dirty_background_ratio=1\n#vm.nr_hugepages=1200\n\n&#091;vm]\ntransparent_hugepages=never\n&#091;postgres@localhost ~]$<\/code><\/pre>\n\n\n\n<p>I have activated that profile and after a reboot I was starting to work with pgbech for testing.<\/p>\n\n\n\n<p>I have created a pgbenchdb with 1 billion records, the DB itself is about 146GB.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;postgres@localhost ~]$ \/usr\/pgsql-14\/bin\/pgbench -i -s 10000 pgbenchdb\ngenerating data (client-side)...\n1000000000 of 1000000000 tuples (100%) done (elapsed 740.31 s, remaining 0.00 s)\nvacuuming...\ncreating primary keys...\ndone in 1568.00 s (drop tables 0.00 s, create tables 0.03 s, client-side generate 742.72 s, vacuum 113.22 s, primary keys 712.03 s).\n&#091;postgres@localhost ~]$\n&#091;postgres@localhost ~]$ psql\npsql (14.4)\nType \"help\" for help.\n\npostgres=# \\l+\n                                                                    List of databases\n   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   |  Size   | Tablespace |                Description\n-----------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------\n pgbenchdb | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 146 GB  | pg_default |\n postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                       | 8857 kB | pg_default | default administrative connection database\n template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c\/postgres          +| 8705 kB | pg_default | unmodifiable empty database\n           |          |          |             |             | postgres=CTc\/postgres |         |            |\n template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c\/postgres          +| 8705 kB | pg_default | default template for new databases\n           |          |          |             |             | postgres=CTc\/postgres |         |            |\n(4 rows)\n\npostgres=#<\/code><\/pre>\n\n\n\n<p>I run pgbench with a simulation of 10 clients, 25 clients, 50 clients, 100 clients, 250 clients, 500 clients and 1000 clients, pgbench istelf was used with 10 threads. For every client 1000 transactions simulated.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;postgres@localhost ~]$ \/usr\/pgsql-14\/bin\/pgbench -c 1000 -j 10 -t 1000 pgbenchdb\npgbench (14.4)\nstarting vacuum...end.\ntransaction type: &lt;builtin: TPC-B (sort of)&gt;\nscaling factor: 10000\nquery mode: simple\nnumber of clients: 1000\nnumber of threads: 10\nnumber of transactions per client: 1000\nnumber of transactions actually processed: 1000000\/1000000\nlatency average = 22.659 ms\ninitial connection time = 436.926 ms\ntps = 44132.846931 (without initial connection time)\n&#091;postgres@localhost ~]$<\/code><\/pre>\n\n\n\n<p>Very interesting result, over 44000 tps. But also interesting was the scaling of that system over the count of clients.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"855\" height=\"599\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_scaling.jpg\" alt=\"\" class=\"wp-image-18113\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_scaling.jpg 855w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_scaling-300x210.jpg 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_scaling-768x538.jpg 768w\" sizes=\"auto, (max-width: 855px) 100vw, 855px\" \/><\/figure>\n\n\n\n<p>I&#8217;m very satisfied with this performance I did not expect, the system is scaling very well.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This Blog is about intallation and testing PostgreSQL 14 latest on an ARM based 80 core Server using Rocky Linux 8.6. Many thanks to Happyware for providing the machine used for this Blog. https:\/\/happyware.com\/ The machine used for this Blog is a Gigabyte R272-P30 with Ampere Altra Q80-30 CPU, 80 cores at 3GHz. https:\/\/happyware.com\/gigabyte\/arm-server-ampere-altra-r272-p30-q80-30\/6nr272p30mr-00 Very [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[42,83,48],"tags":[2627,2628,2615],"type_dbi":[],"class_list":["post-18035","post","type-post","status-publish","format-standard","hentry","category-operating-systems","category-postgresql","category-technology-survey","tag-arm-cpu","tag-postgresql-14","tag-rocky-linux-8"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL on 80 core ARM Server - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL on 80 core ARM Server\" \/>\n<meta property=\"og:description\" content=\"This Blog is about intallation and testing PostgreSQL 14 latest on an ARM based 80 core Server using Rocky Linux 8.6. Many thanks to Happyware for providing the machine used for this Blog. https:\/\/happyware.com\/ The machine used for this Blog is a Gigabyte R272-P30 with Ampere Altra Q80-30 CPU, 80 cores at 3GHz. https:\/\/happyware.com\/gigabyte\/arm-server-ampere-altra-r272-p30-q80-30\/6nr272p30mr-00 Very [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-25T09:20:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-08T14:38:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"739\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\"},\"headline\":\"PostgreSQL on 80 core ARM Server\",\"datePublished\":\"2022-07-25T09:20:10+00:00\",\"dateModified\":\"2024-11-08T14:38:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\"},\"wordCount\":372,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1024x296.png\",\"keywords\":[\"ARM CPU\",\"PostgreSQL 14\",\"Rocky Linux 8\"],\"articleSection\":[\"Operating systems\",\"PostgreSQL\",\"Technology Survey\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\",\"name\":\"PostgreSQL on 80 core ARM Server - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1024x296.png\",\"datePublished\":\"2022-07-25T09:20:10+00:00\",\"dateModified\":\"2024-11-08T14:38:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings.png\",\"width\":2560,\"height\":739},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL on 80 core ARM Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL on 80 core ARM Server - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL on 80 core ARM Server","og_description":"This Blog is about intallation and testing PostgreSQL 14 latest on an ARM based 80 core Server using Rocky Linux 8.6. Many thanks to Happyware for providing the machine used for this Blog. https:\/\/happyware.com\/ The machine used for this Blog is a Gigabyte R272-P30 with Ampere Altra Q80-30 CPU, 80 cores at 3GHz. https:\/\/happyware.com\/gigabyte\/arm-server-ampere-altra-r272-p30-q80-30\/6nr272p30mr-00 Very [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/","og_site_name":"dbi Blog","article_published_time":"2022-07-25T09:20:10+00:00","article_modified_time":"2024-11-08T14:38:43+00:00","og_image":[{"width":2560,"height":739,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings.png","type":"image\/png"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"headline":"PostgreSQL on 80 core ARM Server","datePublished":"2022-07-25T09:20:10+00:00","dateModified":"2024-11-08T14:38:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/"},"wordCount":372,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1024x296.png","keywords":["ARM CPU","PostgreSQL 14","Rocky Linux 8"],"articleSection":["Operating systems","PostgreSQL","Technology Survey"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/","name":"PostgreSQL on 80 core ARM Server - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings-1024x296.png","datePublished":"2022-07-25T09:20:10+00:00","dateModified":"2024-11-08T14:38:43+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/arm_ipmi_settings.png","width":2560,"height":739},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-on-80-core-arm-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL on 80 core ARM Server"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/18035","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=18035"}],"version-history":[{"count":19,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/18035\/revisions"}],"predecessor-version":[{"id":19304,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/18035\/revisions\/19304"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=18035"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=18035"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=18035"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=18035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}