Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Start with worker_processes auto;. NGINX will try to create workers for the CPU capacity visible to the NGINX process, which is usually the right baseline in a modern VM or container. First check the CPUs visible inside that same runtime—not the host’s total—then verify performance under representative traffic. Use a fixed number only when measurements, CPU quotas, affinity rules, or an operational constraint show that it is better.

What “CPU cores” means to NGINX

NGINX uses a two-level process model. One master process reads the configuration, opens listening sockets, and manages worker lifecycles. Worker processes accept connections and perform request processing. The worker_processes directive controls how many workers NGINX starts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The important number is not necessarily the physical core count printed by a server inventory page. NGINX can use only the processing capacity exposed to its process. A virtual machine may be assigned fewer vCPUs than its host has cores. A container can be restricted by a CPU quota or a cpuset. An orchestrator can reserve or limit CPUs for a workload. Those limits define the CPU set that matters for worker sizing.

Hyper-threading and simultaneous multithreading also make “core” terminology ambiguous. Operating systems normally report logical processors, and automatic sizing works from the processors available to the process rather than attempting to distinguish physical cores from threads. Treat the reported effective CPU set as the starting capacity, then validate the result with real traffic.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

How to check the CPUs visible to NGINX

Run the check in the same operating-system environment where NGINX runs. A host-level command can overstate capacity when NGINX is inside a VM, container, cgroup, or cpuset.

Linux host or virtual machine

These commands provide progressively more detail:

nproc
nproc --all
getconf _NPROCESSORS_ONLN
lscpu
  • nproc is a useful first check of processing units available to the current process.
  • nproc --all shows all processors known to the operating system, which can be higher than the effective set after affinity or quota restrictions.
  • getconf _NPROCESSORS_ONLN reports processors currently online.
  • lscpu displays topology, including sockets, physical cores, logical CPUs, and NUMA information.

For a direct view of the process’s affinity mask, inspect the NGINX master process:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
pidof nginx
ps -o pid,psr,comm -p <master-pid>
taskset -cp <master-pid>

Replace <master-pid> with the master process ID. The affinity result tells you which logical CPUs the process may run on. A mask can make the effective set smaller than the machine-wide total.

Docker or another container runtime

Enter the running container and run the same checks there:

docker exec -it <container-name> nproc
docker exec -it <container-name> getconf _NPROCESSORS_ONLN

If the container has a CPU quota, inspect the limit as well as the processor count. On systems using cgroup v2, this file commonly contains the quota and period:

docker exec -it <container-name> cat /sys/fs/cgroup/cpu.max

A value such as max 100000 means no cgroup CPU quota is set in that file. A pair of numbers such as 200000 100000 represents an allowance of two CPUs’ worth of time, although the exact scheduling behavior still depends on the runtime and host. A cpuset restriction can impose a separate limit, so check the CPUs assigned to the container when the numbers do not agree.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Kubernetes pods

Run a processor check in the pod rather than on the Kubernetes node:

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
kubectl exec -it <pod-name> -- nproc
kubectl exec -it <pod-name> -- getconf _NPROCESSORS_ONLN

Review the pod’s CPU requests and limits at the same time. A node may expose dozens of CPUs while the pod is limited to a fraction of one CPU or pinned to a small set. Configure NGINX for what the pod can actually schedule, not for the node’s total.

Windows environments

If NGINX is running directly on Windows, PowerShell can show logical processors:

Get-CimInstance Win32_Processor | Select-Object NumberOfCores,NumberOfLogicalProcessors

When NGINX is running in WSL, a VM, or a container on Windows, run the Linux command inside that environment. Its CPU view can differ from the Windows host.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure worker_processes

Place the directive in the main (top-level) NGINX configuration, outside the events and http blocks:

worker_processes auto;

events {
    worker_connections 512;
}

The accepted syntax is worker_processes number | auto. The documented default is 1, so an unmodified installation may run one worker even on a multi-CPU system. The auto parameter is supported in NGINX versions 1.3.8 and 1.2.5 and later release lines that include it.

With auto, NGINX attempts to detect the CPU capacity available to the process and choose a worker count. It is a starting policy, not a promise that every worker will be busy or that throughput will scale linearly. NGINX documentation notes that the optimal value also depends on the number of CPU cores, the number of hard disk drives storing data, and the load pattern.

After editing the file, test and reload it:

nginx -t
nginx -s reload

Use the service manager on distributions that manage NGINX as a service, for example:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
sudo systemctl reload nginx

A reload starts the new worker generation while existing workers finish active requests. If the configuration test fails, correct the error before reloading; the old configuration remains in use until a valid reload succeeds.

Should the worker count equal the number of CPU cores?

Often, an explicit count near the effective CPU count is reasonable, and NGINX’s HTTPS guidance recommends several workers on multiprocessor systems, no fewer than the available CPU cores, with worker_processes auto; shown in its multi-core example. That guidance is a baseline rather than a universal performance law.

Choice What it does When it fits Risks or limits
worker_processes auto; Attempts to select workers from the CPU capacity visible to NGINX. Most VMs, containers, and general-purpose servers; environments whose CPU allocation can change. Automatic detection cannot compensate for a low CPU quota, an unsuitable file-descriptor limit, or a workload bottleneck elsewhere.
Explicit integer, such as worker_processes 4; Starts exactly the configured number of workers. Measurements show a stable optimum, or an orchestrator, licensing policy, or deployment standard requires a fixed count. Too few workers can leave CPU capacity unused; too many add scheduling and memory overhead without increasing useful work.
Default value 1 Runs one worker when no directive is configured. Small, low-traffic installations or compatibility testing. It can underuse a multi-CPU system, especially for concurrent TLS, proxy, or static-file traffic.

