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

Fix Apache crashes and MaxRequestWorkers alerts by treating them as two related but distinct problems: first capture the failure, identify the active MPM, and check memory and upstream latency; then tune concurrency only to the level the host can sustain. A message that Apache has reached MaxRequestWorkers means no worker process or thread was immediately available for another request. It does not, by itself, prove that increasing the limit is safe or appropriate.

What the MaxRequestWorkers message actually means

Apache logs a message such as server reached MaxRequestWorkers setting, consider raising MaxRequestWorkers when all request-serving capacity allowed by the active multi-processing module (MPM) is occupied. New requests may wait in a queue, time out, or be rejected depending on the rest of the configuration and the workload.

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

The Apache Software Foundation defines MaxRequestWorkers as the maximum number of simultaneous requests that will be served. In the prefork MPM, the number corresponds to child processes. In the worker and event MPMs, it is the total number of request-serving threads. The directive is therefore a concurrency ceiling, not a performance target.

  • A low ceiling can make otherwise healthy requests wait during a burst.
  • A high ceiling can let too many processes or threads compete for RAM and CPU.
  • Slow database, PHP, proxy, or network operations can occupy workers long enough to trigger the message even when request arrival is not unusually high.
  • A crash can occur at the same time as the message without the limit being the cause. A child process exiting with a segmentation fault, for example, requires a separate investigation.

Apache’s current 2.5 module documentation (Apache Software Foundation, 2026) documents a prefork default of 256. For worker and event, it documents a relationship of 16 ServerLimit times 25 ThreadsPerChild, producing 400 workers. Those are Apache documentation defaults, not promises about an Ubuntu release or your installed build; inspect the active configuration before drawing conclusions.

#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.

Use this triage sequence before changing a limit

  1. Capture the event. Record the time, URL or application operation affected, HTTP status, and whether the symptom was a crash, a timeout, or only a warning.
  2. Check service state and the boot journal. Run the commands in the next section while the evidence is still available.
  3. Read Apache’s error log. It is normally /var/log/apache2/error.log, unless the configured ErrorLog points elsewhere.
  4. Identify the loaded MPM and modules. A limit has a different meaning in prefork than in worker or event.
  5. Check host pressure. Compare memory, swap, CPU, process or thread counts, request latency, and upstream wait time at the incident timestamp.
  6. Validate any proposed change. Run a configuration test, reload when possible, and keep the previous file available for rollback.

Do not begin by copying a larger value from another server. Two machines with the same traffic can require very different limits if one loads a memory-heavy PHP integration, proxy module, or monitoring agent.

Capture startup, runtime, and kernel evidence

The Apache documentation says the server error log is the first place to look when a problem occurs while starting or running the server. On Ubuntu, collect that log together with systemd and kernel records so you can correlate one failure across all layers.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo systemctl status apache2 --no-pager
sudo journalctl -u apache2 -b --no-pager
sudo tail -n 200 /var/log/apache2/error.log

If ErrorLog is customized, obtain its path from the active virtual-host and server configuration rather than assuming the default file. Preserve timestamps; a child-process exit in the Apache log should be compared with the same minute in the service and kernel journals.

Search the relevant window for signatures that distinguish exhaustion from a code or module fault:

sudo grep -E -i 'AH00161|MaxRequestWorkers|segfault|child pid|out of memory|OOM|signal|proxy_fcgi' /var/log/apache2/error.log

Also inspect kernel messages for the Linux out-of-memory killer and other process failures:

sudo journalctl -k -b --no-pager

Look for terms such as Out of memory, oom-kill, a killed Apache or PHP process, or a kernel-reported segmentation fault. If the machine uses a separate log destination, use that destination instead. A clean Apache log with an OOM event in the kernel journal points toward host-wide memory pressure; a repeated Apache segfault with no memory pressure points more strongly toward a module, library, or integration defect.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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

Identify the active MPM before interpreting any setting

