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/mongodb-on-azure/_index.md
+7-11Lines changed: 7 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,18 @@
1
1
---
2
-
title: Run MongoDB on the Microsoft Azure Cobalt 100 processors
3
-
4
-
draft: true
5
-
cascade:
6
-
draft: true
2
+
title: Run MongoDB on Arm-based Azure Cobalt 100 instances
7
3
8
4
minutes_to_complete: 30
9
5
10
-
who_is_this_for: This Learning Path is designed for software developers looking to migrate their MongoDB workloads to Arm-based platforms, specifically on the Microsoft Azure Cobalt 100 processors.
6
+
who_is_this_for: This is an introductory topic for software developers who want to migrate MongoDB workloads to Arm-based platforms, with a focus on Microsoft Azure Cobalt 100 Arm64 instances.
11
7
12
8
learning_objectives:
13
-
- Provision an Azure Arm64 Cobalt 100 based virtual machine using Azure console, with Ubuntu Pro 24.04 LTS as the base image.
14
-
- Deploy MongoDB on an Azure Cobalt 100 based virtual machine.
15
-
- Perform MongoDB baseline testing and benchmarking on the Arm64 virtual machine.
9
+
- Provision an Arm64-based Cobalt 100 virtual machine in Azure using Ubuntu Pro 24.04 LTS
10
+
- Deploy MongoDB on the Cobalt 100 instance
11
+
- Run baseline tests and performance benchmarks on MongoDB in the Arm64 environment
16
12
17
13
prerequisites:
18
-
- A [Microsoft Azure](https://azure.microsoft.com/) account with access to Cobalt 100 based instances (Dpsv6).
19
-
- Familiarity with the [MongoDB architecture](https://www.mongodb.com/) and deployment practices on Arm64 platforms.
14
+
- A [Microsoft Azure](https://azure.microsoft.com/) account with access to Cobalt 100 (Dpsv6) instances
15
+
- Familiarity with the [MongoDB architecture](https://www.mongodb.com/) and deployment practices on Arm64 platforms
Azure’s Cobalt 100 is built on Microsoft's first-generation, in-house Arm-based processor: the Cobalt 100. Designed entirely by Microsoft and based on Arm’s Neoverse N2 architecture, this 64-bit CPU delivers improved performance and energy efficiency across a broad spectrum of cloud-native, scale-out Linux workloads. These include web and application servers, data analytics, open-source databases, caching systems, and more. Running at 3.4 GHz, the Cobalt 100 processor allocates a dedicated physical core for each vCPU, ensuring consistent and predictable performance.
11
+
Azure’s Cobalt 100 is Microsoft’s first-generationArm-based processor. Built on the Arm Neoverse N2 architecture, the 64-bit CPU improves performance and energy efficiency for a wide range of cloud-native, scale-out Linux workloads. These include web and application servers, data analytics, open-source databases, caching systems, and more. Running at 3.4 GHz, the Cobalt 100 processor allocates a dedicated physical core for each vCPU to ensure consistent, predictable performance.
12
12
13
-
To learn more about Cobalt 100, refer to the blog [Announcing the preview of new Azure virtual machine 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).
13
+
See the [Azure Cobalt 100 announcement blog](https://techcommunity.microsoft.com/blog/azurecompute/announcing-the-preview-of-new-azure-vms-based-on-the-azure-cobalt-100-processor/4146353) to find out more.
14
14
15
15
## MongoDB
16
-
MongoDB is a popular open-source NoSQL database designed for high performance, scalability, and flexibility.
17
16
18
-
It stores data in JSON-like BSON documents, making it ideal for modern applications that require dynamic, schema-less data structures.
17
+
MongoDB is an open-source NoSQL database known for high performance, scalability, and flexibility. It stores data in JSON-like BSON documents, making it ideal for applications that need dynamic, schema-less data structures. Developers commonly use MongoDB for web, mobile, IoT, and real-time analytics workloads.
19
18
20
-
MongoDB is widely used for web, mobile, IoT, and real-time analytics workloads. Learn more from the [MongoDB official website](https://www.mongodb.com/) and its [official documentation](https://www.mongodb.com/docs/).
19
+
To find out more, see the [MongoDB website](https://www.mongodb.com/) and the [MongoDB documentation](https://www.mongodb.com/docs/).
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/mongodb-on-azure/baseline-testing.md
+44-34Lines changed: 44 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,21 +6,25 @@ weight: 5
6
6
layout: learningpathall
7
7
---
8
8
9
+
## Overview
9
10
10
-
### Baseline testing of MongoDB
11
-
In this section you will perform baseline testing by verifying MongoDB is running, logging into the shell, executing a few test queries, and monitoring live performance. This ensures the database is functioning correctly before starting any benchmarks.
11
+
Use this section to validate your **MongoDB** setup on an **Azure Cobalt 100 (Arm64)** VM running **Ubuntu 24.04 LTS**. You will check service health, run a quick storage baseline with **fio**, validate CRUD operations with **mongosh**, and do light query, index, and concurrency checks before larger benchmarks.
12
12
13
-
1. Verify Installation & Service Health
13
+
{{% notice Note %}}
14
+
For this exercise, `mongod` runs locally and **access control is disabled** by default. Keep the server bound to `127.0.0.1` until you configure users and authentication.
15
+
{{% /notice %}}
16
+
17
+
## Verify MongoDB installation and service health (Azure Cobalt 100 Arm64)
14
18
15
19
```console
16
20
ps -ef | grep mongod
17
21
mongod --version
18
22
netstat -tulnp | grep 27017
19
23
```
20
-
An explanation of what each command is doing:
21
-
-**ps -ef | grep mongod**– Checks if the MongoDB server process is running.
22
-
-**mongod --version**– Shows the version of MongoDB installed.
23
-
-**netstat -tulnp | grep 27017**– Checks if MongoDB is listening for connections on its default port 27017.
24
+
What each command does:
25
+
-**ps -ef | grep mongod**checks if the MongoDB server process is running
26
+
-**mongod --version**shows the installed MongoDB version
27
+
-**netstat -tulnp | grep 27017**confirms MongoDB is listening on the default port **27017**
## Run a storage baseline with fio (random read IOPS on Ubuntu 24.04)
51
55
52
-
To perform a storage and health check, run the command below. This command checks how fast your storage can randomly read small 4KB chunks from a 100 MB file for 30 seconds, using one job, followed by a summary report:
56
+
This reads random **4 KB** blocks from a **100 MB** file for **30 seconds** with one job and prints a summary.
The output shows how fast it read data (**16.6 MB/s**) and how many reads it did per second (**~4255 IOPS**), which tells you how responsive your storage is for random reads.
95
+
Interpretation:
96
+
-**16.6 MB/s** is the measured read bandwidth for **4 KB** random reads.
97
+
-**~4255 IOPS** indicates random read responsiveness.
92
98
93
-
3. Connectivity and CRUD Sanity Check
99
+
##Connectivity and CRUD sanity check
94
100
95
101
To verify that the MongoDB server is reachable you will perform a connectivity check. You will run a sanity test of core database functionality and permissions, refered to as CRUD:
96
102
97
-
C - Create: Insert a new record/document into the database.
98
-
R - Read: Query the database to retrieve data.
99
-
U - Update: Modify an existing record.
100
-
D - Delete: Remove a record.
103
+
-C - Create: insert a new record/document into the database
These commands create a test record, read it, update its value, and then delete it a simple way to check if MongoDB’s basic **add, read, update, and delete** operations are working.
## Run a basic query performance test (count filter)
151
161
152
-
You will now perform a lightweight query performance check:
162
+
Run a lightweight query performance check.
153
163
154
164
```console
155
165
mongosh --eval '
156
166
db = db.getSiblingDB("baselineDB");
157
167
for (let i=0; i<1000; i++) { db.perf.insertOne({index:i, value:Math.random()}) };
158
168
var start = new Date();
159
-
db.perf.find({ value: { $gt: 0.5 } }).count();
169
+
db.perf.countDocuments({ value: { $gt: 0.5 } });
160
170
print("Query Time (ms):", new Date() - start);
161
171
'
162
172
```
163
-
The command connected to MongoDB, switched to the `baselineDB` database, inserted 1,000 documents into the perf collection, and then measured the execution time for counting documents where value > 0.5. The final output displayed the query execution time in milliseconds.
173
+
This connects to MongoDB, selects the `baselineDB` database, inserts **1,000** documents into the `perf` collection, and measures the time to count documents where `value > 0.5`.
164
174
165
-
You should see the Query Time output similar to:
175
+
You should see output similar to:
166
176
167
177
```output
168
178
Query Time (ms): 2
169
179
```
170
180
171
-
5. Index Creation Speed Test
181
+
## Measure index creation time in MongoDB
182
+
183
+
Measure how long MongoDB takes to create an index on a collection.
172
184
173
-
You will now run a performance sanity check that measures how long MongoDB takes to create an index on a given collection:
print("Index Creation Time (ms):", new Date() - start);
180
191
'
181
192
```
182
-
The test connected to MongoDB, switched to the `baselineDB` database, and created an index on the value field in the `perf` collection. The index creation process completed in 22 milliseconds, indicating relatively fast index building for the dataset size.
193
+
This creates an index on the `value` field in the `perf` collection and prints the time taken.
183
194
184
195
You should see output similar to:
185
196
186
197
```output
187
198
Index Creation Time (ms): 22
188
199
```
189
200
190
-
6. Concurrency Smoke Test
201
+
## Run a concurrency smoke test with parallel mongosh sessions
191
202
192
-
You will now verify that MongoDB can handle concurrent client connections and inserts without errors:
203
+
Verify that MongoDB can handle concurrent client connections and inserts.
Five parallel MongoDB shell sessions were executed, each inserting 1,000 test documents into the baselineDB.concurrent collection. All sessions completed successfully, confirming that concurrent data insertion works as expected.
233
+
All sessions completed successfully, confirming that concurrent inserts work as expected.
224
234
225
-
With these tests you have confirmed that MongoDB is installed successfully and is functioning as expected on the Azure Cobalt 100 (Arm64) environment.
235
+
## Next steps
226
236
227
-
You are now ready to perform further benchmarking for MongoDB.
237
+
With these checks complete, proceed to the MongoDB benchmarking section to run workload‑focused tests on the **Azure Cobalt 100 Arm64** instance.
0 commit comments