Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3522|Отговор: 2

[Източник] Просто сравнение между кеша на Garnet и Redis, разработено с .NET

[Копирай линк]
Публикувано на 28.03.2024 18:00:42 | | | |
Garnet е нов тип отдалечено кеш съхранение, разработено от Microsoft Research, което предлага няколко уникални предимства:

  • Garnet използва популярния RESP линейн протокол като отправна точка, който позволява използването на Garnet от немодифицирани Redis клиенти, налични в повечето програмни езици днес, като StackExchange.Redis на C#.
  • Garnet предлага по-добра пропускателна способност и мащабируемост с много клиентски връзки и малки партиди в сравнение със сравними отворени кеш хранилища, спестявайки разходи за големи приложения и услуги.
  • Garnet демонстрира изключително ниска клиентска латентност (обикновено под 300 микросекунди при 99.9%) при използване на виртуални машини Commodity Cloud (Azure) с активиран ускорен TCP, което е критично за реални ситуации.
  • Garnet е базиран на най-новата .NET технология и е кросплатформен, разширяем и модерен. Той е проектиран да бъде лесен за разработване и развитие без да жертва представянето в обичайни ситуации. Използваме богатата библиотечна екосистема на .NET, за да разширим API и да предоставим отворени възможности за оптимизация. Благодарение на внимателното използване на .NET, Garnet постига най-съвременна производителност както на Linux, така и на Windows.


Отворен код на адрес:Входът към хиперлинк е видим.
Документация:Входът към хиперлинк е видим.

Гранатът има следните основни предимства:

  • Пропускателната способност на сървъра (операции в секунда) се увеличава с няколко порядка за малки партиди и много клиентски сесии в сравнение със сравнимо отворено кеш съхранение.
  • На стандартни облачни машини (Azure) с активиран ускорен TCP на Windows и Linux, латентността на операция е изключително ниска (обикновено под 300 микросекунди при 99.9%).
  • С увеличаването на броя на клиентите се постига по-добра мащабируемост с или без пакетиране на клиенти.
  • Възможност за използване на всички CPU/паметни ресурси на сървърен компютър чрез един споделен сървърен сървър (без необходимост от вътревъзлова клъстеризация).
  • Поддръжка на набори от данни, по-големи от паметта, които преливат към локални и облачни устройства за съхранение.
  • Функции на базата данни като бърза контролна точка, възстановяване и публикуване/абониране.
  • Поддръжка за многовъзлово хеш разделяне (режим "клъстер" в Redis), миграция на състояния и репликация.
  • Добре тествани с цялостен тестов пакет (хиляди unit тестове срещу Garnet и неговия слой за съхранение Tsavorite).
  • C# кодова база, която е лесна за развитие и разширяване.


Garnet не поддържа всички Redis команди, специално поддържани команди за преглед:Входът към хиперлинк е видим.
Проектът Garnet включва инструмент Benchmark за изпълнение на RESP бенчмаркове с различни клиенти, различни натоварвания и различни политики за измерване на пропускателната способност, производителността и латентността. Адрес:Входът към хиперлинк е видим.
RESP протокол:Входът към хиперлинк е видим.

Тази статия използва вградените инструменти за бенчмаркинг на Redis за лесно тестване, а тестовата среда е следната:

Тест за производителност в Redis Benchmark
https://www.itsvse.com/thread-9645-1-1.html

кешверсия
РедисRedis 3.0.504 (00000000/0) 64-битов
ГранатGarnet 1.0.2 64 бита; Самостоятелен режим


Redis бенчмаркове

Първо, стартирайте кеша на Redis чрез командния ред със следната команда:


Тестовата команда е следната:


Резултатите са следните:



====== SET ======
  500000 заявки, завършени за 24.38 секунди
  100 паралелни клиента
  Полезен товар от 3 байта
  Поддържане жив: 1

0.03% <= 1 милисекунди
0.25% <= 2 милисекунди
2.65% < = 3 милисекунди
16.49% <= 4 милисекунди
59.95% <= 5 милисекунди
99.09% <= 6 милисекунди
99.76% <= 7 милисекунди
99.86% <= 8 милисекунди
99.93% <= 9 милисекунди
99.98% < = 10 милисекунди
99.99% <= 11 милисекунди
100.00% <= 12 милисекунди
20512.82 заявки в секунда

====== ВЗЕМИ ======
  500000 заявки, изпълнени за 27.41 секунди
  100 паралелни клиента
  Полезен товар от 3 байта
  Поддържане жив: 1

0.03% <= 1 милисекунди
0.19% <= 2 милисекунди
6.44% <= 3 милисекунди
25.82% <= 4 милисекунди
45.65% <= 5 милисекунди
98.79% <= 6 милисекунди
99.98% <= 7 милисекунди
99.98% <= 8 милисекунди
99.98% <= 9 милисекунди
100.00% <= 9 милисекунди
18238.86 заявки в секунда

Гарнет бенчмаркове

Създайте нов проект за .NET 8 конзола и първо се обърнете към пакета Microsoft.Garnet със следната команда:


Кодът е следният:


Командата за стартиране е следната:


Използвайки същата команда за бенчмарк, резултатът е следният:



====== SET ======
  500000 заявки, завършени за 11,51 секунди
  100 паралелни клиента
  Полезен товар от 3 байта
  Поддържане жив: 1

75.51% <= 1 милисекунда
88.24% <= 2 милисекунди
92.04% <= 3 милисекунди
99.46% < = 4 милисекунди
99.98% <= 5 милисекунди
99.99% < = 6 милисекунди
100.00% <= 12 милисекунди
100.00% <= 12 милисекунди
43448.04 заявки в секунда

====== ВЗЕМИ ======
  500000 заявки, изпълнени за 31,50 секунди
  100 паралелни клиента
  Полезен товар от 3 байта
  Поддържане жив: 1

0.01% <= 1 милисекунди
0.90% < = 2 милисекунди
27.25% <= 3 милисекунди
97.65% <= 4 милисекунди
99.82% <= 5 милисекунди
99.94% <= 6 милисекунди
99.98% <= 7 милисекунди
99.98% <= 9 милисекунди
99.98% < = 10 милисекунди
99.99% <= 11 милисекунди
100.00% <= 12 милисекунди
100.00% <= 12 милисекунди
15872.01 заявки в секунда

Поради инструментите за тестване, версиите на софтуера, параметрите на теста и др., които водят до различни резултати, тестовете са само за справка; чрез простите тестове в тази статия се вижда, че Garnet има значително по-ниска латентност от Redis.

(Край)




Предишен:.NET/C# атрибут за отражение, който може да се оцени по нулеви типове
Следващ:SSE (1) използва ASP.NET Core като SSE сървър
 Хазяин| Публикувано на 28.03.2024 18:01:32 |
KeyDB е напълно отворена база данни, работеща от Snap, и е по-бърза алтернатива на Redis. Адрес:https://docs.keydb.dev/
 Хазяин| Публикувано на 2025-9-3 09:36:07 |
ПО-БЪРЗО: Бързо едновременно постоянно съхранение на ключови стойности и логване на C# и C++.
        
Документация:Входът към хиперлинк е видим.
Източник:Входът към хиперлинк е видим.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com