Bird
Raised Fist0
Nginxdevops~20 mins

Worker processes and connections in Nginx - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Nginx Worker Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding worker_processes directive
What is the primary role of the worker_processes directive in the nginx configuration?
AIt specifies the timeout duration for worker processes.
BIt defines the maximum number of simultaneous connections per worker.
CIt sets the number of worker processes to handle client requests.
DIt configures the logging level for worker processes.
Attempts:
2 left
💡 Hint
Think about how nginx handles multiple requests at the same time.
💻 Command Output
intermediate
1:30remaining
Output of nginx status with worker connections
Given the nginx configuration with worker_processes 2; and worker_connections 1024;, what is the maximum number of simultaneous client connections nginx can handle?
A2048
B1024
C512
D4096
Attempts:
2 left
💡 Hint
Multiply the number of worker processes by worker connections.
❓ Configuration
advanced
2:00remaining
Correct nginx configuration for high concurrency
Which nginx configuration snippet correctly sets 4 worker processes and allows each to handle 2048 connections?
A
worker_processes 4;
worker_connections 2048;
B
worker_processes 2048;
worker_connections 4;
C
worker_processes 4;
worker_connections 1024;
D
worker_processes auto;
worker_connections 2048;
Attempts:
2 left
💡 Hint
Remember the directives control processes and connections separately.
❓ Troubleshoot
advanced
2:00remaining
Troubleshooting connection limits in nginx
If nginx is configured with worker_processes 2; and worker_connections 1024; but clients experience connection refusals under high load, which is the most likely cause?
AThe <code>worker_processes</code> value is too high.
BThe server has too much RAM.
CThe <code>worker_connections</code> value is ignored by nginx.
DThe OS limit on open files is too low, restricting connections.
Attempts:
2 left
💡 Hint
Nginx depends on OS limits for file descriptors.
✅ Best Practice
expert
2:30remaining
Optimal use of worker_processes with CPU cores
What is the best practice for setting worker_processes in nginx on a multi-core server to maximize performance?
ASet <code>worker_processes</code> to double the number of CPU cores.
BSet <code>worker_processes</code> equal to the number of CPU cores.
CSet <code>worker_processes</code> to the number of active network connections.
DSet <code>worker_processes</code> to 1 regardless of cores.
Attempts:
2 left
💡 Hint
Think about how nginx uses CPU resources.

Practice

(1/5)
1. What does the worker_processes directive control in an nginx configuration?
easy
A. The timeout for client connections
B. The maximum size of client request body
C. The number of server blocks defined
D. The number of worker processes handling client requests

Solution

  1. Step 1: Understand the role of worker_processes

    This directive sets how many worker processes nginx will start to handle incoming requests.
  2. Step 2: Compare with other options

    Other options relate to different settings like request size, server blocks, or timeouts, not worker count.
  3. Final Answer:

    The number of worker processes handling client requests -> Option D
  4. Quick Check:

    worker_processes = number of workers [OK]
Hint: worker_processes = how many workers run [OK]
Common Mistakes:
  • Confusing worker_processes with worker_connections
  • Thinking it controls timeout or request size
  • Mixing it with server block count
2. Which of the following is the correct syntax to set worker connections to 1024 in nginx?
easy
A. worker_connections = 1024
B. worker_connections 1024;
C. worker_connections: 1024
D. worker_connections(1024);

Solution

  1. Step 1: Recall nginx directive syntax

    nginx directives use the format: directive_name value; without equals or parentheses.
  2. Step 2: Identify correct syntax

    worker_connections 1024; matches this format exactly with a semicolon ending.
  3. Final Answer:

    worker_connections 1024; -> Option B
  4. Quick Check:

    nginx directives end with semicolon [OK]
Hint: nginx directives end with semicolon, no equals [OK]
Common Mistakes:
  • Using equals sign (=) in directive
  • Using colon (:) instead of space
  • Adding parentheses around values
3. Given the following nginx config snippet:
worker_processes 2;
worker_connections 512;

What is the maximum number of simultaneous connections nginx can handle?
medium
A. 512
B. 256
C. 1024
D. 2

Solution

  1. Step 1: Understand the meaning of directives

    worker_processes = 2 means 2 workers; worker_connections = 512 means each worker can handle 512 connections.
  2. Step 2: Calculate total connections

    Total connections = worker_processes * worker_connections = 2 * 512 = 1024.
  3. Final Answer:

    1024 -> Option C
  4. Quick Check:

    2 workers x 512 connections = 1024 [OK]
Hint: Multiply workers by connections per worker [OK]
Common Mistakes:
  • Using only worker_connections value
  • Using only worker_processes value
  • Adding instead of multiplying
4. You set worker_processes 4; and worker_connections 1024; but nginx only handles about 1024 connections total. What is the likely cause?
medium
A. The OS limit on open files is too low
B. worker_processes must be set to 1
C. worker_connections must be less than 512
D. nginx does not support multiple workers

Solution

  1. Step 1: Understand expected max connections

    With 4 workers and 1024 connections each, max should be 4096 connections.
  2. Step 2: Identify system limits

    OS limits on open files (ulimit) can restrict max connections nginx can open, causing lower actual limits.
  3. Final Answer:

    The OS limit on open files is too low -> Option A
  4. Quick Check:

    OS file descriptor limit affects max connections [OK]
Hint: Check OS file limits if max connections too low [OK]
Common Mistakes:
  • Assuming nginx ignores worker_processes
  • Reducing worker_connections unnecessarily
  • Believing nginx can't use multiple workers
5. You want nginx to handle at least 10,000 simultaneous connections. Your server has 4 CPU cores. Which configuration is best to achieve this?
hard
A. worker_processes 4; worker_connections 2500;
B. worker_processes 1; worker_connections 10000;
C. worker_processes auto; worker_connections 2000;
D. worker_processes 10; worker_connections 1000;

Solution

  1. Step 1: Understand requirements

    To handle at least 10,000 connections on 4 CPU cores, set worker_processes to 4 (matching cores) and calculate worker_connections accordingly.
  2. Step 2: Calculate for worker_processes 4; worker_connections 2500;

    worker_processes 4; worker_connections 2500; gives 4 * 2500 = 10,000 connections.
  3. Step 3: Compare other options

    B uses 1 worker (poor performance); C with auto (4 workers) * 2000 = 8,000 (insufficient); D uses 10 workers (overhead).
  4. Final Answer:

    worker_processes 4; worker_connections 2500; -> Option A
  5. Quick Check:

    workers (cores) * connections >= 10,000 [OK]
Hint: Match CPU cores for workers, tune connections to meet target [OK]
Common Mistakes:
  • Using single worker (poor performance)
  • Setting insufficient connections per worker
  • Oversubscribing workers beyond cores
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard