Free tools Windows power users keep installed
One-click scans. No signup required.
The fastest way to improve Drupal on a VPS is to measure first, then fix the layer that is actually limiting the site. Start by separating anonymous cached requests from uncached and authenticated traffic; record response-time percentiles, cache status, PHP-FPM saturation, database latency, memory pressure, storage I/O and network use. Then keep Drupal’s production caches enabled, run a supported PHP release with OPcache, and tune PHP-FPM, the database and storage from observed demand rather than guesswork. Redis or Memcached can move cache-bin traffic away from the database, while a reverse proxy or CDN reduces origin delivery for shareable anonymous responses. These tools solve different bottlenecks, so adding all of them without testing can increase complexity without making the site faster.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
1. Establish a useful performance baseline
Do not begin by changing php.ini, adding Redis or resizing the VPS. Drupal response time varies with cache state, sessions, cache contexts, invalidation and the amount of work performed by modules and database queries. A single synthetic homepage test can hide the real bottleneck.
As an Amazon Associate I earn from qualifying purchases.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Record the environment
- Drupal core version and enabled modules, including the active theme.
- PHP version, PHP extensions, PHP-FPM version and configuration.
- Web server and proxy arrangement, such as Nginx alone, Nginx with a reverse proxy, or a CDN in front of the VPS.
- Database engine and version, database location, storage type and available memory.
- VPS CPU, RAM, swap, disk and network limits.
- Traffic pattern: anonymous versus logged-in users, peak concurrency, geographic distribution and whether traffic arrives in bursts.
- Cache state and test method, including the tool, URL, request count, warm-up period and time of day.
Measure the metrics that explain waiting time
| Metric | Why it matters | Useful comparison |
|---|---|---|
| Median and tail response time | The median shows typical behavior; high percentiles reveal queueing and occasional slow requests. | Compare warm-cache and cold-cache runs for the same URL. |
| Time to first byte | Shows how long the browser waits for the origin to begin responding. | Compare cache HIT and MISS responses. |
| Drupal cache status | Indicates whether Internal Page Cache or Dynamic Page Cache served or varied the response. | Inspect response headers, including x-drupal-cache, on anonymous requests. |
| PHP-FPM saturation and queue time | Shows whether requests are waiting for an available worker. | Correlate slow periods with active workers and memory use. |
| Database latency and slow queries | Identifies expensive Views, entity queries, missing indexes and N+1 access patterns. | Compare query time during cached and uncached requests. |
| CPU, memory and swap | Distinguishes computation limits from memory contention and swapping. | Observe the VPS during a representative peak, not only at idle. |
| Disk I/O and network utilization | Reveals storage waits, database flush pressure and delivery limits. | Check origin traffic before and after introducing an edge cache. |
Use three request classes
- Anonymous, cached: request a public page after warming the cache. This estimates the experience most suitable for a CDN or reverse proxy.
- Anonymous, uncached: clear or bypass caches in a controlled test environment, or use a new cache key where appropriate. This exposes PHP and database work.
- Authenticated or personalized: test with a real session and representative permissions. These requests may vary by user, language, role or other cache contexts and cannot be judged by an anonymous page test.
Keep the URL set, request rate, concurrency, cache state and measurement tool constant while changing one setting at a time. Publish before-and-after values with those conditions; there is no authoritative, universal Drupal requests-per-second or latency figure for every VPS.
2. Verify the VPS platform and support status
Use supported software
Drupal’s web-server requirements guidance, updated 13 September 2026, advises checking the latest supported PHP version for the Drupal release in use. Patch Drupal core, contributed modules, PHP, the operating system and extensions on a maintenance schedule. Security updates are performance work as well: unsupported components can prevent upgrades, force old libraries and leave known defects in production.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Nginx is documented as a web server focused on high concurrency, performance and low memory use. That does not make it automatically faster than every alternative; the result still depends on PHP-FPM, database work, storage and cache hit rate.
Check file ownership and writable paths
The web user must be able to read the Drupal codebase and write sites/default/files, which stores uploads and generated assets. Incorrect permissions can cause failed image derivatives, repeated rebuild attempts and error responses that look like slowness. Grant only the access required by the web process; do not make the entire application tree world-writable.
Useful checks include php -v for the CLI runtime and your operating system’s service-status command for PHP-FPM. Confirm that the PHP version used by the web server matches the version reported by the CLI; distributions can install more than one PHP branch.
3. Configure Drupal’s production caches correctly
Keep Internal Page Cache and Dynamic Page Cache enabled
Drupal page requests perform calculations and database retrieval before producing output. Internal Page Cache and Dynamic Page Cache retain compatible final or intermediate results so later requests can reuse them. Drupal’s User Guide explains: “There are several ways that page load time can be sped up, including installing software on the server.” The guide page was updated 14 April 2025.
Disable development-only cache settings in production. Development caching and verbose Twig behavior are useful while building a site, but they deliberately reduce reuse and add overhead. After changing development settings, rebuild caches with your normal deployment procedure; with Drush installed, drush cr rebuilds Drupal caches from the application directory.
Set and verify cache headers
Choose a browser and proxy max-age that matches how quickly public content must appear after an edit. A longer lifetime lowers origin work but delays visibility when invalidation is incomplete. A shorter lifetime makes updates appear sooner but increases requests reaching Drupal. Do not choose a value without testing the publishing workflow.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Inspect headers with a command such as curl -I https://example.test/page against a staging or production URL you control. Check x-drupal-cache for HIT or MISS behavior and inspect any proxy or CDN cache headers. The first request after a purge may legitimately be a MISS; repeated equivalent anonymous requests should show reuse when the page is cacheable.
Respect cache contexts and invalidation
Personalized output must vary by every input that changes the result, such as user identity, permissions, language, device or session state. Drupal’s cache-context model prevents one visitor’s response from being shown to another when those contexts are declared correctly. Removing a context may increase reuse but can expose incorrect or private content, so treat it as a correctness change, not a performance shortcut.
Test invalidation after publishing, unpublishing, editing a menu, changing configuration and updating an image. Confirm that the changed page, listing pages and related feeds stop serving stale output while unrelated pages remain cached. Sessions and user-specific responses may bypass page caches by design.
4. Enable OPcache and size PHP-FPM from evidence
Why OPcache matters
PHP OPcache stores compiled bytecode in shared memory. Without it, PHP repeatedly parses and compiles Drupal files; with it, workers can execute already compiled code until the cache is invalidated. Size the OPcache memory from the observed code volume and monitor whether it fills. An undersized cache causes churn; an oversized cache reserves memory that could otherwise serve PHP workers or the database.
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 →Deployments must deliberately invalidate stale bytecode. Restart PHP-FPM or use the deployment method appropriate to your PHP version after changing code, and verify that the new release is executing. Avoid clearing OPcache on every request.
Choose a PHP-FPM worker count
PHP-FPM workers consume memory while handling requests. Set the process manager mode and worker limits from available RAM, measured concurrency and request duration. Leave headroom for the operating system, database, Redis or Memcached and filesystem cache. Too many workers create swapping and database contention; too few workers create a queue even when CPU and memory are available.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
- Measure the resident memory of an active PHP-FPM worker during representative traffic.
- Reserve memory for the database, operating system and any cache service.
- Estimate a safe worker ceiling from the remaining memory, then validate it under load.
- Watch queue time, worker saturation, swap activity and database latency after each change.
Do not copy a worker count from another VPS. A site with large modules, image processing or expensive Views can require substantially more memory per worker than a small, mostly cached site.
5. Decide whether Redis, Memcached, Varnish or a CDN solves your bottleneck
These components operate at different layers. OPcache accelerates PHP code execution; Redis and Memcached provide fast cache storage; Varnish and CDNs can serve shareable HTTP responses without reaching PHP. They are not interchangeable.
Recommended Free Tools
| Option | Best fit | Cacheability and invalidation | Operational considerations | Failure or visibility concern |
|---|---|---|---|---|
| Redis | Drupal cache bins when database-backed cache traffic is measurable. | Can store many bins centrally; invalidation must match Drupal’s tags and rebuild behavior. | Requires memory sizing, eviction policy monitoring, authentication and service maintenance. | An eviction storm or unavailable service can increase database and PHP work. |
| Memcached | Volatile, high-speed cache storage where simple key/value behavior is sufficient. | Entries can disappear; application correctness must not depend on permanence. | Simple operational model, but limited persistence and fewer inspection features than a durable datastore. | Misses can suddenly raise origin load; monitor hit rate and evictions. |
| Varnish or another reverse proxy | Public HTTP responses that are safe to share across visitors. | Requires accurate rules for cookies, authorization, cache contexts, purges and max-age. | Sits in front of the web server and needs header, purge and bypass observability. | A rule that caches private output is a security incident; an over-broad bypass removes the benefit. |
| CDN | Static assets and cacheable anonymous responses delivered close to visitors. | Edge invalidation and cache keys must reflect content changes and personalization boundaries. | Reduces origin bandwidth and geographic latency but adds DNS, TLS and vendor configuration. | Stale edge content or an origin fallback can be difficult to diagnose without headers and logs. |
When Redis or Memcached is appropriate
Add a network cache only after measuring database-backed cache traffic or database contention. Move appropriate cache bins, keep Drupal’s required bins available, and test cache rebuilds, invalidation and service restarts. Monitor hit rate, misses, memory use and evictions. Redis documentation warns that Drupal often keeps cache entries indefinitely by default; an excessively low TTL can discard useful entries and hurt performance. Set expiration deliberately for the bins and workload you have measured rather than applying one global, short lifetime.
When a reverse proxy or CDN is appropriate
Drupal’s scalability guidance describes a CDN as an edge cache that offloads delivery to dedicated edge locations and identifies Varnish as a frequently used reverse proxy. Use either for responses that are safe to share. Strip or bypass caching for authenticated requests, responses containing private data, session-bound pages and any response whose cache contexts are not represented in the edge key. Confirm that purge or tag invalidation reaches every layer after content changes.
6. Reduce PHP and database work before buying more CPU
Find expensive application paths
Profile slow Views, entity queries, contributed modules and custom code. Look for repeated queries inside loops, unbounded listings, expensive access checks and modules that run on every request. Remove unused modules and disable features that are not needed. Keep a record of the URL, code path, query count and wall time so a fix can be verified.
Add indexes only for demonstrated query plans
Use the database’s slow-query log and execution plans to identify a predicate or sort that scans too much data. Add an index only when the plan shows it can help, then measure write cost, index size and the new plan. Indexes consume storage and can slow inserts and updates; adding columns speculatively is not a performance strategy.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Balance database memory and storage
Fast storage reduces database and log waits, but storage cannot compensate for inefficient queries. Reserve enough memory for the database buffer pool while leaving headroom for PHP-FPM, Redis or Memcached and the operating system. Watch memory pressure and swap; a nominally larger cache can make the whole VPS slower if workers start swapping.
Reduce unnecessary cache variation
Every additional cache context creates more variants and lowers reuse. Review whether language, device, role or other contexts are genuinely required for each response. Keep contexts that protect correctness, and simplify only after confirming that output remains identical for every affected audience.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.7. Optimize assets and delivery
Aggregate and compress CSS and JavaScript
Enable Drupal’s CSS and JavaScript aggregation in production and serve compressed responses through the web server or edge layer. Clear and rebuild caches after changing aggregation settings. Check the generated asset URLs, compression headers and browser cache behavior rather than assuming that an enabled checkbox changed every response.
Generate responsive images
Define image styles for the display sizes your theme actually uses. Serve an appropriately sized derivative instead of a full-resolution original, use modern image formats where the browser and processing stack support them, and lazy-load media below the fold. Ensure the web user can write sites/default/files so derivatives can be generated and reused.
Separate static and dynamic delivery
Let a CDN or reverse proxy handle cacheable images, CSS, JavaScript and anonymous HTML when the cache rules are correct. Keep authenticated HTML and other private responses on a path with explicit bypass behavior. Compare origin bandwidth and request counts before and after the change; the objective is less work at the VPS, not merely another layer of headers.
8. Validate each change and keep a rollback path
- Capture the baseline for all three request classes and save the configuration used.
- Change one layer, such as OPcache, a cache backend, a PHP-FPM limit or an asset setting.
- Warm the relevant caches, then repeat the same warm and cold tests.
- Inspect cache headers, origin request volume, PHP-FPM queueing, database latency, error rates, memory pressure and disk I/O.
- Test publishing, login, logout, permission changes, language variants, image generation and cache rebuilds.
- Keep the previous configuration and a documented reversal command or file change until the new result is stable.
Monitoring is part of Drupal performance planning, not an optional final step. Alert on rising tail latency, PHP-FPM saturation, database queue time, memory pressure, swap, disk latency, cache evictions, origin traffic and application errors. A change that improves one synthetic page while increasing authenticated latency or causing stale content is not an improvement.
Best Value
9. Troubleshoot by symptom
Anonymous pages are slow but authenticated pages are normal
Check whether the anonymous request is missing Internal Page Cache or Dynamic Page Cache, whether a cookie is forcing a bypass, and whether a reverse proxy or CDN is not storing the response. Inspect x-drupal-cache and edge headers, then test a second request with the same URL and headers.
All requests become slow during peaks
Look for PHP-FPM queueing, worker memory growth, swap and database connection saturation. Increasing workers can worsen the incident if RAM is already exhausted. Reduce expensive application work or increase capacity only after identifying which resource is queued.
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 minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Cache misses suddenly increase after adding Redis or Memcached
Check service memory, evictions, network errors, key namespaces and the bins selected for migration. Verify that TTLs are not aggressively expiring entries and that Drupal invalidation is reaching the backend. Temporarily restore the prior backend if the service is destabilizing production, then reintroduce one bin at a time.
New content does not appear
Trace invalidation through Drupal, the reverse proxy and the CDN. Purge the affected URL or tag according to your deployment process, then confirm that a fresh origin response contains the edit before allowing the edge to cache it again. Do not solve stale content by globally disabling every cache; correct the invalidation or cache-key rule.
Images fail or pages show repeated derivative generation
Verify permissions on sites/default/files, available disk space and the image-processing extension. A read-only files directory can turn every image request into an error or repeated attempt, increasing both response time and log volume.
10. A practical order of operations
For most Drupal VPS deployments, the lowest-risk sequence is:
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsQuick Recap
- Document versions, traffic, cache state and representative metrics.
- Patch Drupal, PHP, the operating system and extensions; remove development caching and debug behavior from production.
- Verify Internal Page Cache, Dynamic Page Cache, cache headers and invalidation.
- Enable and size OPcache, then measure PHP-FPM workers and queueing.
- Profile slow queries and code paths; fix N+1 queries and add only justified indexes.
- Enable aggregation, compression, responsive images and lazy loading.
- Add Redis or Memcached if cache-bin traffic is a measured database bottleneck.
- Add a CDN or reverse proxy for shareable anonymous responses and static assets, with explicit private-content bypass rules.
- Repeat warm/cold and anonymous/authenticated tests, publish the results and retain rollback instructions.
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.




