Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions _data/perf.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Example of a homepage performance card.
# Both `title` and `description` can contain markdown for styles, but not links.
# [[dashboards]]
# title = "GETs/SETs on `9.0.0`"
# description = "Performance dashboard of GETs and SETs on the Valkey 9.0.0 release. Updated on Oct 21, 2025."
# link = "https://perf-dashboard.valkey.io/public-dashboards/3e45bf8ded3043edaa941331cd1a94e2"

# Order in this file indicates rendering order.

[[dashboards]]
title = "Valkey Performance Dashboards"
description = "Valkey Performance Dashboards provide a consolidated view of throughput and memory efficiency trends across versions, helping teams validate improvements and identify regressions."
link = "/performance/"

# Performance dashboard sections for /performance page
# Order in this file indicates rendering order.

[[sections]]
title = "Throughput Across Versions"
iframe_url = "https://perf-dashboard.valkey.io/public-dashboards/38ad683dbd06456c829b547d97e2b7da"
description = "This dashboard visualizes throughput trends across Valkey versions. It helps compare key releases side by side, highlight performance gains from new features. Read more about [Unlocking 1 Million RPS in Valkey](/blog/unlock-one-million-rps/)."
methodology = "These metrics are generated using the [valkey-perf-benchmark](https://github.com/valkey-io/valkey-perf-benchmark) tool an AWS `c8g.metal.24xl` instance, running a matrix of configurations that vary pipelining (1, 10), I/O threading (1, 9), and with a data size of 512 bytes. To further stabilize results, we apply IRQ tuning by pinning network interrupts away from CPUs dedicated to the server process, and we isolate the server and benchmark client on separate NUMA nodes to remove L3 cache contention."

[[sections]]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Memory overhead is not performance. I'm not sure why we're including this here.

title = "Memory Overhead Across Versions"
iframe_url = "https://df0m5orgq2d38.cloudfront.net/public-dashboards/1e3d87a62b794ce9aa81281d8399e4bf"
description = "This dashboard visualizes Memory Efficiency trends across Valkey versions. It helps compare releases side by side, highlight Memory Efficiency gains from new features. Discover how [our new hash table design](/blog/new-hash-table/) reduces memory overhead."
methodology = "These benchmarks are generated by starting an empty instance of Valkey for each test, measuring memory usage, then adding 3 million string items of a certain data size, then measuring Valkey memory usage again. We take the increase in memory use, divide by the number of items, and subtract the size of the user data (key and value) to get the extra overhead bytes Valkey uses to track and organize the data. For this graph, we tested every value size from 8B to 128B inclusive, then averaged the numbers for each range in this chart."
6 changes: 6 additions & 0 deletions content/performance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
title: Valkey Performance Dashboards
template: performance.html
---

Valkey Performance Dashboards provide a consolidated view of throughput and memory efficiency trends across versions, helping teams validate improvements and identify regressions quickly.
20 changes: 15 additions & 5 deletions sass/_valkey.scss
Original file line number Diff line number Diff line change
Expand Up @@ -769,7 +769,7 @@ p {
}
}

