How to Diagnose Disk I/O Pressure on a Linux VPS
Connect slow requests to actual storage activity and separate background contention from application access patterns.
Storage problems usually arrive as application symptoms: slow database commits, delayed uploads, or jobs that finish much later than expected. A throughput number alone cannot explain them. Many small synchronous writes can be painful even when megabytes per second look modest. Diagnose disk I/O by matching the customer's waiting time to the type and timing of storage work.
Identify the affected path and device
Determine where the application stores its data and which filesystem serves that path. A database, container volume, and log directory may share the same underlying guest disk. Note any network filesystem or external storage dependency separately. Check that capacity and inode exhaustion are not the immediate cause. A write failure caused by a full filesystem is different from slow completion on a filesystem with room remaining, even when both appear in the application as a storage incident.
Collect interval measurements
If the sysstat tools are installed, iostat -xz 1 5 shows extended device statistics over repeated intervals. Interpret latency, request rates, and queue observations together; the initial report normally covers time since boot. The iostat manual defines these fields and explains limitations of utilization values on devices that serve work in parallel. Do not apply one universal percentage threshold to every virtual device or storage design.
Look for a competing workload
Place backups, database maintenance, exports, and deployments on the same timeline as the slowdown. For example, a customer upload endpoint may become slow only while a large archive job reads the same filesystem and writes a compressed output nearby. That is a useful candidate for rescheduling or rate limiting. Verify the job's actual progress and resource use before changing it. If slow requests continue after the batch finishes, the evidence points toward another source of waiting or an additional bottleneck.
Test access patterns through the application
Use a controlled request or representative query to compare before and after behavior. A sequential file-copy test does not reproduce a database's synchronous commit pattern. Likewise, a random-I/O benchmark run on a live production volume can worsen the service while answering the wrong question. Prefer an isolated test environment when generating load, with explicit limits on duration and data written. Never point a write benchmark at a raw device containing production data. Keep the test small enough that rollback and cleanup are straightforward.
Choose the remedy supported by the observation
Potential changes include reducing unnecessary writes, improving a query, batching work safely, adjusting backup timing, or separating competing application responsibilities. Each has a tradeoff that should be measured. LayerOne VPS disks use Enterprise SAS SSD unless a product specifies otherwise; a media label alone does not promise a particular workload latency. If you need platform assistance, provide UTC timestamps, device observations, the affected operation, and whether the issue persists without scheduled guest jobs. Exclude customer records and secrets from the evidence.
Use LayerOne's help center for support and service controls. When changing capacity, consider the full workload using the VPS plan guide. A convincing diagnosis explains which operation waited, when it waited, and what changed its completion time.