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

High Apache CPU usage is a symptom, not a diagnosis. First prove which Apache worker is busy, identify the request, client, application job, or attack behind it, and fix that source. Only then set MaxRequestWorkers from measured memory and concurrency; there is no safe universal value for every 1 GB VPS.

What 100% Apache CPU usually means

Apache can consume an entire vCPU because one request is doing expensive application work, many ordinary requests are arriving at once, a client is retrying or crawling aggressively, or a background task is generating traffic. The process name alone does not prove that Apache is the root cause: Apache may be waiting on a database, invoking an application runtime, serving a very large response, or handling an attack.

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

On a small VPS, CPU and memory are coupled. Raising concurrency can make more requests run at the same time, which may increase CPU demand and cause memory pressure. Once the kernel starts swapping, response times rise sharply and CPU charts can look worse even though the original request rate has not changed. Treat CPU, resident memory, swap activity, request rate, and load average as one incident.

  • User CPU: time spent executing Apache, modules, or application code.
  • System CPU: kernel work such as network, filesystem, encryption, or process scheduling.
  • Steal time: CPU withheld by the virtual-machine host; this points to contention outside Apache.
  • Load average: runnable and uninterruptible tasks, not a percentage. A high value with heavy I/O wait can indicate storage or database pressure rather than a CPU-bound request.

Capture a short incident window before changing settings. Record timestamps, load average, CPU split, resident memory, swap-in and swap-out activity, request rate, and any deployment, backup, import, or cron event that started at the same time. This baseline lets you tell whether a change removed work or merely moved the bottleneck.

#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 incident runbook before tuning

  1. Confirm the hot process. Run top (or an equivalent process viewer), sort by CPU with the viewer’s CPU-sort command (in top, press Shift+P), and note the Apache parent plus child or worker PIDs that remain hot for several samples.
  2. Record the active MPM and modules. Run apachectl -M (or the module-list command supplied by your distribution) and identify whether mpm_prefork, mpm_worker, or mpm_event is loaded. Save the output so a rollback is possible.
  3. Expose status only to administrators. Enable mod_status in a tightly restricted location. Do not publish the status page to the public Internet.
  4. Sample status repeatedly during the spike. Refresh the human-readable page and /server-status?auto several times. Match hot PIDs, request lines, client addresses, worker state, and elapsed activity. A request can finish between samples, so one snapshot is not proof.
  5. Correlate timestamps. Compare the URI and client from status with access and error logs, application logs, database timing, and scheduled-job logs. Look for one endpoint or client that dominates the window.
  6. Apply the narrowest fix. Repair an expensive query, cache or pre-render a page, block or rate-limit an abusive client, stop a retry loop, or move heavy processing to a queue. Do not increase the global worker limit to hide a bad route.
  7. Re-sample before changing global limits. Verify that CPU, latency, memory, and swap improve after the cause-specific fix.
  8. Recalculate concurrency from measurements. If the VPS still needs more simultaneous work, calculate a memory-based ceiling for MaxRequestWorkers and leave headroom for the operating system and other services.
  9. Change one setting at a time. Reload safely, watch the same metrics, and keep the previous configuration ready for immediate rollback.

Prove which Apache request is hot

Find persistent Apache PIDs

In top, note whether the parent process or individual children/threads consume CPU. A parent that is briefly busy while workers are idle is a different problem from several workers pegged continuously. Capture at least a few consecutive samples and include the process state and elapsed CPU time. If the top process is actually a database, PHP runtime, proxy, backup utility, or the hypervisor’s steal time, investigate that component instead of changing Apache.

Restrict and enable mod_status

Apache’s status page is a starting point for finding requests or clients that consume CPU or memory. A minimal restricted configuration is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
<Location "/server-status">
    SetHandler server-status
    Require local
</Location>

Use an equivalent authenticated or administrator-IP restriction when the administrator is not logged in locally. If you need full request and client detail for the incident, enable:

ExtendedStatus On

Place the directive in the appropriate global/server configuration for your installation, validate the configuration, and reload. Remove or tighten temporary exposure after the incident. The status output can reveal worker state, client, request line, and elapsed activity, but it is not a permanent access-control system.

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

Sample both status views

Open /server-status for the readable scoreboard and /server-status?auto for machine-readable fields. Refresh repeatedly while CPU is high. Match a hot PID to a request that remains in a busy state, then write down the URI, query string where safe, client address, worker state, and how long it has been active. Short requests may never appear in one view; several samples reveal repetition and frequency.

If status shows many different requests from one address, suspect a crawler, brute-force attempt, or retrying client. If one URI appears across many clients, inspect that route’s application and database work. If the scoreboard is full of idle keep-alive entries, connection policy may be consuming capacity even though the requests themselves are inexpensive.

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

