{"id":658,"date":"2026-07-18T02:40:52","date_gmt":"2026-07-18T02:40:52","guid":{"rendered":"https:\/\/virtualserversvps.com\/blog\/?p=658"},"modified":"2026-09-25T22:04:10","modified_gmt":"2026-09-25T22:04:10","slug":"vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds","status":"publish","type":"post","link":"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/","title":{"rendered":"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Throughput numbers lie. A disk that reports 500 MB\/s sequential can still deliver 12 ms p99 write latency under a mixed read\/write database workload, and that tail latency is what your application actually feels. This guide is about measuring <strong>latency percentiles<\/strong>, not averages, and then fixing the four kernel-level causes that dominate VPS storage behaviour: queue depth, scheduler choice, cgroup throttling, and filesystem journaling.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Measure With Latency Reporting, Not Just Bandwidth<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most people run <code>fio<\/code> with a job description that only prints bandwidth. Force percentile reporting and mixed workloads. Save this as <code>io-latency.fio<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[global]\nioengine=libaio\ndirect=1\nruntime=60\ntime_based=1\nramp_time=5\ngroup_reporting=1\npercentile_list=50:90:99:99.9\nsize=2G\nfilename=\/mnt\/testfile\n\n[4k-randwrite]\nbs=4k\nrw=randwrite\niodepth=32\nnumjobs=4\n\n[4k-randread]\nbs=4k\nrw=randread\niodepth=32\nnumjobs=4\n\n[70-30-mixed]\nbs=16k\nrw=randrw\nrwmixread=70\niodepth=64\nnumjobs=2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Run it with <code>fio io-latency.fio --output-format=json &gt; fio.json<\/code> and read the <code>write.clat_ns.percentile<\/code> block. On a healthy KVM VPS with NVMe-backed storage you should see approximately:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Workload<\/th><th>p50<\/th><th>p99<\/th><th>p99.9<\/th><\/tr><\/thead><tbody><tr><td>4k randwrite, iodepth 32<\/td><td>80&ndash;150 &micro;s<\/td><td>&lt;600 &micro;s<\/td><td>&lt;2 ms<\/td><\/tr><tr><td>4k randread, iodepth 32<\/td><td>60&ndash;110 &micro;s<\/td><td>&lt;500 &micro;s<\/td><td>&lt;1.5 ms<\/td><\/tr><tr><td>16k 70\/30 mixed<\/td><td>150&ndash;300 &micro;s<\/td><td>&lt;1.2 ms<\/td><td>&lt;4 ms<\/td><\/tr><tr><td>Same test, throttled VPS<\/td><td>400 &micro;s<\/td><td>8&ndash;25 ms<\/td><td>40 ms+<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A p99 that is 20x the p50 is the signature of <em>throttling<\/em>, not slow media. If p50 looks fine and p99 explodes, the problem is upstream of the drive.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Find the Cause<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Queue depth: the iodepth trap<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">NVMe sustains high IOPS only when it has enough outstanding requests. A single-threaded, <code>iodepth=1<\/code> test measures round-trip latency, not device capability, and makes the platform look far worse than it is. Conversely, pushing <code>iodepth=256<\/code> onto a virtio-blk device with a 128-tag queue means requests queue in the guest kernel, inflating clat without ever reaching the host. Check the real queue limits before blaming the provider:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/sys\/block\/vda\/queue\/nr_requests\ncat \/sys\/block\/vda\/queue\/scheduler\ncat \/sys\/block\/vda\/queue\/rotational\nlsblk -d -o NAME,ROTA,SCHED,DISC-GRAN\n# virtio-blk exposes limited tags; virtio-scsi + io_uring scales better\nsudo lshw -class disk | grep -A2 \"logical name\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Scheduler: mq-deadline vs none vs kyber<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Since kernel 5.x, NVMe devices default to <code>none<\/code> and SATA SSDs often to <code>mq-deadline<\/code>. On a VPS the virtual block device may report itself as rotational, which silently applies scheduler overhead. Test all three and compare p99, not average throughput:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for s in none mq-deadline kyber bfq; do\n  echo $s | sudo tee \/sys\/block\/vda\/queue\/scheduler\n  fio --name=w --rw=randwrite --bs=4k --iodepth=32 --direct=1 \\\n      --size=1G --runtime=30 --time_based --filename=\/mnt\/testfile \\\n      --percentile_list=50:99:99.9 2>\/dev\/null | grep -E \"clat|iops\"\ndone<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Make it persistent in a udev rule rather than echoing at boot: <code>ACTION==\"add|change\", KERNEL==\"vda\", ATTR{queue\/scheduler}=\"none\"<\/code> in <code>\/etc\/udev\/rules.d\/60-io-scheduler.rules<\/code>. A related deep dive on the same trade-offs for kernel parameters is worth reading alongside this: <a href=\"https:\/\/virtualserversvps.com\/\">the performance tuning references at virtualserversvps.com<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">cgroup v2 io.max throttling<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is the most common hidden cause of p99 spikes on a VPS. Providers enforce disk quotas through <code>io.max<\/code> in the host cgroup, and when your burst budget is consumed, requests are delayed rather than rejected &mdash; producing multi-millisecond stalls with no obvious error. You cannot always read the host cgroup, but you can read pressure stall information, which correlates almost perfectly with provider throttling:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/proc\/pressure\/io\n# some avg10=0.22 avg60=0.18 avg300=0.12 total=8421331\n# full avg10=0.09 avg60=0.07 avg300=0.05 total=3119088\n\n# per-cgroup pressure, if delegated\ncat \/sys\/fs\/cgroup\/$(systemd-cgls --no-pager >\/dev\/null; echo system.slice)\/io.pressure 2>\/dev\/null\n\n# watch throttle events live\nsudo bpftrace -e 'tracepoint:block:block_rq_issue { @[args->rwbs] = count(); }'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A rising <code>full avg60<\/code> under steady load is the clearest evidence you have outgrown the plan&#8217;s IOPS allocation. That is a commercial problem, not a tuning problem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Filesystem and journal mode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On ext4, <code>data=ordered<\/code> is the safe default, but for a database volume that already performs its own crash recovery (PostgreSQL, MySQL with <code>innodb_flush_method=O_DIRECT<\/code>), <code>data=writeback<\/code> removes a large serialization point. Reducing journal commit frequency also collapses write amplification:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \/etc\/fstab options that matter\n\/dev\/vdb \/var\/lib\/mysql ext4 noatime,nodiratime,data=writeback,nobarrier 0 2\n\n# reduce commit interval (default 5s -> 60s on battery-backed or replicated storage)\nmount -o remount,commit=60 \/var\/lib\/mysql\n\n# XFS alternative: separate log device, larger allocation groups\nmkfs.xfs -f -l size=128m,version=2 -d agcount=8 \/dev\/vdb<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Measure the delta rather than trusting the theory: run the mixed 70\/30 fio job before and after each change and record p99. On a typical 4-vCPU VPS, switching a database volume from <code>data=ordered<\/code> with a 5-second commit to <code>writeback<\/code> with a 60-second commit reduces 16k mixed p99 from ~2.4 ms to ~0.9 ms. If you are evaluating whether managed platform defaults already do this for you, <a href=\"https:\/\/virtualserversvps.com\/\">compare managed and unmanaged offerings at virtualserversvps.com<\/a> before spending hours on hand tuning.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Confirm With Continuous Data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Single benchmarks are snapshots. Track latency continuously so you can distinguish a permanent ceiling from a noisy-neighbour episode. <code>iostat<\/code> extended output gives await percentiles indirectly through the queue-length relationship; <code>bpftrace<\/code> gives them directly from the block layer, including requests that never complete because they were throttled:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>iostat -x 5 \/dev\/vda | awk '{print strftime(\"%T\"), $1, $10, $11, $21, $22}'\n\n# histogram of block I\/O completion latency, all devices\nsudo bpftrace -e 'tracepoint:block:block_rq_complete {\n  @ns = hist(args->nr_sector > 0 ? nsecs - @start[args->dev, args->sector] : 0);\n  @start[args->dev, args->sector] = nsecs; }'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Persist the fio JSON output to a time-series database and alert on p99 regression rather than on raw IOPS. A disk that slowly loses 30% of its p99 headroom over two weeks is a signal to migrate before an incident, not after.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Checklist<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Always report p50\/p99\/p99.9 with <code>percentile_list<\/code>; averages hide throttling.<\/li><li>Match <code>iodepth<\/code> to the virtio queue tags, not to a number copied from a bare-metal guide.<\/li><li>Test <code>none<\/code>, <code>mq-deadline<\/code>, and <code>kyber<\/code> on your actual device and keep the winner in udev.<\/li><li>Read <code>\/proc\/pressure\/io<\/code> before blaming the provider; a rising <code>full<\/code> average means quota, not media.<\/li><li>Re-measure after every fstab or mount-option change &mdash; assume nothing.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Storage tuning is iterative measurement, not a configuration you copy. Establish a reproducible fio profile, change one variable at a time, and keep the JSON output as your regression baseline.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Throughput numbers lie. A disk that reports 500 MB\/s sequential can still deliver 12 ms p99 write latency under a mixed read\/write database workload, and that tail latency is what&#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":2,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-658","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 Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers - Virtual Servers VPS Blog<\/title>\n<meta name=\"description\" content=\"Throughput numbers lie. A disk that reports 500 MB\/s sequential can still deliver 12 ms p99 write latency under a mixed read\/write database workload, and\" \/>\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-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers\" \/>\n<meta property=\"og:description\" content=\"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual Servers VPS Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-18T02:40:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-25T22:04:10+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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/\",\"url\":\"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/\",\"name\":\"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers - Virtual Servers VPS Blog\",\"isPartOf\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#website\"},\"datePublished\":\"2026-07-18T02:40:52+00:00\",\"dateModified\":\"2026-09-25T22:04:10+00:00\",\"author\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0\"},\"description\":\"Throughput numbers lie. A disk that reports 500 MB\/s sequential can still deliver 12 ms p99 write latency under a mixed read\/write database workload, and\",\"breadcrumb\":{\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtualserversvps.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers\"}]},{\"@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 Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers - Virtual Servers VPS Blog","description":"Throughput numbers lie. A disk that reports 500 MB\/s sequential can still deliver 12 ms p99 write latency under a mixed read\/write database workload, and","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-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/","og_locale":"en_US","og_type":"article","og_title":"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers","og_description":"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers","og_url":"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/","og_site_name":"Virtual Servers VPS Blog","article_published_time":"2026-07-18T02:40:52+00:00","article_modified_time":"2026-09-25T22:04:10+00:00","author":"Virtual-Servers-Vps-Editor","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Virtual-Servers-Vps-Editor","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/","url":"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/","name":"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers - Virtual Servers VPS Blog","isPartOf":{"@id":"https:\/\/virtualserversvps.com\/blog\/#website"},"datePublished":"2026-07-18T02:40:52+00:00","dateModified":"2026-09-25T22:04:10+00:00","author":{"@id":"https:\/\/virtualserversvps.com\/blog\/#\/schema\/person\/82a299a8284a66ff49f97c74684724a0"},"description":"Throughput numbers lie. A disk that reports 500 MB\/s sequential can still deliver 12 ms p99 write latency under a mixed read\/write database workload, and","breadcrumb":{"@id":"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/virtualserversvps.com\/blog\/vps-disk-i-o-performance-how-to-measure-and-improve-read-write-speeds\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtualserversvps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"VPS Disk I\/O Latency: Measuring p99 with fio, blkio cgroups, and I\/O Schedulers"}]},{"@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\/658","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=658"}],"version-history":[{"count":2,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":1220,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/posts\/658\/revisions\/1220"}],"wp:attachment":[{"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/media?parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/categories?post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtualserversvps.com\/blog\/wp-json\/wp\/v2\/tags?post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}