From 05c8a98099f5f3b8012a43f9b6eef7b3c59f1db3 Mon Sep 17 00:00:00 2001 From: Gary Gray <137797428+ggray-cb@users.noreply.github.com> Date: Thu, 17 Apr 2025 09:50:35 -0400 Subject: [PATCH 1/5] Initial draft of AVX2 deprecation notice. Also cleaned up the Clock Source section a bit. --- modules/install/pages/pre-install.adoc | 92 ++++++++++++++++------- modules/introduction/pages/whats-new.adoc | 8 ++ 2 files changed, 72 insertions(+), 28 deletions(-) diff --git a/modules/install/pages/pre-install.adoc b/modules/install/pages/pre-install.adoc index 01ab4dcf91..2f6ea5fe39 100644 --- a/modules/install/pages/pre-install.adoc +++ b/modules/install/pages/pre-install.adoc @@ -4,14 +4,36 @@ [abstract] {description} -[tabs] +## CPU Requirements + +Couchbase Server can run on x96 and ARM processors (including Apple Silicon processors). +This section explains the minimum requirements for of these platforms. + +### x86 Processors + + +[#avx2-requirements] +.deprecation notice +[IMPORTANT] +==== +The use of older x86 processors that do not implement the https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX2[Advanced Vector Extensions 2 (AVX2)] instruction set is deprecated in Couchbase Server 7.6.x. +Future versions will require processors that have AVX2 support. +The earliest processors that support these instructions include: + +* Intel 4th generation (Haswell) Core processors released in 2013. +* Intel 11th generation (Tiger Lake) Celeron and Pentium processors released in 2020. +* AMD Excavator processors released in 2015. + +Processors from these or later generations will be required to run Couchbase Server in the future. ==== -x86 Processors:: -+ --- + + +Couchbase Server has the following requirements when running on x86 processors. + + [cols="80,180,180"] |=== -| | Minimum Specifications* | Recommended Specifications** +| | Minimum Specifications<<#note1,*>> | Recommended Specifications<<#note2,**>> | *CPU* | 2 GHz dual core x86_64 CPU supporting SSE4.2 @@ -33,14 +55,15 @@ a| Network file systems such as CIFS and NFS are not supported. |=== --- -ARM Processors:: -+ --- +### ARM Processors + +Couchbase Server has the following requirements when running on ARM-based platforms. + + [cols="80,180,180"] |=== -| | Minimum Specifications* | Recommended Specifications** +| | Minimum Specifications<<#note1,*>> | Recommended Specifications<<#note2,**>> | *CPU* | 2 Ghz dual core 64bit ARM v8 CPU @@ -60,39 +83,52 @@ a| Network file systems such as CIFS and NFS are not supported. |=== --- -==== - - -*_You can reduce the CPU and RAM resources below the Minimum Specifications for development and testing purposes. +[#note1] +^*^You can reduce the CPU and RAM resources below the Minimum Specifications for development and testing purposes. Resources can be as low as 1 GB of free RAM beyond operating system requirements, and a single CPU core. However, you must adhere to the Minimum Specifications for production._ -**_The Recommended Specifications don't take into account your intended workload. -You should follow the xref:sizing-general.adoc[sizing guidelines] when determining system specifications for your Couchbase Server deployment._ +[#note2] +^**^The Recommended Specifications do not take into account your intended workload. +You should follow the xref:sizing-general.adoc[sizing guidelines] when determining system specifications for your Couchbase Server deployment. [#clock-source-linux] -Clock Source on Linux:: The Query service uses the OS monotonic clock for profiling and network timeout purposes. -+ -The Linux kernel uses the _Clock Source_ to obtain the current clock value and this information is stored in `/sys/devices/system/clocksource/clocksource0/current_clocksource`. There are several clock sources (TSC, XEN, and others), which are used depending on the hardware clock capabilities, and the OS installation. The XEN source, which is seen to be the default on AWS setups, can use up to 25% of all available CPU time to obtain the current timestamp. The TSC clock source, on the other hand, incurs very little CPU cost. We recommend changing the clock source to TSC if it is set to anything else. -+ -Check the clock source on your Linux OS using the following command: +## Clock Source on Linux + +The Query Service relies on the Linux operating system's monotonic clock when profiling and managing network timeouts. + +The Linux kernel uses a clock source to track elapsed time, handle scheduling and timers, and to get the current time. +It can use one of several possible sources, such as Time Stamp Counter (TSC), the XEN build into the Xen virtualization framework, and others. +See https://docs.kernel.org/timers/timekeeping.html[Clock sources, Clock events, sched_clock() and delay timers^] for more information about clock sources. +Which source the kernel uses depends on the hardware clock capabilities and Linux configuration settings. + +Some virtualization environments, such as older AWS EC2 clusters, use the XEN clock source. +This source can cause performance issues because reading it requires an expensive system call to the hypervisor. +In some cases, a XEN clock source has used up to 25% of CPU time when timers are in heavy use. + +The TSC clock source incurs little CPU cost because it's a CPU instruction instead of a kernel or hypervisor call. +If your platform has a reliable and invariant implementation of TSC, use it as the clock source. +Consult the documentation for your platform for more information about its TSC implementation. + +Use the following command to see which clock source Linux is using: + [source, bash] ---- cat /sys/devices/system/clocksource/clocksource0/current_clocksource ---- -+ -Change the clock source using the following commands: + +You can change the clock source to TSC by running the following command as root: + [source,bash] ---- echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource ---- -+ -To verify the current setting of the clock source, use: + +Verify the current setting of the clock source, read the `current_clocksource` again: [source,bash] ---- cat /sys/devices/system/clocksource/clocksource0/current_clocksource ---- -+ -The output should read `tsc`. \ No newline at end of file + +The output should read `tsc`. diff --git a/modules/introduction/pages/whats-new.adoc b/modules/introduction/pages/whats-new.adoc index bcb5ffa2c7..9d1ab7c6cb 100644 --- a/modules/introduction/pages/whats-new.adoc +++ b/modules/introduction/pages/whats-new.adoc @@ -8,6 +8,14 @@ For information about platform support changes, deprecation notifications, notable improvements, and fixed and known issues, refer to the xref:release-notes:relnotes.adoc[Release Notes]. +.deprecation notice +[IMPORTANT] +==== +Using older x86 processors that do not have the AVX2 instruction set is deprecated in Couchbase Server 7.6.x. +Deprecated processors include pre-2013 Intel Core processors, pre-2020 Celeron or Pentium processors, and pre-2015 AMD processors. +See xref:install:pre-install.adoc[] for details. +==== + .note regarding `cbbackupmgr` [IMPORTANT] ==== From 2e3c6376efe40b6db34f5894f0c0385f641a5125 Mon Sep 17 00:00:00 2001 From: Gary Gray <137797428+ggray-cb@users.noreply.github.com> Date: Thu, 17 Apr 2025 10:50:56 -0400 Subject: [PATCH 2/5] Added example to show whether processor has avx2. --- modules/install/pages/pre-install.adoc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/install/pages/pre-install.adoc b/modules/install/pages/pre-install.adoc index 2f6ea5fe39..a7437730e1 100644 --- a/modules/install/pages/pre-install.adoc +++ b/modules/install/pages/pre-install.adoc @@ -18,13 +18,26 @@ This section explains the minimum requirements for of these platforms. ==== The use of older x86 processors that do not implement the https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX2[Advanced Vector Extensions 2 (AVX2)] instruction set is deprecated in Couchbase Server 7.6.x. Future versions will require processors that have AVX2 support. -The earliest processors that support these instructions include: +This requirements is only for x86 processors--ARM processors have a separate set of vector instructions. + +The earliest processors that support AVX2 instructions include: * Intel 4th generation (Haswell) Core processors released in 2013. * Intel 11th generation (Tiger Lake) Celeron and Pentium processors released in 2020. * AMD Excavator processors released in 2015. Processors from these or later generations will be required to run Couchbase Server in the future. + +You can tell if your processor has the AVX2 instructions by executing the following command: + +[source,bash] +---- +grep -q -i 'avx2' /proc/cpuinfo && \ + echo "Processor has AVX2" || echo "AVX2 not found" +---- + +If the command returns the text `Processor has AVX2`, your processor has AVX2 support and is supported in future Couchbase Server releases. +If the command returns `AVX2 not found`, your processor does not support AVX2 and will not be supported in future Couchbase Server versions. ==== From 88fc05dda8b4ee1e9c22da46f1ea2914e07770a8 Mon Sep 17 00:00:00 2001 From: Gary Gray <137797428+ggray-cb@users.noreply.github.com> Date: Thu, 17 Apr 2025 10:53:27 -0400 Subject: [PATCH 3/5] Minor tweaks --- modules/install/pages/pre-install.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/install/pages/pre-install.adoc b/modules/install/pages/pre-install.adoc index a7437730e1..b66b457ebe 100644 --- a/modules/install/pages/pre-install.adoc +++ b/modules/install/pages/pre-install.adoc @@ -28,7 +28,7 @@ The earliest processors that support AVX2 instructions include: Processors from these or later generations will be required to run Couchbase Server in the future. -You can tell if your processor has the AVX2 instructions by executing the following command: +On Linux, you can tell if your processor has the AVX2 instructions by executing the following command: [source,bash] ---- @@ -36,8 +36,8 @@ grep -q -i 'avx2' /proc/cpuinfo && \ echo "Processor has AVX2" || echo "AVX2 not found" ---- -If the command returns the text `Processor has AVX2`, your processor has AVX2 support and is supported in future Couchbase Server releases. -If the command returns `AVX2 not found`, your processor does not support AVX2 and will not be supported in future Couchbase Server versions. +If the command returns the text `Processor has AVX2`, your processor is supported in future Couchbase Server releases. +If the command returns `AVX2 not found`, your processor does not have AVX2 instructions and will not be supported in future Couchbase Server versions. ==== From 083001d1ab9bc2e48f9dac3fdb81571bd5eb7cb2 Mon Sep 17 00:00:00 2001 From: Gary Gray <137797428+ggray-cb@users.noreply.github.com> Date: Fri, 18 Apr 2025 08:31:25 -0400 Subject: [PATCH 4/5] Typo fix spotted by Ray Co-authored-by: Ray Offiah <77050471+RayOffiah@users.noreply.github.com> --- modules/install/pages/pre-install.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/install/pages/pre-install.adoc b/modules/install/pages/pre-install.adoc index b66b457ebe..4ebe4926fa 100644 --- a/modules/install/pages/pre-install.adoc +++ b/modules/install/pages/pre-install.adoc @@ -6,7 +6,7 @@ ## CPU Requirements -Couchbase Server can run on x96 and ARM processors (including Apple Silicon processors). +Couchbase Server can run on x86 and ARM processors (including Apple Silicon processors). This section explains the minimum requirements for of these platforms. ### x86 Processors From bf3fa2cd0957e2e89eb5875d6228efa3f338e63e Mon Sep 17 00:00:00 2001 From: Gary Gray <137797428+ggray-cb@users.noreply.github.com> Date: Fri, 18 Apr 2025 08:32:12 -0400 Subject: [PATCH 5/5] Verb agreement fix from Ray Co-authored-by: Ray Offiah <77050471+RayOffiah@users.noreply.github.com> --- modules/install/pages/pre-install.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/install/pages/pre-install.adoc b/modules/install/pages/pre-install.adoc index 4ebe4926fa..bbfdbb9358 100644 --- a/modules/install/pages/pre-install.adoc +++ b/modules/install/pages/pre-install.adoc @@ -16,7 +16,7 @@ This section explains the minimum requirements for of these platforms. .deprecation notice [IMPORTANT] ==== -The use of older x86 processors that do not implement the https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX2[Advanced Vector Extensions 2 (AVX2)] instruction set is deprecated in Couchbase Server 7.6.x. +The use of older x86 processors that do not implement the https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX2[Advanced Vector Extensions 2 (AVX2)] instruction set are deprecated in Couchbase Server 7.6.x. Future versions will require processors that have AVX2 support. This requirements is only for x86 processors--ARM processors have a separate set of vector instructions.