Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →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
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
To benchmark a Linux VPS with ApacheBench, install the package that provides ab, test an endpoint you control with explicit request and concurrency counts, repeat at gradually higher concurrency, and interpret throughput together with latency and error counts. A useful starting command is ab -n 1000 -c 10 https://your-vps.example/. Record the endpoint, VPS resources, web-server settings, network conditions, date, and complete terminal output so that later runs remain comparable.
What ApacheBench measures—and what it does not
ApacheBench, invoked as ab, is Apache’s command-line tool for benchmarking an HTTP server. It generates a controlled stream of HTTP requests and reports timing, completion, errors, and transfer statistics. Its most direct use is estimating how a particular endpoint behaves under a defined request load.
The result is not a universal speed rating for a VPS. A response generated from memory, a database-heavy page, a static file, and an authenticated application route exercise different resources. Network distance, TLS, caching, keep-alive behavior, web-server configuration, and background activity also change the measurement. Apache’s documentation specifically warns that the default single request is usually not representative, so every meaningful run should set -n and -c explicitly.
ab is a focused HTTP/1.x request generator. It does not reproduce a complete browser session, JavaScript execution, asset waterfall, cookie journey, cache mix, or every pattern produced by real users. Use it for controlled endpoint checks, then combine the result with host and application monitoring before making a capacity decision.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Before you run a test
Confirm authorization and ownership
Benchmark only a VPS and endpoint that you own or are expressly authorized to test. A burst of connections can resemble abusive traffic, and a third-party host may have denial-of-service protections or acceptable-use rules that prohibit load generation.
Choose one controlled endpoint
Write down the exact URL and the conditions under which it is served:
Recommended Free Tools
- HTTP method, such as the default GET used by a simple URL test.
- Response size and content type.
- Whether authentication, cookies, or special headers are required.
- Whether the request uses HTTP or HTTPS and therefore includes TLS work.
- Whether a reverse proxy, cache, CDN, or application server is involved.
- Whether persistent connections are part of the production traffic pattern.
Keep the endpoint and those conditions fixed when comparing concurrency levels. Changing the page, login state, cache state, or protocol mid-series makes the numbers answer different questions.
Capture the test context
Save the complete terminal output for every run. Alongside it, record the VPS size, available CPU and memory, storage activity, network path, web-server configuration, date, and concurrency. Note deployments, backups, cron jobs, database maintenance, and other activity that could affect the service. A number without these conditions cannot be reproduced or fairly compared.
Install ApacheBench on Linux
The executable is supplied by a distribution package; the package name varies. Debian- and Ubuntu-family systems commonly use apache2-utils, while distributions in the Red Hat family commonly use httpd-tools. Use your distribution’s package manager to install the package, then verify that the command is available:
ab -V
The version output confirms that the executable is installed. If the shell reports that ab is missing, install the package appropriate to that distribution rather than downloading an unrelated binary. Run the benchmark from a machine whose network path is representative of the clients you are trying to understand; the generator’s own CPU, network, or location can otherwise become the limiting factor.
Run a defensible baseline
Use explicit request and concurrency counts
Start with a modest, repeatable run:
ab -n 1000 -c 10 https://your-vps.example/
-n 1000 asks for 1,000 total requests. -c 10 allows up to 10 requests to be active concurrently. The total request count gives the run enough observations to be more useful than a single request, while the conservative concurrency limits the initial burst. Choose values appropriate to the endpoint and your authorization; the command is a pattern, not a guarantee that those values are safe for every VPS.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Repeat at several conservative levels
Keep the URL and total request count fixed while testing a sequence such as 1, 5, 10, and 25 concurrent clients:
ab -n 1000 -c 1 https://your-vps.example/
ab -n 1000 -c 5 https://your-vps.example/
ab -n 1000 -c 10 https://your-vps.example/
ab -n 1000 -c 25 https://your-vps.example/
Watch the service between runs. Increase concurrency only while the VPS remains healthy and the test remains authorized. Stop when error counts rise, latency becomes unacceptable for the service, resource pressure threatens other workloads, or the test begins to trigger protective controls. There is no universally safe concurrency value: a small VPS, expensive application route, or strict connection policy can fail at a lower level than a larger or simpler setup.
Keep the workload consistent
Do not compare a keep-alive run with a non-keep-alive run as if they were the same workload. Likewise, do not compare an HTTP endpoint with its HTTPS version without labeling the protocol difference. Warm and cold cache states, authenticated and anonymous requests, and different response sizes each deserve separate series.
Free tools Windows power users keep installed
One-click scans. No signup required.
ApacheBench options that change the question
| Option | Meaning | When to use it |
|---|---|---|
-n requests |
Total number of requests to perform. | Always set it explicitly for a repeatable run; the one-request default is normally not representative. |
-c concurrency |
Number of concurrent clients requested. | Set a conservative starting level and raise it in steps while observing service health. |
-k |
Enable HTTP keep-alive. | Use when persistent connections are part of the traffic pattern you want to model. |
-s seconds |
Bound the socket wait time. | Prevent a stalled request from waiting indefinitely; choose a timeout that matches the test objective. |
-e filename.csv |
Write percentile timing data to a CSV file. | Use when tail latency matters, not just the average shown in the terminal. |
-R milliseconds |
Insert a delay between connection starts in versions that support it. | Ramp the connection burst when starting all clients at once could overload protection mechanisms. |
Option availability can depend on the installed ApacheBench version. Consult the help output on the machine before relying on a version-specific switch:
ab -h
How to read ApacheBench output
Read the report as a set of related measurements rather than selecting the largest throughput number.
| Field | What it tells you | How to use it |
|---|---|---|
| Concurrency Level | The number of concurrent clients requested for the run. | Check that it matches the planned workload, especially when connection ramping is enabled. |
| Complete requests | Requests that completed successfully according to ApacheBench. | Compare with the requested total to see whether the run finished cleanly. |
| Failed requests | Requests ApacheBench considered failures. | Treat any increase as a correctness or capacity warning, not as successful throughput. |
| Non-2xx responses | Responses outside the HTTP 200 series. | Separate application or routing responses from transport-level failures. |
| Requests per second | Requests divided by the total elapsed time. | Use as throughput for this exact endpoint and test condition, not as a provider-wide VPS score. |
| Time per request | Average request time reported by ApacheBench. | Use it to follow average latency as concurrency changes; inspect percentiles for slow outliers. |
| Transfer rate | Bytes received per unit of time. | Interpret alongside response size and network path; it is not an application processing rate. |
Check correctness before celebrating throughput
A run that reports more requests per second while failed or non-2xx responses rise is not a capacity win. First establish that the endpoint returned the expected status and that the completed-request count is appropriate. A fast stream of error pages can otherwise look better than a slower stream of valid application responses.
Understand the average time-per-request display
ApacheBench reports an average. Averages can hide a small group of requests that take far longer than the rest. Use the average to compare broad changes between controlled runs, but use percentile output when deciding whether the slowest portion of traffic is acceptable.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Measure tail latency with percentile CSV output
Add -e when you need a distribution rather than one average:
ab -n 1000 -c 10 -e baseline.csv https://your-vps.example/
Apache documents that this CSV contains timings for each percentage from 1% through 100%. The higher-percentile rows show how response time changes for the slower requests. Preserve the CSV with the terminal output and test conditions; a percentile value has meaning only when its endpoint, concurrency, protocol, and date are known.
Compare percentile curves across concurrency levels. If the median remains stable but upper percentiles expand sharply, the service is developing a queue or an intermittent bottleneck even if the average and requests-per-second figures still look acceptable. If both central and upper percentiles increase, the endpoint is slowing more broadly. These patterns identify when to investigate application work, storage, CPU, memory pressure, or connection limits rather than simply adding more clients.
Test keep-alive separately
Persistent connections avoid repeatedly opening a connection for each request. If that resembles production traffic, include -k:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
ab -n 1000 -c 10 -k https://your-vps.example/
Label this as a keep-alive series and compare it with a non-keep-alive series only as two different scenarios. Keep-alive can change connection setup work, server connection accounting, and the way the network path is exercised. It does not make an endpoint inherently faster under every workload.
When the real client pattern mixes persistent and short-lived connections, run separate measurements for each pattern instead of averaging them into one unexplained number.
Use timeouts and connection ramping carefully
Bound a socket wait
Set -s SECONDS when the test needs a defined upper bound for a socket wait:
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
ab -n 1000 -c 10 -s 30 https://your-vps.example/
The timeout is a test control, not proof that the application’s own timeout policy is correct. Document the value because changing it can alter whether slow requests appear as completed or failed.
Ramp connection starts with supported versions
Apache warns that starting too many connections simultaneously can trigger denial-of-service protection. On versions that support it, -R MILLISECONDS inserts a delay between connection starts:
ab -n 1000 -c 25 -R 100 https://your-vps.example/
Ramping changes the shape of the load. Apache cautions that the run may finish before the requested concurrency is fully reached, so inspect the reported achieved concurrency and do not assume that -c alone describes the load that actually occurred. Record the ramp value with the result.
A practical, low-risk benchmark sequence
- Define the question. Decide whether you are checking a static response, an application route, keep-alive behavior, TLS overhead, or a timeout boundary. One series should answer one clearly defined question.
- Verify authorization. Confirm that the VPS, URL, and chosen load are yours to test and that any upstream service permits the traffic.
- Install and verify
ab. Install the distribution package that supplies it and runab -V. - Document the endpoint. Record URL, method, response size, authentication state, protocol, cache conditions, and keep-alive expectation.
- Check the host first. Note VPS CPU and memory pressure, storage activity, network path, web-server configuration, and unrelated jobs.
- Run a conservative baseline. Use explicit
-nand-c, such asab -n 1000 -c 10 URL. - Repeat at lower and higher conservative concurrency. Keep request count and endpoint fixed; use a sequence such as 1, 5, 10, and 25 only while the service remains healthy.
- Add the relevant controls. Use
-kfor a keep-alive scenario,-sfor a bounded wait, and-efor percentile timings. Use-Ronly when supported and when a gentler connection ramp is needed. - Save everything. Keep terminal output, CSV files, commands, host context, and timestamps together.
- Interpret the complete report. Check complete, failed, and non-2xx requests before comparing requests per second, average time, transfer rate, and percentile latency.
- Stop at the first unsafe boundary. Do not continue increasing load merely to find a larger number if errors, protective responses, or harmful resource pressure appear.
Troubleshoot misleading or failed runs
Only one request was measured
Re-run with explicit -n and -c. The default single request is generally not representative and is too small a sample for a useful capacity comparison.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallFailed requests increase
Stop increasing concurrency. Check the endpoint and server logs, confirm that the test client is authorized, and compare the failure count with the requested total. A higher requests-per-second figure does not compensate for failed work.
Non-2xx responses appear
Determine whether the endpoint intentionally returns a redirect, authentication response, rate-limit response, or application error under load. Record the status behavior rather than treating every response as a successful page delivery.
Latency changes between otherwise identical runs
Look for background jobs, cache state, storage activity, CPU or memory pressure, network-path changes, deployments, and altered authentication or keep-alive settings. Repeat only after documenting and, where possible, controlling the changed condition.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
The achieved concurrency is lower than requested
If connection ramping is enabled, the run may finish before full concurrency is reached. Inspect the report, retain the ramp setting, and avoid labeling the result as a full-load test when the requested level was never achieved.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →The command waits too long
Use a documented -s socket wait bound appropriate to the question, then distinguish timeout failures from ordinary application responses. A timeout setting can change the result, so do not compare it silently with an unbounded run.
The VPS becomes unhealthy
Terminate the run, allow the service to recover, and review resource and server logs. Lower concurrency, introduce a supported connection ramp, shorten the series, or move the generator to a more representative host. Do not continue a test that threatens production traffic.
Report results so another person can reproduce them
For each run, create a record containing:
- Date and time, timezone, and test-client location.
- VPS size and observed CPU, memory, storage, and network conditions.
- Exact URL, method, response size, authentication state, protocol, and cache state.
- Complete command, including
-n,-c,-k,-s,-e, or-Rvalues. - Concurrency level requested and, when relevant, the achieved level reported by the tool.
- Complete requests, failed requests, non-2xx responses, requests per second, average time per request, and transfer rate.
- Percentile CSV filename and the interpretation of its slower percentiles.
- Web-server, proxy, cache, and application configuration that could affect the response.
Use the record to compare a service with itself under controlled changes. Do not turn one endpoint’s result into a promise about every application, region, VPS size, or provider. The authoritative Apache documentation publishes no universal VPS requests-per-second figure; the test conditions are part of the result.
Know when ApacheBench is the wrong tool
ab is appropriate for a focused HTTP/1.x request stream and a controlled endpoint. Choose a different or additional test when the question depends on browser rendering, JavaScript, multiple dependent requests, user login flows, varied URLs, realistic cache hit ratios, HTTP/2 or HTTP/3 behavior, WebSockets, or a coordinated multi-client geography. Even then, retain the same discipline: define the workload, obtain authorization, increase pressure gradually, monitor the host and application, and judge correctness with latency and errors rather than throughput alone.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsWhat a useful conclusion looks like
A defensible conclusion states the endpoint, protocol, request count, concurrency, keep-alive and timeout settings, observed success and error counts, throughput, average and tail latency, and host conditions. It says what changed as concurrency rose and where the service stopped meeting its chosen health criteria. It does not claim that one ApacheBench run is a permanent capacity limit or a universal VPS ranking.
Quick Recap
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.