Correlate status with logs and the application

Use the timestamps from status samples to search the access log and error log, then follow the same request into application and database logs. Apache log locations and names vary by distribution, so use the ErrorLog and CustomLog directives in the active configuration rather than assuming a path.

  • One slow URI: inspect database plans, external API calls, template rendering, image manipulation, archive extraction, and unbounded result sets.
  • One client or narrow address range: check request rate, authentication failures, unusual user agents, and repeated retries. Rate-limit or block at the narrowest layer that can enforce it.
  • Many 5xx responses: examine application exceptions, upstream timeouts, and restart loops. A failing dependency can make Apache workers spin or wait.
  • Large or repeated downloads: check response size, compression cost, range requests, and whether static files are being generated dynamically.
  • Periodic spikes: compare timestamps with cron, queue consumers, backups, imports, certificate jobs, and monitoring probes.
  • No matching request: check for TLS handshakes, filesystem or network pressure, module bugs, logging overhead, or a process that was renamed and is not the Apache worker you assumed.

When possible, include a process identifier in the access-log format so a log line can be tied directly to a worker. Keep the existing format documented before changing it, and avoid logging secrets or full sensitive query strings.

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.

Fix the source of the load before raising concurrency

Repair or cache expensive application work

Profile the route that status and logs identify. Add a missing database index, remove an N+1 query pattern, constrain pagination, cache a result that does not change per request, or pre-render a page. Move image conversion, report generation, archive creation, and other long tasks to a queue so the HTTP request can return quickly. Verify the change with request latency, request rate, CPU, and database timing; a faster endpoint can increase total throughput and expose a different bottleneck.

Control abusive or accidental clients

Use authentication controls, a web-application firewall or reverse proxy already present in your stack, server-level rate limits, or a temporary network block. Prefer a narrow rule for the offending path or client instead of a global denial. Confirm that legitimate crawlers, health checks, and users are not being blocked. Watch whether CPU falls and whether rejected requests stop consuming application resources.

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

Stop loops and scheduled collisions

A client retry loop, webhook delivered repeatedly, failed queue acknowledgement, or cron job launched more often than it finishes can create sustained Apache work. Disable the duplicate trigger, add backoff and idempotency, or move the job outside the request path. Record the exact time of the fix and verify that the next scheduled interval does not recreate the spike.

Separate static delivery from dynamic work

Static assets should not invoke an application route for every request. Serve files directly, set appropriate cache headers, and use a front-end proxy or cache when it removes repeated dynamic rendering. These changes reduce CPU only when the original requests were doing avoidable work; measure before and after rather than assuming that a cache is effective.

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.

Set MaxRequestWorkers from RAM, not a copied number

MaxRequestWorkers is a safety limit on simultaneous requests. In the prefork MPM it caps child processes. In worker and event it is the total number of serving threads. Requests above the limit normally wait in the listen backlog. The setting protects the machine, but it does not make an expensive request cheaper.

Apache’s prefork guidance is explicit: the limit must be high enough for expected simultaneous requests while leaving enough physical RAM for all processes. On a memory-limited VPS, lowering it can prevent thrashing and swapping. A lower limit may increase queueing, but a higher limit can let enough workers exist to exhaust RAM and destabilize the whole server.

A practical calculation

  1. Measure the resident memory of representative Apache workers while the real workload is running. Use several workers and use a sustained or high-percentile value, not the smallest process you can find.
  2. Subtract RAM reserved for the kernel, filesystem cache, TLS overhead, database, application runtime, monitoring, and burst headroom. On a 1 GB VPS, that remainder may be far smaller than the advertised memory.
  3. Divide the RAM available to Apache by the measured worker or thread cost.
  4. Round down and choose a conservative value. Recheck it during the busiest expected period and after deployments.

The formula is an operational heuristic, not an Apache-published universal rule:

safe worker ceiling = (RAM available to Apache) / (measured worker or thread cost)

For illustration only, if measurement shows 420 MB genuinely available to Apache and a representative worker costs 35 MB under load, the arithmetic ceiling is 12 workers. An administrator would normally select a lower starting value to preserve burst and measurement error headroom, then validate latency and swap activity. The numbers in this example are not a recommendation for your VPS.

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.

Keep related limits consistent

For worker and event MPMs, keep MaxRequestWorkers consistent with ThreadsPerChild and the available ServerLimit. Apache warns that settings beyond what the system can handle can prevent startup or make the system unstable. Validate syntax before reloading, and never assume that increasing ServerLimit is harmless: it can allocate capacity your VPS cannot support.

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

