從Node Redis遷移到Ioredis後CPU 使用率減少了 30% - Ably
Node Redis 作者試圖在處理緩衝區時做正確的事情(即避免資料複製),但這實際上導致了效能相當糟糕的情況。這對我們來說不是最佳選擇,因為我們呼叫的 Redis 函式具有許多小引數,因此執行了許多套接字寫入。
我們對 Node Redis 與 Ioredis 進行了一些獨立測試,Ioredis 展示了顯著的效能改進,主要是因為它在傳送批處理之前複製了緩衝區中的所有引數。這意味著更少的套接字寫入和更多的副本。幸運的是,後者對我們來說無關緊要,因為我們的論點從未達到令人擔憂的程度。此外,結果擴充套件到具有完整工作負載的生產效能改進。
我們在遷移過程中遇到了一些障礙,但這是(令人遺憾的)可以預料的。遷移程式碼後,我們執行了一些 CPU 使用率的真實負載測試。結果令人鼓舞。
對於 Node Redis,我們注意到大多數依賴項仍然是正在積極開發的實時程式碼,並且成熟度並不統一:一些特性被廣泛採用並經過良好測試,但其他特性則不然。這是可行的,前提是:
- 您預見到這些問題,並確保評估和測試您打算使用的特定功能或配置;和
- 採用者回饋社群以幫助成熟和維護軟體。
Ioredis將自己描述為“強大的、功能齊全的 Redis 客戶端,被世界上最大的線上商務公司阿里巴巴和許多其他很棒的公司使用”。根據npmcompare 的說法,它自 2015 年以來一直存在,所以它比 Node Redis 年輕五歲,但似乎更積極地工作。
更多點選標題
相關文章
- PayPal從Java遷移到Node.jsJavaNode.js
- 如何讓伺服器從30臺縮減到2臺的:從Ruby遷移到Go語言伺服器Go
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- PayPal從Java遷移到Node.js之我見JavaNode.js
- 如何讓網站不下線而從 Redis 2 遷移到 Redis 3網站Redis
- 從Perforce遷移到GitGit
- 從 golang flag 遷移到 cmdrGolang
- 從 Nginx 遷移到 Envoy ProxyNginx
- PayPal為什麼從Java遷移到Node.js 效能提高一倍 檔案程式碼減少44%JavaNode.js
- 從單體架構遷移到 CQRS 後,DDD 並不可怕架構
- [譯]從 SQLite 逐步遷移到 RoomSQLiteOOM
- 從mpvue遷移到uni-appVueAPP
- EF Core從TPH遷移到TPT
- [譯] 從 SQLite 逐步遷移到 RoomSQLiteOOM
- Linode從Xen遷移到KVM
- 將表 從mysql 遷移到oracleMySqlOracle
- win10怎麼減少cpu使用率_win10cpu使用率過高的解決方法Win10
- 將SAP 後臺資料庫從DB2 遷移到ORACLE資料庫DB2Oracle
- Azure VM從ASM遷移到ARM(二)ASM
- Azure VM從ASM遷移到ARM(一)ASM
- 從SpringMVC遷移到SpringbootSpringMVCSpring Boot
- 將OPEN BRAVO後臺資料庫從ORACLE遷移到DB2資料庫OracleDB2
- 使用DynamoShake從dynamodb遷移到mongodbMongoDB
- 從檔案系統遷移到ASM上ASM
- oralce 從檔案系統遷移到ASMASM
- 如果需要從Oracle遷移到MS SQLServer (2)OracleSQLServer
- 如果需要從Oracle遷移到MS SQLServer (1)OracleSQLServer
- Redis鍵不會自動過期 - AblyRedis
- 伺服器做了兩個優化 CPU 使用率減低 40%伺服器優化
- [譯] 將專案遷移到 Yarn 然後又遷回 npmYarnNPM
- 遷移到ASMASM
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- 記錄從vuecli打包庫遷移到rollup打包Vue
- 我為什麼從Redux遷移到了MobxRedux
- [譯] 將現有的 API 從 REST 遷移到 GraphQLAPIREST
- 閃購網站Gilt從Rails遷移到Scala網站AI