Unix Apache builds use one of three MPMs: prefork, worker, or event. Exactly one MPM may be loaded. Ubuntu installations often use event on current releases, but the enabled module and compiled defaults on your host are authoritative.

apache2ctl -M
apache2ctl -V

In the module list, look for one of mpm_prefork_module, mpm_worker_module, or mpm_event_module. On Ubuntu, inspect /etc/apache2/mods-enabled/ and its MPM symlink to see which configuration file is enabled. Loading two MPMs produces a startup configuration error, so do not enable a second one as an experiment.

MPM What the worker count represents Important tuning constraint Operational concern
prefork One simultaneous request per child process Values above 256 need a corresponding ServerLimit ceiling Each child is a process and can consume substantial private memory; process growth can exhaust RAM quickly
worker Total simultaneous request-serving threads across child processes MaxRequestWorkers should align with ThreadsPerChild; invalid values are rounded down Account for per-process memory, thread stacks, and module behavior
event Total request-serving threads, with connection handling optimized for keep-alive traffic Use the same ThreadsPerChild relationship and multiple-of-that value rule Thread safety and the behavior of loaded modules still determine whether the model is suitable

Changing from prefork to a threaded MPM is not a generic crash fix. Check PHP and every loaded or integrated module for thread-safety, document the old symlinks and settings, and plan a rollback before making the switch. Make the change in a maintenance window if the current service is unstable.

Validate the configuration without making an outage worse

Before a reload or restart, test syntax and module availability:

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.
sudo apache2ctl configtest

A successful result should report Syntax OK. Fix duplicate directives, missing include files, invalid module references, and MPM conflicts before applying a limit change. Keep a copy of the last known-good configuration or use version control so you can restore it quickly.

When the process model does not need to be replaced, apply a valid change with a graceful reload:

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 apache2

Use a full restart only when the module or process-model change requires it, or when a controlled restart is part of recovering stuck processes. Immediately check service state and the error log after either operation:

sudo systemctl status apache2 --no-pager
sudo journalctl -u apache2 -n 100 --no-pager

If the test fails, do not repeatedly restart Apache. Restore the previous configuration, run configtest again, and only then attempt another reload.

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

Decide whether the ceiling is the symptom or the cause

A repeated limit message is actionable, but the correct action depends on what occupies the workers. Measure during a representative busy period rather than relying on a single quiet inspection.

  • Request latency: Long-running requests consume slots longer. Break out application, database, file, and upstream wait time if your access logs or tracing system provides it.
  • Keep-alive behavior: Connections that remain open can affect available capacity, particularly when clients or intermediaries hold connections while sending data slowly.
  • Upstream waits: proxy_fcgi, PHP-FPM, database calls, and other backends can leave Apache workers occupied while the actual bottleneck is elsewhere.
  • Memory and swap: Watch resident memory, swap use, major paging, and the point at which latency rises. A larger limit that pushes the host into swap is not a successful fix.
  • CPU and run queue: If CPU is already saturated, adding concurrency usually increases contention rather than throughput.
  • Process and thread counts: Compare the observed number with the MPM’s configured process and thread ceilings.
  • HTTP errors: Track 5xx responses and upstream failure rates before and after each change.
Evidence at the incident time More likely interpretation First response
Workers are full, RAM and swap have headroom, and requests are short The ceiling may be limiting burst concurrency Increase in a small, measured step after calculating a safe memory budget
Workers are full while upstream requests are slow Apache is waiting on the application or proxy backend Investigate backend capacity, slow queries, timeouts, and connection pools before raising the ceiling
Workers are full and the host is swapping or reports OOM kills The configured concurrency is beyond host capacity Reduce concurrency or memory per request and fix the memory-hungry component
Child processes exit with segfault or a signal A crash or binary/module fault may coexist with capacity exhaustion Correlate kernel and core-dump evidence and isolate the changed or implicated module
Apache fails immediately after editing a limit Syntax, MPM, or ServerLimit relationship is invalid Restore the prior file, run configtest, and correct the MPM-specific constraint