Do not multiply workers simply because a server reports more CPUs. Compare CPU utilization, request latency, throughput, queueing, and error rates before and after a change. A disk-heavy workload, slow upstream service, or restrictive connection limit may be the real bottleneck.

How many worker_connections do you need?

worker_connections sets the maximum simultaneous connections opened by one worker. Its documented default is 512. The limit includes connections to proxied upstream servers, not only client sockets, and it cannot exceed the process open-file limit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a rough planning ceiling, the configured worker count multiplied by worker_connections gives the sum of per-worker connection slots. It is not a guaranteed client count: a reverse-proxy request can consume one connection to the client and another to an upstream, keep-alive connections remain open, and operating-system file-descriptor limits can cap the result first.

Raise the value only after checking the open-file limit and the workload’s connection pattern:

ulimit -n
cat /proc/<master-pid>/limits | grep -i "open files"

Changing worker_processes without raising a restrictive descriptor limit does not create more usable connections. Conversely, increasing worker_connections consumes more potential descriptors and memory, so size it for measured concurrency rather than an arbitrary large number.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

A practical tuning procedure

  1. Measure the effective CPU set. Run nproc or the equivalent command inside the VM, container, or pod that runs NGINX. Record quotas and affinity masks when they apply.
  2. Set the baseline. Add worker_processes auto; at the top level. Keep the existing events block, or define worker_connections 512; explicitly so the starting value is clear.
  3. Validate syntax. Run nginx -t and fix every reported path, permission, or syntax error before attempting a reload.
  4. Reload safely. Use nginx -s reload or the appropriate service-manager reload command. Confirm that the new workers appear and that the master remains healthy.
  5. Apply representative load. Include the traffic mix that matters: static files, TLS handshakes, dynamic proxying, long-lived keep-alive connections, or disk-heavy responses. A short synthetic burst can produce a different answer from normal traffic.
  6. Observe the right signals. Compare CPU utilization per worker, latency percentiles, throughput, active connections, upstream timings, retries, and 4xx/5xx rates. Also watch memory and open-file usage.
  7. Change one variable at a time. If CPU is saturated and latency improves with a different count, test an explicit integer around the measured optimum. If workers are idle while another resource is constrained, adding workers will not solve the problem.
  8. Recheck after deployment changes. A new container limit, VM size, CPU pinning policy, TLS configuration, or upstream service can invalidate a previously optimal worker count.

When an explicit worker count is justified

Stable, measured performance

Choose an integer when controlled tests repeatedly show lower latency or higher throughput than auto and the CPU allocation is stable. Document the test conditions, because a count tuned for static files may not suit TLS termination or proxy-heavy traffic.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

CPU quotas and fractional allocations

A container limited to a fraction of a CPU should not be treated like a host with many logical processors. Automatic detection may follow the visible CPU set, but a quota can still throttle execution. Verify both the count and the quota before deciding that more workers are needed.

Operational or licensing constraints

An orchestrator, capacity policy, or software integration may require a fixed number of processes. In that case, set the mandated integer and validate connection, descriptor, and latency behavior under the actual limit.

Debugging and isolation

A temporary single-worker configuration can make troubleshooting easier by reducing process-level variation. It is a diagnostic choice, not evidence that one worker is optimal for production.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

CPU affinity: use it only deliberately

worker_cpu_affinity can bind workers to CPU sets represented by bitmasks. Workers are not bound to specific CPUs by default. The documented auto affinity mode is available on FreeBSD and Linux.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Affinity can help when you have a deliberate CPU-placement design, such as isolating NGINX from another latency-sensitive process. It can also hurt when it conflicts with a container’s cpuset or an orchestrator’s CPU assignment. If a process is already restricted to a small mask, adding an incompatible affinity map can leave workers competing on fewer CPUs than intended. Start without affinity, inspect the effective mask, and introduce binding only when measurements and the deployment design justify it.

Common symptoms and fixes

Only one worker appears on a multi-core machine

Check whether worker_processes is omitted or set to 1. Confirm the active configuration with nginx -T, then add worker_processes auto; or a measured integer and reload.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

More workers do not increase throughput

Inspect upstream response time, disk wait, network capacity, TLS cost, CPU quotas, and open-file limits. Worker count cannot remove a bottleneck outside request scheduling.

Connections stop increasing despite available CPU

Check worker_connections, the number of workers, and the master and worker open-file limits. Remember that proxied connections consume slots too. Raise limits in a coordinated change and verify memory usage.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

NGINX uses fewer CPUs than the host dashboard shows

Compare the host total with nproc inside the runtime, then inspect container or VM quotas and cpusets. The process’s effective CPU set, not the host inventory, is the relevant capacity.

Reload fails after editing the directive

Run nginx -t to identify the exact file and line. Ensure the directive is at the top level, uses an integer or auto, and is supported by the installed NGINX version. Do not force a reload until the test passes.

Recommended starting configuration

For a current multi-CPU installation, this is a conservative baseline:

worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;

events {
    worker_connections 512;
}

The paths are examples; retain the paths used by your distribution. Tune worker_connections and the open-file limit independently from the worker count, then measure under the traffic the server is expected to handle. Keep an explicit worker number only when the evidence or deployment requirements are stronger than the flexibility provided by auto.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.