.col_3 {
.col-3 {
@include respond-min(768px) {
flex: 1 1 25%;
}
Expand Down Expand Up @@ -1853,7 +1853,7 @@ html.banner-hidden .banner {
.inner-card {
background: white;
padding: 3rem;
border-radius: 20px;
border-radius: 10px;
margin: 0 0 3rem;

h4 {
Expand Down Expand Up @@ -2046,12 +2046,17 @@ blockquote {
}

// Homepage Blog Cards with Featured Images
.homepage-performance-section,
.homepage-blog-section {
display: flex;
flex-direction: column;
gap: 2rem;
}
.homepage-performance-section {
margin-bottom: 3rem;
}

.homepage-performance-card,
.homepage-blog-card {
background: #fff;
border-radius: 10px;
Expand All @@ -2078,13 +2083,18 @@ blockquote {
border-top-right-radius: 10px;
}

.homepage-performance-card-content,
.homepage-blog-card-content {
padding: 1.5rem;
flex: 1;
display: flex;
flex-direction: column;
}

.homepage-performance-card h4 p {
margin: none;
}
.homepage-performance-card h4,
.homepage-blog-card-title {
margin: 0 0 1rem 0;
font-size: 1.6rem;
Expand All @@ -2101,7 +2111,7 @@ blockquote {
color: #667eea;
}
}

.homepage-performance-card h4 + p,
.homepage-blog-card-description {
margin: 0 0 1.5rem 0;
font-size: 1.4rem;
Expand All @@ -2113,7 +2123,7 @@ blockquote {
overflow: hidden;
flex: 1;
}

.homepage-performance-card .view-dashboard,
.homepage-blog-card-readmore {
display: inline-flex;
align-items: center;
Expand All @@ -2130,7 +2140,7 @@ blockquote {
transition: all 0.2s ease;
background: #fff;
}

.homepage-performance-card .view-dashboard:hover,
.homepage-blog-card-readmore:hover {
background: #667eea;
color: #fff;
Expand Down
148 changes: 82 additions & 66 deletions templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,79 +17,95 @@ <h1 class="hero-heading">{{ heading }}</h1>

<div class="whats-new-section">
<div class="whats-new-inner row">
<div class="col col-8">
{% set release_section = get_section(path="download/releases/_index.md") %}
{% set releases = release_section.pages | reverse %}

{% set_global active_releases = [] %}
{% for release in releases %}
{% if release.extra.tag is not matching(".*-.*") %}
{% set_global active_releases = active_releases | concat(with=release) %}
{% endif %}
{% endfor %}

{% set most_recent_release_page = active_releases | slice(end= 1) %}
{% set release_date = most_recent_release_page[0].date %}
{% set release = most_recent_release_page[0].extra %}

{% set split_ver = release.tag | split(pat=".")%}
{% set_global major = split_ver | nth(n= 0) %}

<h3> Version {{major}}.x.x </h3>
<div class="inner-card">
{% include "includes/release.html" %}
</div>

<h3> Latest supported version of past releases</h3>

<div class="inner-card">
{% for older_release in active_releases %}
{% set older_split_ver = older_release.extra.tag | split(pat=".")%}
{% set older_major = older_split_ver | nth(n= 0) %}
{% if older_major != major %}
{% set_global major = older_major %}
{% set release = older_release.extra %}
<h4> Version {{major}}.x.x </h4>
{% include "includes/release.html" %}
<div class="col col-6">
{% set release_section = get_section(path="download/releases/_index.md") %}
{% set releases = release_section.pages | reverse %}

{% set_global active_releases = [] %}
{% for release in releases %}
{% if release.extra.tag is not matching(".*-.*") %}
{% set_global active_releases = active_releases | concat(with=release) %}
{% endif %}
{% endfor %}
</div>
</div>

<div class="col col-4">
<h3>Latest From Our Blog</h3>
<div class="homepage-blog-section">
{% set blog_post_section = get_section(path="blog/_index.md") %}
{% set blog_posts = blog_post_section.pages | slice(end=2) %}
{% for post in blog_posts %}
<div class="homepage-blog-card">
<div class="homepage-blog-card-content">
<h4 class="homepage-blog-card-title"><a href="{{ post.permalink }}">{{ post.title }}</a></h4>
<p class="homepage-blog-card-description">{{ post.description }}</p>
<a href="{{ post.permalink }}" class="homepage-blog-card-readmore">Read More</a>

{% set most_recent_release_page = active_releases | slice(end= 1) %}
{% set release_date = most_recent_release_page[0].date %}
{% set release = most_recent_release_page[0].extra %}

{% set split_ver = release.tag | split(pat=".")%}
{% set_global major = split_ver | nth(n= 0) %}

<h3> Version {{major}}.x.x </h3>
<div class="inner-card">
{% include "includes/release.html" %}
</div>

<h3> Latest supported version of past releases</h3>

<div class="inner-card">
{% for older_release in active_releases %}
{% set older_split_ver = older_release.extra.tag | split(pat=".")%}
{% set older_major = older_split_ver | nth(n= 0) %}
{% if older_major != major %}
{% set_global major = older_major %}
{% set release = older_release.extra %}
<h4> Version {{major}}.x.x </h4>
{% include "includes/release.html" %}
{% endif %}
{% endfor %}
</div>
</div>
<div class="col col-3">
<h3>Performance</h3>
<div class="homepage-performance-section">
{% set perf = load_data(path="_data/perf.toml") %}
{% for perf_dashboard in perf.dashboards %}
<div class="homepage-performance-card">
<div class="homepage-performance-card-content">
<h4><a href="{{ perf_dashboard.link }}">{{ perf_dashboard.title | markdown | safe }}</a></h4>
{{ perf_dashboard.description | markdown | safe }}
<a href="{{ perf_dashboard.link }}" class="view-dashboard">Explore</a>
</div>

</div>
{% endfor %}
{% endfor %}
</div>

</div>
<div class="col col-3">
<h3>Latest Blog Posts</h3>
<div class="homepage-blog-section">
{% set blog_post_section = get_section(path="blog/_index.md") %}
{% set blog_posts = blog_post_section.pages | slice(end=2) %}
{% for post in blog_posts %}
<div class="homepage-blog-card">
<div class="homepage-blog-card-content">
<h4 class="homepage-blog-card-title"><a href="{{ post.permalink }}">{{ post.title }}</a></h4>
<p class="homepage-blog-card-description">{{ post.description }}</p>
<a href="{{ post.permalink }}" class="homepage-blog-card-readmore">Read More</a>
</div>
</div>
{% endfor %}
</div>



{% if section.extra and section.extra.sidebar %}
{% for sidebar_category in section.extra.sidebar %}
<h3>{{sidebar_category.title}}</h3>
<div class="inner-card">
<ul class="list-links-small">
{% for link in sidebar_category.links %}
<li><a href="{{ link.url }}">{{ link.title}}</a></li>
{% endfor %}
</ul>
{% if sidebar_category.more %}
<a href="{{ sidebar_category.more.url }}" class="link-readmore">{{sidebar_category.more.title}}</a>
{% endif %}
</div>
{% endfor %}
{% endif %}
</div>
{% if section.extra and section.extra.sidebar %}
{% for sidebar_category in section.extra.sidebar %}
<h3>{{sidebar_category.title}}</h3>
<div class="inner-card">
<ul class="list-links-small">
{% for link in sidebar_category.links %}
<li><a href="{{ link.url }}">{{ link.title}}</a></li>
{% endfor %}
</ul>
{% if sidebar_category.more %}
<a href="{{ sidebar_category.more.url }}" class="link-readmore">{{sidebar_category.more.title}}</a>
{% endif %}
</div>
{% endfor %}
{% endif %}
</div>
</div>
</div>

Expand All @@ -102,7 +118,7 @@ <h3>{{sidebar_category.title}}</h3>
<div class="row documentation-card-grid">
{% if section.extra and section.extra.documentation_cards %}
{% for card in section.extra.documentation_cards %}
<div class="col col_3">
<div class="col col-3">
<div class="documentation-card">
<h3>{{ card.title }}</h3>
<p>{{ card.description }}</p>
Expand Down
38 changes: 38 additions & 0 deletions templates/performance.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{% extends "default.html" %}

{% block content %}
<div class="styled-title">
<h1>{{ page.title }}</h1>
</div>

<div class="width-limiter">
<main class="container">
{{ page.content | markdown | safe }}

{% set perf = load_data(path="_data/perf.toml") %}
{% for section in perf.sections %}
<section class="performance-section">
<h2>{{ section.title }}</h2>

{% if section.iframe_url %}
<iframe src="{{ section.iframe_url }}" width="100%" height="600" frameborder="0"></iframe>
{% endif %}

{% if section.description %}
<p>{{ section.description | markdown | safe }}</p>
{% endif %}

{% if section.methodology %}
<h3>Methodology</h3>
<p>{{ section.methodology | markdown | safe }}</p>
{% endif %}
</section>
{% endfor %}

<hr>
<p>For questions about performance or to contribute benchmarking data, visit our <a href="/community/">community
page</a> or join the discussion on <a href="https://github.com/orgs/valkey-io/discussions">GitHub</a>.
</p>
</main>
</div>
{% endblock content %}