Estimate a safe limit from observed memory

For prefork, estimate the resident memory of an Apache child after the real modules and application integration are loaded. Reserve memory for the operating system, databases, PHP-FPM, proxy backends, logging, monitoring, and short-lived bursts. A practical starting calculation is:

safe children ≈ memory reserved for Apache children ÷ observed resident memory per child

Use measurements from the affected host and workload, not a generic blog formula. Shared pages can make simple process-size arithmetic misleading, while copy-on-write changes the footprint as children handle requests. Recheck resident memory after traffic has warmed caches and exercised the largest responses.

For worker and event, account for both the memory of each child process and thread-stack and module behavior. The process count may be much lower than the request count, but the total number of active threads still determines concurrency. Leave headroom for the kernel and for non-Apache services; a setting that fits only under an idle snapshot is unsafe.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Increase one variable at a time, record the old and new values, and observe memory, swap, latency, and 5xx responses through a representative traffic period. If the host begins swapping or the kernel reports OOM activity, lower concurrency and address the component consuming memory instead of continuing to raise MaxRequestWorkers.

Apply MPM-aware settings

When the active MPM is prefork

In prefork, MaxRequestWorkers is the maximum number of child processes that can serve requests at once. The Apache 2.5 documentation lists 256 as its default. That value is not an Ubuntu guarantee and may be overridden by the enabled configuration.

Values above 256 require a suitable ServerLimit. Treat both directives as a pair, and raise ServerLimit only as far as the measured memory budget requires. Apache warns that unnecessarily high limits allocate additional shared memory and that values beyond system capacity can prevent startup or destabilize the host.

# Example structure; choose values from measurements, not from this snippet
<IfModule mpm_prefork_module>
    ServerLimit        300
    MaxRequestWorkers  300
</IfModule>

The numbers in this example illustrate the relationship only; they are not a recommendation for your server. If your measured safe process count is below the current setting, lowering the ceiling may be the correct repair.

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

When the active MPM is worker or event

In the threaded MPMs, MaxRequestWorkers is the total request-serving thread ceiling. It should be at least ThreadsPerChild and normally an integer multiple of it. Apache rounds an invalid value down and logs a warning, so a value that looks close to your target may silently provide less capacity than expected.

# Keep MaxRequestWorkers aligned with ThreadsPerChild
<IfModule mpm_event_module>
    ThreadsPerChild     25
    MaxRequestWorkers  400
</IfModule>

Again, the values shown mirror the documented relationship and are not an Ubuntu tuning prescription. Select a process count, thread count, and total concurrency that fit measured memory and CPU headroom. Check the active file before editing because distribution defaults and local overrides vary.

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.

Do not use ServerLimit as a blanket cure

ServerLimit is a hard ceiling on the number of server processes that the MPM can create. Raising it does not make requests faster and does not solve slow upstream calls. Apache explicitly warns that setting both ServerLimit and MaxRequestWorkers above what the system can handle may keep Apache from starting or make the system unstable.

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

Investigate crashes independently from capacity alerts

Search for segfault, signal, repeated child-PID exits, abrupt restarts, and module names in the Apache and kernel logs. A limit message can be the last visible event before a crash simply because the server was busy; that timing does not establish causation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Record the exact child PID, signal, timestamp, virtual host, and request pattern when available.
  2. Compare journalctl -k output with Apache’s error log for the same timestamp.
  3. Check core-dump records if the host is configured to retain them, for example with coredumpctl list.
  4. Compare the loaded module list with recent package, PHP, TLS, proxy, protocol, or configuration changes.
  5. In a controlled maintenance window, isolate a recently changed third-party module or integration and retest with a reversible configuration.

Do not disable security or protocol features broadly on a production server just to make a crash disappear. Change one component at a time, preserve the rollback state, and distinguish a module fault from memory exhaustion by checking whether the kernel killed the process and whether resident memory was already at the host limit.

