從Node Redis遷移到Ioredis後CPU 使用率減少了 30% - Ably
Node Redis 作者試圖在處理緩衝區時做正確的事情(即避免資料複製),但這實際上導致了效能相當糟糕的情況。這對我們來說不是最佳選擇,因為我們呼叫的 Redis 函式具有許多小引數,因此執行了許多套接字寫入。
我們對 Node Redis 與 Ioredis 進行了一些獨立測試,Ioredis 展示了顯著的效能改進,主要是因為它在傳送批處理之前複製了緩衝區中的所有引數。這意味著更少的套接字寫入和更多的副本。幸運的是,後者對我們來說無關緊要,因為我們的論點從未達到令人擔憂的程度。此外,結果擴充套件到具有完整工作負載的生產效能改進。
我們在遷移過程中遇到了一些障礙,但這是(令人遺憾的)可以預料的。遷移程式碼後,我們執行了一些 CPU 使用率的真實負載測試。結果令人鼓舞。
對於 Node Redis,我們注意到大多數依賴項仍然是正在積極開發的實時程式碼,並且成熟度並不統一:一些特性被廣泛採用並經過良好測試,但其他特性則不然。這是可行的,前提是:
- 您預見到這些問題,並確保評估和測試您打算使用的特定功能或配置;和
- 採用者回饋社群以幫助成熟和維護軟體。
Ioredis將自己描述為“強大的、功能齊全的 Redis 客戶端,被世界上最大的線上商務公司阿里巴巴和許多其他很棒的公司使用”。根據npmcompare 的說法,它自 2015 年以來一直存在,所以它比 Node Redis 年輕五歲,但似乎更積極地工作。
更多點選標題
相關文章
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- 從 Nginx 遷移到 Envoy ProxyNginx
- 從 golang flag 遷移到 cmdrGolang
- 使用DynamoShake從dynamodb遷移到mongodbMongoDB
- 從mpvue遷移到uni-appVueAPP
- [譯]從 SQLite 逐步遷移到 RoomSQLiteOOM
- [譯] 從 SQLite 逐步遷移到 RoomSQLiteOOM
- EF Core從TPH遷移到TPT
- 從單體架構遷移到 CQRS 後,DDD 並不可怕架構
- kubectl 如何檢視 node、pod 的 cpu、RAM 使用率?
- win10怎麼減少cpu使用率_win10cpu使用率過高的解決方法Win10
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- Spring Boot 從1.5遷移到2.0.5 - DZone JavaSpring BootJava
- 從eclipse遷移到idea(1 安裝篇)EclipseIdea
- 案例:微服務從Java/SpringBoot遷移到Golang微服務JavaSpring BootGolang
- 如何從 AWS CodeCommit 遷移到極狐GitLab?MITGitlab
- [譯] 將專案遷移到 Yarn 然後又遷回 npmYarnNPM
- 伺服器做了兩個優化 CPU 使用率減低 40%伺服器優化
- Android技術棧(一)從Activity遷移到FragmentAndroidFragment
- 從eclipse遷移到idea(2 使用習慣篇)EclipseIdea
- 從過時的 Windows 機器遷移到 LinuxWindowsLinux
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- 記錄從vuecli打包庫遷移到rollup打包Vue
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- 從 Newtonsoft.Json 遷移到 System.Text.JsonJSON
- Doordash經過各種語言評估後決定從Python遷移到KotlinPythonKotlin
- Redis鍵不會自動過期 - AblyRedis
- svn 遷移到gitGit
- 將spfile從ASM裡遷移到檔案系統ASM
- Dcat Admin 教程 - 如何從 Laravel admin 遷移到 dcat admin?Laravel
- 如何從阿里雲ECS遷移到AWS EC2?阿里
- 如何平穩地從nacos遷移到r-nacos?
- 平安科技從 Oracle 遷移到 UbiSQL 的實踐OracleSQL
- 為何我們前端從Vue 2遷移到Svelte?前端Vue
- 從單體遷移到微服務的十二種方法微服務
- 如何從 vue-element-admin 遷移到 Fantastic-adminVueAST
- 【遷移】SqlServer 遷移到 MySQL 方法ServerMySql
- WSL遷移到其他磁碟