Watch memory and swap as closely as CPU after every change. If swap rises, request latency worsens, or the OOM killer appears in system logs, lower concurrency and remove the underlying workload before attempting another increase.

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

Choose the MPM deliberately

MPM Execution model Memory and connection behavior Compatibility decision
prefork Separate child processes Can require more memory per concurrent request; MaxRequestWorkers is the child-process cap. Often retained for older non-thread-safe modules. Confirm every loaded module and application component before switching.
worker Processes containing serving threads Apache’s performance guidance describes a smaller memory footprint than prefork; MaxRequestWorkers counts serving threads. Use only when the application and all modules are thread-safe and tested under production-like traffic.
event Threaded MPM optimized for connection handling Can hand waiting-connection work to supporting threads so main threads can serve new requests; the serving-thread cap still matters. Requires compatible modules and application behavior. Test keep-alive, upgraded connections, streaming, and long polls.

Confirm the active MPM with the module-list command before editing configuration. Switching MPMs is not a CPU shortcut: an incompatible module can fail to load, change request behavior, or prevent Apache from starting. Stage the change, validate configuration, reload during a controlled window, and keep the previous MPM configuration available for rollback.

Review connection and static-content settings

KeepAlive and KeepAliveTimeout

Persistent connections reduce repeated handshakes, but idle connections occupy slots and memory. Apache’s performance guide documents a five-second default for KeepAliveTimeout; your distribution or configuration may differ. Compare the timeout with your traffic pattern: asset-heavy pages may benefit from reuse, while many slow or idle clients can hold capacity unnecessarily. Change the timeout only after status shows that idle connections are part of the pressure.

Do not disable keep-alive reflexively. Measure connection reuse, active versus idle workers, request latency, and CPU before and after. A shorter timeout can free capacity but may increase connection setup and TLS CPU.

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

Static files, sendfile, and caching

Serve static assets through the simplest path available and cache immutable files so Apache does not repeatedly render or transform them. Enable sendfile when the operating system and storage path support it, then verify the result; unusual filesystems, network mounts, or container layers can make direct file transfer unsuitable. If a front-end proxy removes repeated dynamic work, measure both Apache CPU and proxy memory so the load is not merely moved.

Reload safely and verify the result

  1. Save the current configuration and the exact module-list output.
  2. Check syntax with your distribution’s Apache configuration-test command before reloading.
  3. Apply one change: a route fix, rate limit, worker limit, MPM setting, keep-alive value, or static-delivery adjustment.
  4. Reload rather than abruptly stopping the service when your deployment method supports a graceful reload.
  5. Watch CPU user/system/steal time, resident memory, swap, load average, request rate, error rate, latency, and status-worker states for the same incident window.
  6. Compare with the baseline. Keep the change only if the identified problem improves without unacceptable queueing, errors, or memory pressure.
  7. Rollback immediately if configuration validation fails, workers cannot start, swap increases sharply, or application behavior changes unexpectedly.

Use time-series monitoring for longer incidents. A single low CPU reading after a reload can be misleading if the abusive client has paused or the scheduled job has ended. Confirm the result across normal traffic and the next expected burst.

How to interpret common symptoms

Observation Likely direction First action
Several workers execute the same URI and one client dominates Abusive, stuck, or retrying client Rate-limit or block that client/path, then inspect why it is retrying.
One URI is slow for every client Application or database cost Profile the route, fix the query, and cache or queue expensive work.
Many idle keep-alive entries and few active requests Connection occupancy Review keep-alive behavior and timeout against actual traffic.
CPU is moderate but swap and latency climb after increasing workers Concurrency exceeded RAM Lower MaxRequestWorkers, remove the expensive source, and restore memory headroom.
High steal time with no matching Apache request pattern Virtual-host contention Raise the issue with the VPS provider or move to a less-contended host; Apache tuning cannot create host CPU.
Spikes occur at exact intervals Cron, backup, import, or queue collision Match timestamps to scheduled jobs and move or throttle the work.

A compact maintenance checklist

  • Know the active MPM and loaded modules before changing worker settings.
  • Keep mod_status restricted to authenticated administrators.
  • Capture repeated status samples; requests are transient.
  • Correlate PID, URI, client, and timestamp with access, error, application, and database logs.
  • Fix the route, client, retry loop, scheduled job, or attack before raising concurrency.
  • Calculate MaxRequestWorkers from measured memory and leave RAM for every other service.
  • Keep worker, thread, and server limits internally consistent.
  • Change one variable at a time and retain a tested rollback.
  • Monitor swap and latency as carefully as CPU.
  • For teams unable to maintain continuous diagnostics, a managed Linux VPS monitoring or managed Apache service can provide alerting and operational assistance, but it does not replace identifying the request that is consuming resources.

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.