You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/java-on-azure/background.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,13 @@ weight: 2
6
6
layout: "learningpathall"
7
7
---
8
8
9
-
## Azure Cobalt 100 Arm‑based processor
9
+
## Azure Cobalt 100 Arm-based CPU for Linux workloads
10
10
11
11
Azure Cobalt 100 is Microsoft’s first‑generation, in‑house Arm‑based CPU built on Arm Neoverse N2. It is designed for predictable performance and energy efficiency across common Linux workloads such as web and application servers, analytics, open‑source databases, and caching systems. Each vCPU maps to a dedicated physical core and runs up to **3.4 GHz**, helping deliver consistent latency under load.
12
12
13
13
Learn more in this Microsoft announcement blog: [Announcing the preview of new Azure VMs based on the Azure Cobalt 100 processor](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353).
14
14
15
-
## Java on Azure Cobalt 100
15
+
## Running Java on Azure Cobalt 100 Arm-based VMs
16
16
17
17
Java is a mature, object‑oriented language and runtime used to build scalable, secure applications. The Java Virtual Machine (JVM) executes platform‑independent bytecode, enabling *write once, run anywhere* portability across architectures, including Arm64 (AArch64). On Azure Cobalt 100, Java services benefit from modern JIT compilers and efficient multithreading for steady throughput and low tail latency.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/java-on-azure/baseline.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,13 @@ layout: learningpathall
7
7
---
8
8
9
9
10
-
###Deploy a Java application with a Tomcat-like operation
10
+
## Deploy a Java application with a Tomcat-like operation
11
11
Apache Tomcat is a widely used Java web application server. Technically, it is a Servlet container, responsible for executing Java servlets and supporting technologies such as:
12
12
13
13
- JSP (JavaServer Pages): Java-based templates for dynamic web content
14
-
- RESTful APIs: Lightweight endpoints for modern microservices
14
+
- RESTful APIs: lightweight endpoints for modern microservices
15
15
16
-
In production, frameworks like Tomcat introduce additional complexity (request parsing, thread management, I/O handling). Before layering those components, it's useful to measure how efficiently raw Java executes simple request/response logic on Azure Cobalt 100 Arm-based instances.
16
+
In production, frameworks like Tomcat introduce additional complexity (such as request parsing, thread management, and I/O handling). Before layering those components, it's useful to measure how efficiently raw Java executes simple request/response logic on Azure Cobalt 100 Arm-based instances.
17
17
18
18
In this section, you will run a minimal Tomcat-like simulation. It won't launch a real server, but instead it will do the following:
19
19
- Construct a basic HTTP response string in memory
@@ -40,21 +40,25 @@ public class HttpSingleRequestTest {
40
40
}
41
41
}
42
42
```
43
-
## Compile and Run the Java program
43
+
## Compile and run the Java program
44
+
45
+
Compile the program and run it with modest heap sizes and the G1 garbage collector:
-**Run Count**: The total number of benchmark iterations that JMH executed. More runs improve statistical reliability and help smooth out anomalies caused by the JVM or OS.
219
-
-**Average Throughput**: The mean number of operations completed per second across all measured iterations. This is the primary indicator of sustained performance for the benchmarked code.
220
-
-**Standard Deviation**: Indicates the amount of variation or dispersion from the average throughput. A smaller standard deviation means more consistent performance.
221
-
-**Confidence Interval (99.9%)**: The statistical range in which the true average throughput is expected to fall with 99.9% certainty. Narrow confidence intervals suggest more reliable and repeatable measurements.
222
-
-**Min Throughput**: The lowest observed throughput across all iterations, representing a worst-case scenario under the current test conditions.
223
-
-**Max Throughput**: The highest observed throughput across all iterations, representing the best-case performance under the current test conditions.
221
+
-**Run count** - the total number of benchmark iterations that JMH executed. More runs improve statistical reliability and help smooth out anomalies caused by the JVM or OS.
222
+
-**Average throughput** - the mean number of operations completed per second across all measured iterations. This is the primary indicator of sustained performance for the benchmarked code.
223
+
-**Standard deviation** - indicates the amount of variation or dispersion from the average throughput. A smaller standard deviation means more consistent performance.
224
+
-**Confidence interval (99.9%)** - the statistical range in which the true average throughput is expected to fall with 99.9% certainty. Narrow confidence intervals suggest more reliable and repeatable measurements.
225
+
-**Min throughput** - the lowest observed throughput across all iterations, representing a worst-case scenario under the current test conditions.
226
+
-**Max throughput** - the highest observed throughput across all iterations, representing the best-case performance under the current test conditions.
224
227
225
-
###Benchmark summary on Arm64
228
+
## Benchmark summary on Arm64
226
229
227
230
Here is a summary of benchmark results collected on an Arm64 **D4ps_v6 Ubuntu Pro 24.04 LTS virtual machine**.
-**Strong throughput performance**The benchmark sustained around 35.6 million operations per second, demonstrating efficient string construction and memory handling on the Arm64 JVM.
242
-
-**Consistency across runs**With a standard deviation under 1 million ops/sec, results were tightly clustered. This suggests stable system performance without significant noise from background processes.
-**Predictable performance envelope**The difference between min (33.5M) and max (37.0M) throughput is modest (~10%), suggests the workload performed consistently without extreme slowdowns or spikes.
244
+
-**Strong throughput performance**- the benchmark sustained around 35.6 million operations per second, demonstrating efficient string construction and memory handling on the Arm64 JVM.
245
+
-**Consistency across runs**- with a standard deviation under 1 million ops/sec, results were tightly clustered. This suggests stable system performance without significant noise from background processes.
-**Predictable performance envelope**- the difference between min (33.5M) and max (37.0M) throughput is modest (~10%), suggests the workload performed consistently without extreme slowdowns or spikes.
245
248
246
249
The Arm-based Azure `D4ps_v6` VM provides stable and efficient performance for Java workloads, even in microbenchmark scenarios. These results establish a baseline you can now compare directly against x86_64 instances to evaluate relative performance.
0 commit comments