Check upstream services and connection behavior

Apache can reach its concurrency ceiling while the real bottleneck is an application server or backend. For configurations using proxy_fcgi, inspect PHP-FPM pool limits, slow requests, backend connection availability, and application logs at the same timestamps. For other proxies, check backend health, queue depth, timeout events, and connection pools.

Review keep-alive and timeout behavior when many workers appear occupied by idle or very slow clients. The goal is not to turn every timeout down blindly: an aggressive timeout can terminate legitimate long requests, while a generous one can let stalled work consume scarce slots. Choose values from observed request and upstream behavior, then verify that the change reduces occupied-worker time without increasing 5xx responses.

If backend saturation is confirmed, increasing Apache’s ceiling can amplify the surge sent to that backend. Remediate the slow service, query, pool, or network path first, or cap concurrency at the layer that protects the constrained resource.

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

Compare the three common repair strategies

Strategy Use it when Risks and checks Rollback
Increase MaxRequestWorkers Workers are exhausted, requests are healthy, and measured RAM and CPU headroom remains Can trigger swapping, OOM kills, longer queues, or backend overload; confirm MPM-specific rules Restore the previous directive and reload after configtest
Change MPM The current process model is incompatible with the workload or module set and a tested alternative is available Requires module thread-safety checks, configuration changes, and a maintenance window; exactly one MPM may be loaded Re-enable the documented prior MPM symlink and configuration
Remediate upstream or request behavior Workers are waiting on PHP, databases, proxies, slow clients, or long application operations Requires application or backend evidence; changing Apache alone can hide the bottleneck Revert the backend or timeout change independently and compare latency and error rate

Make the comparison using the same evidence for every option: MPM compatibility, memory per process or thread, peak concurrency and queueing, keep-alive and upstream wait time, module thread-safety, crash signatures, rollback complexity, measured latency, and 5xx rate.

Verify the repair under representative traffic

  1. Run sudo apache2ctl configtest and require a successful result.
  2. Reload Apache when possible, then confirm sudo systemctl status apache2 --no-pager reports a healthy service.
  3. Watch /var/log/apache2/error.log and the systemd journal for repeated MaxRequestWorkers, child exits, startup warnings, or module errors.
  4. Observe RAM, swap, CPU, process and thread counts, request latency, upstream health, and 5xx responses through a representative busy period.
  5. Compare the measurements with the pre-change window. A lower warning count is not enough if latency, swapping, or errors increased.
  6. Document the active MPM, each limit, the evidence used to select it, the observation window, and the exact rollback command.

If the warning returns only during a known burst and the host remains healthy, continue capacity planning rather than making an unmeasured permanent increase. If crashes continue, revert the limit change and focus on the correlated signal, module, or upstream service.

Prevent the next incident

  • Keep the active MPM and limit settings in version control with the Ubuntu package and Apache version noted.
  • Alert on sustained worker saturation, swap growth, OOM events, rising latency, and 5xx responses together rather than on the Apache warning alone.
  • Record whether a limit is a documented default, a local override, or a value selected from measured memory data.
  • Review module and PHP changes as possible crash triggers, especially after a package upgrade or process-model change.
  • Test reload and rollback procedures before a high-traffic event.
  • Recalculate capacity after adding a database, proxy, monitoring agent, TLS feature, or memory-intensive application component.

Commands reference

Purpose Command
Service state sudo systemctl status apache2 --no-pager
Apache journal for the current boot sudo journalctl -u apache2 -b --no-pager
Loaded modules and MPM apache2ctl -M
Build and compile-time details apache2ctl -V
Configuration validation sudo apache2ctl configtest
Graceful application of a valid change sudo systemctl reload apache2
Kernel and OOM evidence sudo journalctl -k -b --no-pager
Core-dump inventory, when enabled coredumpctl list