Practice
1. Why does clustering improve performance in Node.js applications?
easy
Solution
Step 1: Understand clustering purpose
Clustering in Node.js creates multiple worker processes to utilize multiple CPU cores.Step 2: Link to performance
By distributing load across workers, it enables parallel request handling, reducing time and improving throughput.Final Answer:
It creates multiple worker processes to distribute load across CPU cores. -> Option CQuick Check:
Clustering creates workers = better performance [OK]
Hint: Clustering forks workers to use multiple cores [OK]
Common Mistakes:
- Thinking clustering deletes data
- Confusing clustering with sorting
- Assuming clustering changes data format
2. Which Node.js code snippet correctly creates a simple cluster using the
cluster module?easy
Solution
Step 1: Check correct import syntax
Node.js usesrequire('cluster')to import the cluster module.Step 2: Verify cluster usage
cluster.isMasterchecks if current process is master, thencluster.fork()creates a worker.Final Answer:
const cluster = require('cluster'); if (cluster.isMaster) { cluster.fork(); } -> Option DQuick Check:
Correct import and fork method = const cluster = require('cluster'); if (cluster.isMaster) { cluster.fork(); } [OK]
Hint: Use require and cluster.isMaster with cluster.fork() [OK]
Common Mistakes:
- Using import instead of require in Node.js
- Calling non-existent cluster methods like start() or create()
- Missing the cluster.isMaster check
3. Consider this Node.js code using clustering:
What will be the output when you run this code?
const cluster = require('cluster');
if (cluster.isMaster) {
cluster.fork();
cluster.fork();
} else {
console.log('Worker process running');
}What will be the output when you run this code?
medium
Solution
Step 1: Understand cluster.fork() behavior
Eachcluster.fork()creates a new worker process that runs the else block.Step 2: Count output lines
Two forks mean two workers, each printing 'Worker process running' once.Final Answer:
Prints 'Worker process running' twice, once for each worker. -> Option BQuick Check:
Two forks = two worker outputs [OK]
Hint: Each fork runs else block once, so output repeats per worker [OK]
Common Mistakes:
- Thinking master prints the message
- Assuming no output from workers
- Believing multiple forks cause errors
4. This Node.js code aims to create two worker processes but has a bug:
What is the main problem?
const cluster = require('cluster');
if (cluster.isMaster) {
cluster.fork();
} else {
cluster.fork();
console.log('Worker running');
}What is the main problem?
medium
Solution
Step 1: Analyze fork calls in master and worker
Master forks once, but worker also calls cluster.fork(), creating new workers repeatedly.Step 2: Identify infinite worker creation
Workers keep forking new workers endlessly, causing a loop and resource exhaustion.Final Answer:
Calling cluster.fork() inside the worker causes infinite worker creation. -> Option AQuick Check:
Fork inside worker = infinite forks [OK]
Hint: Only master should call cluster.fork() to avoid infinite loops [OK]
Common Mistakes:
- Thinking workers can safely fork new workers
- Ignoring cluster.isMaster condition
- Assuming cluster.fork() is invalid
5. You have a Node.js server that handles many requests slowly. How can clustering improve performance effectively?
hard
Solution
Step 1: Identify performance bottleneck
Single process handles requests sequentially, causing slow response under load.Step 2: Use clustering to improve concurrency
Multiple worker processes handle requests simultaneously, using multiple CPU cores.Final Answer:
By creating multiple worker processes to handle requests in parallel. -> Option AQuick Check:
Parallel workers = faster request handling [OK]
Hint: Use multiple workers to handle requests at the same time [OK]
Common Mistakes:
- Thinking clustering merges requests
- Using global variables for performance
- Disabling clustering reduces performance
