原创 【postgresql】數據聚合之PERCENTILE_CONT

在實現性能測試報告聚合的時候,一開始使用的方案是通過數據庫查詢load出所有數據,然後不同維度數據不同消費者消費聚合對應的數據,這樣實現當數據量超過1000w+時下載速度無法解決 因爲使用的數據庫是TimescaleDB,可以使用

原创 【sprint】數據庫多數據源

兩個項目間數據同步的需求,需要同時操作多個庫多需求

原创 【性能調優】分析mysql性能的語句

1. 系統mysql進程數 在mysql數據庫服務器中查看 ps -ef | grep “mysql” | grep -v “grep” | wc –l 2. 查看從庫數量 show status like 'Slave_run

原创 【sprint】jar包getFile問題

獲取文件路徑的代碼 File path = null; try { path = new File(ResourceUtils.getURL("classpath:").getPath()); } catch (Excep

原创 【性能調優】cpu過載問題分析

如何定位代碼中哪段導致CPU過載? 步驟一:通過top或者pidstat命令,定位具體的進程號,如下圖1 top 步驟二:top -p 1後,按住shift+H 開啓顯示詳細的線程 步驟三:把1855轉換成16進制 因爲線程

原创 【性能調優】模擬websocket百萬終端長連接

IM需要在其中一個分區進行線上全鏈路壓測,模擬100w終端用戶連接,並根據線上各websocket和http請求按照比例qps x2併發請求。通宵達旦趕項目1周,但是很多問題仍未找到答案,不過先記錄mark一下過程的問題 測試鏈路

原创 【性能調優】線程異常問題分析

線程異常關注兩個東西,一個是線程狀態,一個是線程的連接數 應用設計的時候需要考慮資源的限制,才能避免應用在某些時候因爲資源過度而崩潰,線程數的控制非常重要。程序無限制的創建最終導致不可控,特別是隱藏在代碼中的創建線程的方法 當系統

原创 【nginx】Docker nginx部署

本地服務調試的時候,有兩個不同端口的服務需要同時請求,前端代碼指定比較麻煩,故通過nginx的方式實現需求,下面部署Docker nginx 一、Docker 安裝 macOS使用 Homebrew來安裝 Docker簡單便捷 $

原创 【mysql】查詢返回int數據爲空時處理

使用MyBatis查詢,返回類型爲int,但是當查詢結果爲空null,出現異常 如代碼中xml文件查詢語句 <select id="getGenerateStatus" resultType="java.lang.Integer"

原创 【mysql】大數據量數據讀取

當需要從數據庫查詢的表有上萬條記錄的時候,一次性查詢所有結果會變得很慢,特別是隨着數據量的增加特別明顯,這時就需要使用分頁查詢 數據準備 表名:report_sample 描述:獲取執行性能報告數據 主要字段:task_id, s

原创 【性能調優】數據庫連接池配置優化

在性能調優過程中,通過監控數據經常發現接口花費大量時間在獲取數據庫連接中,那如何通過優化數據庫連接池的配置來優化服務的性能呢? 什麼是數據庫連接池 創建數據庫連接是一個很耗時的操作,也容易對數據庫造成安全隱患。所以,在程序初始化的

原创 【性能調優】應用系統性能畫像

應用系統性能問題 進程消耗cpu,內存利用率暴增如何定位代碼 數據庫連接數被耗盡怎麼辦 各種OOM如何預防 線程死鎖,鎖爭用 上下文切換太頻繁那怎麼辦 無論多複雜的系統運行在linux上,其實就是一個進程,任何東西在操作系統

原创 【mysql】rollup 統計集合

數據彙總 在使用TimescaleDB數據庫並做數據聚合時 SELECT labels, count(*) as sample_count, avg(elapsed) as elapsed_a

原创 【性能調優】線程快照分析

在性能調優的時候,apm監控可以看到一直卡在mysql的DruidDataSource.getConnection() 這個時候數據庫的資源使用情況cpu、內存、網絡均正常,dubbo容器的cpu等資源也正常 抓取線程快照查看線

原创 【性能調優】OOM問題分析

OOM發生的一般原因: 資源不夠 可能是內存分配過小,而正常業務卻使用了大量的內存 申請的資源太多 某一個對象被頻繁的申請,卻沒有被釋放,內存不斷泄露,最終導致內存耗盡 資源耗盡 某一個資源被頻繁的申請,系統在資源耗盡,例如不斷