Skip to content

Commit dc35294

Browse files
Updates
1 parent 5c5698a commit dc35294

File tree

8 files changed

+249
-358
lines changed

8 files changed

+249
-358
lines changed

content/learning-paths/servers-and-cloud-computing/mongodb-on-azure/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Run MongoDB on Arm-based Microsoft Azure Cobalt 100 instances
2+
title: Run MongoDB on Arm-based Azure Cobalt 100 instances
33

44
minutes_to_complete: 30
55

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "Overview"
2+
title: "What are Cobalt 100 and MongoDB?"
33

44
weight: 2
55

@@ -8,12 +8,12 @@ layout: "learningpathall"
88

99
## Cobalt 100 Arm-based processor
1010

11-
Azure’s Cobalt 100 is Microsoft’s first-generation, in-house Arm-based processor. Built on the Arm Neoverse N2 architecture, this 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.
11+
Azure’s Cobalt 100 is Microsoft’s first-generation Arm-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.
1212

13-
To find out more, 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).
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.
1414

1515
## MongoDB
1616

1717
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.
1818

19-
To find out more, see the [MongoDB website](https://www.mongodb.com/) and the [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/).

content/learning-paths/servers-and-cloud-computing/mongodb-on-azure/baseline-testing.md

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@ weight: 5
66
layout: learningpathall
77
---
88

9-
## Baseline testing of MongoDB
10-
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.
9+
## Overview
10+
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+
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 %}}
1116

1217
## Verify MongoDB installation and service health (Azure Cobalt 100 Arm64)
1318

@@ -17,9 +22,9 @@ mongod --version
1722
netstat -tulnp | grep 27017
1823
```
1924
What each command does:
20-
- **ps -ef | grep mongod** checks if the MongoDB server process is running
21-
- **mongod --version** shows the installed MongoDB version
22-
- **netstat -tulnp | grep 27017** confirms MongoDB is listening on the default port 27017
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**.
2328

2429
You should see output similar to:
2530

@@ -46,9 +51,9 @@ Build Info: {
4651
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 4288/mongod
4752
```
4853

49-
## Run storage baseline with fio (random read IOPS on Ubuntu 24.04):
54+
## Run a storage baseline with fio (random read IOPS on Ubuntu 24.04)
5055

51-
This reads random 4 KB blocks from a 100 MB file for 30 seconds with one job and prints a summary
56+
This reads random **4 KB** blocks from a **100 MB** file for **30 seconds** with one job and prints a summary.
5257

5358
```console
5459
fio --name=baseline --rw=randread --bs=4k --size=100M --numjobs=1 --time_based --runtime=30 --group_reporting
@@ -87,9 +92,11 @@ Run status group 0 (all jobs):
8792
Disk stats (read/write):
8893
sda: ios=127195/29, sectors=1017560/552, merge=0/15, ticks=29133/8, in_queue=29151, util=96.37%
8994
```
90-
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.
9198

92-
## Connectivity and CRUD Sanity Check
99+
## Connectivity and CRUD sanity check
93100

94101
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:
95102

@@ -113,10 +120,10 @@ db.testCollection.deleteOne({ name: "baseline-check" })
113120
exit
114121
```
115122
What these commands do:
116-
- Create a test document
117-
- Read it
118-
- Update its value
119-
- Delete it
123+
- Create a test document.
124+
- Read it.
125+
- Update its value.
126+
- Delete it.
120127

121128
You should see output similar to:
122129

@@ -150,30 +157,30 @@ baselineDB> db.testCollection.deleteOne({ name: "baseline-check" })
150157
{ acknowledged: true, deletedCount: 1 }
151158
```
152159

153-
## Basic query performance test (count filter)
160+
## Run a basic query performance test (count filter)
154161

155-
Run a lightweight query performance check:
162+
Run a lightweight query performance check.
156163

157164
```console
158165
mongosh --eval '
159166
db = db.getSiblingDB("baselineDB");
160167
for (let i=0; i<1000; i++) { db.perf.insertOne({index:i, value:Math.random()}) };
161168
var start = new Date();
162-
db.perf.find({ value: { $gt: 0.5 } }).count();
169+
db.perf.countDocuments({ value: { $gt: 0.5 } });
163170
print("Query Time (ms):", new Date() - start);
164171
'
165172
```
166-
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`
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`.
167174

168175
You should see output similar to:
169176

170177
```output
171178
Query Time (ms): 2
172179
```
173180

174-
## Index creation speed test in MongoDB
181+
## Measure index creation time in MongoDB
175182

176-
Measure how long MongoDB takes to create an index on a collection:
183+
Measure how long MongoDB takes to create an index on a collection.
177184

178185
```console
179186
mongosh --eval '
@@ -183,27 +190,27 @@ db.perf.createIndex({ value: 1 });
183190
print("Index Creation Time (ms):", new Date() - start);
184191
'
185192
```
186-
This creates an index on the `value` field in the `perf` collection and prints the time taken
193+
This creates an index on the `value` field in the `perf` collection and prints the time taken.
187194

188195
You should see output similar to:
189196

190197
```output
191198
Index Creation Time (ms): 22
192199
```
193200

194-
## Concurrency smoke test with parallel mongosh sessions
201+
## Run a concurrency smoke test with parallel mongosh sessions
195202

196-
Verify that MongoDB can handle concurrent client connections and inserts
203+
Verify that MongoDB can handle concurrent client connections and inserts.
197204

198205
```console
199206
for i in {1..5}; do
200207
mongosh --eval 'use baselineDB; db.concurrent.insertMany([...Array(1000).keys()].map(k => ({ test: k, ts: new Date() })))' &
201208
done
202209
wait
203210
```
204-
This runs five parallel MongoDB shell sessions, each inserting 1,000 documents into the `baselineDB.concurrent` collection.
211+
This runs five parallel MongoDB shell sessions, each inserting **1,000** documents into the `baselineDB.concurrent` collection.
205212

206-
You should see output similar to
213+
You should see output similar to:
207214

208215
```output
209216
[1] 3818
@@ -223,8 +230,8 @@ switched to db baselineDB;
223230
[5]+ Done mongosh --eval 'use baselineDB; db.concurrent.insertMany([...Array(1000).keys()].map(k => ({ test: k, ts: new Date() })))'
224231
```
225232

226-
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.
227234

228-
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
229236

230-
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

Comments
 (0)