{"id":1074,"date":"2026-09-07T22:41:56","date_gmt":"2026-09-07T22:41:56","guid":{"rendered":"https:\/\/virtualserversvps.com\/blog\/?p=1074"},"modified":"2026-09-07T22:41:56","modified_gmt":"2026-09-07T22:41:56","slug":"vps-storage-io-tuning-filesystem-scheduler","status":"publish","type":"post","link":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/","title":{"rendered":"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Storage I\/O is the most common bottleneck for database workloads on a VPS. CPU and RAM are abundant on modern virtual servers, but the virtualized storage layer often introduces latency and throughput limits. Tuning the filesystem mount options, I\/O scheduler, and kernel parameters that control write behavior can improve database throughput by 20\u201350% on the same hardware. This article covers the tuning options that matter for MySQL, PostgreSQL, and Redis running on a VPS.<\/p>\n\n<h2 class=\"wp-block-heading\">Understanding Virtualized Storage on a VPS<\/h2>\n\n<p class=\"wp-block-paragraph\">Unlike bare-metal servers where you control the physical disk, a VPS has a virtual block device backed by the hypervisor&#8217;s storage subsystem. The hypervisor may be running on NVMe SSDs, but the virtualization layer adds latency and can introduce I\/O contention from neighboring VPS instances. The tuning parameters you control are at the guest OS level \u2014 the filesystem, mount options, and I\/O scheduler.<\/p>\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Storage Type<\/th><th>Typical Latency<\/th><th>Typical IOPS<\/th><th>Throughput<\/th><th>Best For<\/th><\/tr><\/thead><tbody><tr><td>HDD-backed VPS<\/td><td>5\u201310 ms<\/td><td>100\u2013500<\/td><td>50\u2013150 MB\/s<\/td><td>Archival, low-traffic<\/td><\/tr><tr><td>SSD-backed VPS<\/td><td>0.5\u20132 ms<\/td><td>3,000\u201310,000<\/td><td>200\u2013500 MB\/s<\/td><td>Most workloads<\/td><\/tr><tr><td>NVMe-backed VPS<\/td><td>0.1\u20130.5 ms<\/td><td>10,000\u2013100,000<\/td><td>500\u20133,000 MB\/s<\/td><td>Databases, high-traffic<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<h2 class=\"wp-block-heading\">Measure Your Baseline I\/O Performance<\/h2>\n\n<p class=\"wp-block-paragraph\">Before tuning, measure your current I\/O performance with fio (Flexible I\/O Tester):<\/p>\n\n<pre class=\"wp-block-code\"><code># Install fio\nsudo apt install fio -y\n\n# Random read IOPS (simulates database index lookups)\nfio --name=random-read \\\n    --ioengine=libaio --direct=1 --bs=4k \\\n    --rw=randread --numjobs=4 --runtime=30 \\\n    --time_based --group_reporting \\\n    --filename=\/tmp\/fio-test\n\n# Random write IOPS (simulates database writes)\nfio --name=random-write \\\n    --ioengine=libaio --direct=1 --bs=4k \\\n    --rw=randwrite --numjobs=4 --runtime=30 \\\n    --time_based --group_reporting \\\n    --filename=\/tmp\/fio-test\n\n# Sequential throughput (simulates backups and large queries)\nfio --name=sequential-read \\\n    --ioengine=libaio --direct=1 --bs=1M \\\n    --rw=read --numjobs=1 --runtime=30 \\\n    --time_based --group_reporting \\\n    --filename=\/tmp\/fio-test\n\nrm \/tmp\/fio-test<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">Record your baseline IOPS and throughput. After tuning, rerun these benchmarks to measure the improvement.<\/p>\n\n<h2 class=\"wp-block-heading\">Filesystem Mount Options<\/h2>\n\n<p class=\"wp-block-paragraph\">The mount options you pass to the filesystem driver control how data is written to disk. For database workloads, the default options are suboptimal. Here are the recommended mount options for ext4 (the most common VPS filesystem):<\/p>\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Option<\/th><th>Effect<\/th><th>Database Impact<\/th><\/tr><\/thead><tbody><tr><td><code>noatime<\/code><\/td><td>Disables access time updates on files<\/td><td>Eliminates write operations on every file read. Reduces I\/O by 10\u201315% for read-heavy workloads.<\/td><\/tr><tr><td><code>nodiratime<\/code><\/td><td>Disables access time updates on directories<\/td><td>Reduced but less impactful than <code>noatime<\/code> (implied by <code>noatime<\/code> on modern kernels).<\/td><\/tr><tr><td><code>discard<\/code><\/td><td>Enables TRIM\/discard for SSD<\/td><td>Maintains SSD write performance over time. Use <code>discard<\/code> for continuous TRIM or set up a weekly fstrim cron job.<\/td><\/tr><tr><td><code>data=writeback<\/code><\/td><td>Journal data mode (writeback)<\/td><td>Faster than <code>ordered<\/code> (default) but risks data corruption on crash. Only use if you have a UPS or are on a reliable VPS provider.<\/td><\/tr><tr><td><code>barrier=0<\/code><\/td><td>Disables write barriers<\/td><td>Faster but risks data loss on power failure. For database servers, keep barriers enabled (<code>barrier=1<\/code>) unless you use a battery-backed RAID controller.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Apply mount options in <code>\/etc\/fstab<\/code>:<\/p>\n\n<pre class=\"wp-block-code\"><code># \/etc\/fstab entry for database partition\nUUID=your-uuid  \/var\/lib\/mysql  ext4  defaults,noatime,discard  0  2<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">Remount to apply without rebooting:<\/p>\n\n<pre class=\"wp-block-code\"><code>sudo mount -o remount,noatime \/var\/lib\/mysql<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">I\/O Scheduler Selection<\/h2>\n\n<p class=\"wp-block-paragraph\">The I\/O scheduler determines the order in which disk read\/write requests are serviced. The kernel offers multiple schedulers, each optimized for different workloads:<\/p>\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Scheduler<\/th><th>Best For<\/th><th>Latency<\/th><th>Throughput<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td><code>none<\/code> (NVMe)<\/td><td>NVMe SSDs<\/td><td>Lowest<\/td><td>Highest<\/td><td>No scheduling overhead. NVMe devices have internal queues.<\/td><\/tr><tr><td><code>mq-deadline<\/code><\/td><td>SSD-backed VPS<\/td><td>Low<\/td><td>High<\/td><td>Multi-queue deadline scheduler. Good for SSDs with moderate I\/O.<\/td><\/tr><tr><td><code>bfq<\/code><\/td><td>HDD or mixed workloads<\/td><td>Medium<\/td><td>Medium<\/td><td>Budget Fair Queueing. Good for interactive workloads on rotational disks.<\/td><\/tr><tr><td><code>kyber<\/code><\/td><td>Latency-sensitive (SSD)<\/td><td>Low<\/td><td>High<\/td><td>Designed for fast devices. Good for databases on SSDs.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Check the current scheduler and available options:<\/p>\n\n<pre class=\"wp-block-code\"><code># Check current scheduler for your block device\ncat \/sys\/block\/sda\/queue\/scheduler\n# Output: [mq-deadline] none\n\n# List available schedulers (the one in brackets is active)\ncat \/sys\/block\/sda\/queue\/scheduler\n# Output: [mq-deadline] kyber none<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">Change the scheduler (temporary, resets on reboot):<\/p>\n\n<pre class=\"wp-block-code\"><code># For NVMe: use none\nsudo bash -c 'echo none &gt; \/sys\/block\/nvme0n1\/queue\/scheduler'\n\n# For SSD: use kyber or mq-deadline\nsudo bash -c 'echo kyber &gt; \/sys\/block\/sda\/queue\/scheduler'\n\n# For HDD: use bfq\nsudo bash -c 'echo bfq &gt; \/sys\/block\/sda\/queue\/scheduler'<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">Make permanent by adding to GRUB (add <code>elevator=kyber<\/code> to <code>GRUB_CMDLINE_LINUX<\/code> in <code>\/etc\/default\/grub<\/code>):<\/p>\n\n<pre class=\"wp-block-code\"><code># \/etc\/default\/grub\nGRUB_CMDLINE_LINUX=\"elevator=kyber\"\n\n# Update GRUB and reboot\nsudo update-grub\nsudo reboot<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">Read-Ahead Tuning<\/h2>\n\n<p class=\"wp-block-paragraph\">The kernel reads ahead extra data from disk when it detects sequential access patterns. For databases, the default read-ahead value (usually 128 KB) is often too high for random-access workloads and too low for sequential scans. Tune it per block device:<\/p>\n\n<pre class=\"wp-block-code\"><code># Check current read-ahead value\nsudo blockdev --getra \/dev\/sda\n# Output: 256 (sectors) = 128 KB\n\n# For random-access database workloads (OLTP): reduce to 8\u201316 KB\nsudo blockdev --setra 16 \/dev\/sda\n\n# For sequential workloads (backups, analytics): increase to 512\u20132048 KB\nsudo blockdev --setra 1024 \/dev\/sda<\/code><\/pre>\n\n<p class=\"wp-block-paragraph\">Make permanent with a udev rule at <code>\/etc\/udev\/rules.d\/99-block-readahead.rules<\/code>:<\/p>\n\n<pre class=\"wp-block-code\"><code>ACTION==\"add|change\", KERNEL==\"sda\", ATTR{bdi\/read_ahead_kb}=\"8\"<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">Database-Specific I\/O Tuning<\/h2>\n\n<h3 class=\"wp-block-heading\">MySQL\/MariaDB: InnoDB I\/O Configuration<\/h3>\n\n<pre class=\"wp-block-code\"><code># \/etc\/mysql\/mariadb.conf.d\/50-server.cnf\n[mysqld]\n# Use O_DIRECT to avoid double buffering (page cache + buffer pool)\ninnodb_flush_method = O_DIRECT\n\n# I\/O capacity: set to your measured IOPS\ninnodb_io_capacity = 2000\ninnodb_io_capacity_max = 4000\n\n# Write I\/O threads\ninnodb_write_io_threads = 4\ninnodb_read_io_threads = 4\n\n# Adaptive flushing: adjust based on workload\n# ON for SSD, OFF for HDD (to avoid excessive seeking)\ninnodb_adaptive_flushing = ON\n\n# Use native AIO (asynchronous I\/O) on Linux\ninnodb_use_native_aio = ON<\/code><\/pre>\n\n<h3 class=\"wp-block-heading\">PostgreSQL: WAL and Checkpoint Tuning<\/h3>\n\n<pre class=\"wp-block-code\"><code># postgresql.conf\n# WAL configuration\nwal_level = replica\nmax_wal_size = 2GB\nmin_wal_size = 256MB\n\n# Checkpoint tuning (reduce I\/O spikes)\ncheckpoint_timeout = 15min\ncheckpoint_completion_target = 0.9\n\n# Effective I\/O concurrency\n# SSDs can handle higher concurrency\n# HDD: 2, SSD: 200, NVMe: 1000\neffective_io_concurrency = 200\n\n# Random page cost (lower = planner prefers index scans)\n# SSD: 1.1, NVMe: 1.0, HDD: 4.0\nrandom_page_cost = 1.1\n\n# Synchronous commit (off for performance, on for durability)\nsynchronous_commit = off<\/code><\/pre>\n\n<h3 class=\"wp-block-heading\">Redis: Persistence Configuration<\/h3>\n\n<pre class=\"wp-block-code\"><code># redis.conf\n# AOF (Append-Only File) with fsync every second\nappendonly yes\nappendfsync everysec\n\n# Disable RDB snapshots on low-memory VPS to avoid fork overhead\nsave \"\"\n\n# Use AOF rewrite to compact the AOF file\n# Redis automatically rewrites when AOF file grows 100% beyond last rewrite\nauto-aof-rewrite-percentage 100\nauto-aof-rewrite-min-size 64mb<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">Kernel Parameters for I\/O<\/h2>\n\n<p class=\"wp-block-paragraph\">Add these to <code>\/etc\/sysctl.d\/99-vps-io.conf<\/code>:<\/p>\n\n<pre class=\"wp-block-code\"><code># \/etc\/sysctl.d\/99-vps-io.conf\n# Reduce dirty page ratio (flush data to disk more frequently)\n# This prevents large I\/O spikes during database checkpoints\nvm.dirty_background_ratio = 5\nvm.dirty_ratio = 10\n\n# Dirty expire time (centiseconds)\nvm.dirty_expire_centisecs = 3000\nvm.dirty_writeback_centisecs = 500\n\n# Swappiness (keep database pages in RAM)\nvm.swappiness = 10\n\n# Overcommit: allow applications to allocate memory (default for databases)\nvm.overcommit_memory = 1\n\n# VFS cache pressure (keep inode cache for database files)\nvm.vfs_cache_pressure = 50<\/code><\/pre>\n\n<pre class=\"wp-block-code\"><code>sudo sysctl -p \/etc\/sysctl.d\/99-vps-io.conf<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">Benchmarking After Tuning<\/h2>\n\n<p class=\"wp-block-paragraph\">After applying all changes, rerun the fio benchmarks from Step 1. You should see:<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>15\u201325% improvement in random read IOPS<\/strong> (from <code>noatime<\/code> and scheduler tuning)<\/li><li><strong>10\u201320% improvement in random write IOPS<\/strong> (from dirty page tuning and <code>O_DIRECT<\/code>)<\/li><li><strong>Lower latency variance<\/strong> (from I\/O scheduler selection)<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">If you do not see measurable improvement, the bottleneck is likely at the hypervisor level, not the guest OS. In that case, the only fix is to upgrade to a VPS plan with higher guaranteed IOPS or to an NVMe-backed plan.<\/p>\n\n<h2 class=\"wp-block-heading\">When to Use a Separate Storage Volume<\/h2>\n\n<p class=\"wp-block-paragraph\">On VPS providers that offer block storage volumes (DigitalOcean Volumes, Linode Block Storage, AWS EBS), mounting a separate volume for database data isolates I\/O from the OS disk. This prevents log rotation and apt updates from competing with database I\/O. The same mount options and scheduler tuning apply to the block volume.<\/p>\n\n<p class=\"wp-block-paragraph\">When selecting a VPS for your database workload, <a href=\"https:\/\/virtualserversvps.com\/#providers\">compare providers that offer NVMe storage and guaranteed IOPS<\/a> \u2014 the difference between 3,000 IOPS (SSD) and 50,000 IOPS (NVMe) is the difference between a sluggish application and a responsive one. For more database performance guidance, <a href=\"https:\/\/virtualserversvps.com\/blog\/category\/performance-optimization\/\">explore our performance optimization guides<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Storage I\/O is the most common bottleneck for database workloads on a VPS. CPU and RAM are abundant on modern virtual servers, but the virtualized storage layer often introduces latency&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1074","post","type-post","status-publish","format-standard","hentry","category-performance-optimization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads - Virtual Servers VPS Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads\" \/>\n<meta property=\"og:description\" content=\"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual Servers VPS Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-07T22:41:56+00:00\" \/>\n<meta name=\"author\" content=\"Virtual-Servers-Vps-Editor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Virtual-Servers-Vps-Editor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/\",\"name\":\"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads - Virtual Servers VPS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\"},\"datePublished\":\"2026-09-07T22:41:56+00:00\",\"author\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\"},\"breadcrumb\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtualserversvps.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/\",\"name\":\"Virtual Servers VPS Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtualserversvps.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\",\"name\":\"Virtual-Servers-Vps-Editor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g\",\"caption\":\"Virtual-Servers-Vps-Editor\"},\"sameAs\":[\"https:\/\/virtualserversvps.com\/blog\"],\"url\":\"https:\/\/virtualserversvps.com\/blog\/author\/virtualserversvps\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads - Virtual Servers VPS Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/","og_locale":"en_US","og_type":"article","og_title":"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads","og_description":"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads","og_url":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/","og_site_name":"Virtual Servers VPS Blog","article_published_time":"2026-09-07T22:41:56+00:00","author":"Virtual-Servers-Vps-Editor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Virtual-Servers-Vps-Editor","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/","url":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/","name":"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads - Virtual Servers VPS Blog","isPartOf":{"@id":"https:\/\/virtualserversvps.com\/blog\/#website"},"datePublished":"2026-09-07T22:41:56+00:00","author":{"@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0"},"breadcrumb":{"@id":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/virtualserversvps.com\/blog\/vps-storage-io-tuning-filesystem-scheduler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtualserversvps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"VPS Storage I\/O Tuning: Optimizing Filesystem Mount Options and I\/O Schedulers for Database Workloads"}]},{"@type":"WebSite","@id":"https:\/\/virtualserversvps.com\/blog\/#website","url":"https:\/\/virtualserversvps.com\/blog\/","name":"Virtual Servers VPS Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtualserversvps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0","name":"Virtual-Servers-Vps-Editor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d820b15f1cd028e97610d9adf536df7be5cb6423869967037d468d5355fa003f?s=96&d=mm&r=g","caption":"Virtual-Servers-Vps-Editor"},"sameAs":["https:\/\/virtualserversvps.com\/blog"],"url":"https:\/\/virtualserversvps.com\/blog\/author\/virtualserversvps\/"}]}},"_links":{"self":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/1074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/comments?post=1074"}],"version-history":[{"count":1,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/1074\/revisions"}],"predecessor-version":[{"id":1075,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/1074\/revisions\/1075"}],"wp:attachment":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/media?parent=1074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/categories?post=1074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/tags?post=1074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}