解決資料庫卡、慢,問題多,難管理——老技術的執著

来源:https://www.cnblogs.com/double-K/archive/2018/07/16/9315985.html
-Advertisement-
Play Games

寫在前面 本篇是赤果果的產品介紹文章,同時也是向使用資料庫的戰友們表達一下我們是怎樣一步一步打磨產品,又有什麼樣的遠景、動力讓我們一直走下去.... 八年資料庫之路的感悟 這篇文章最後所提到的資料庫管理產品,又經過兩年的不懈努力,一群帶有熱情的老技術打磨,現在3.0版本已經成功上線,並有將近500家 ...


 

寫在前面

  本篇是赤果果的產品介紹文章,同時也是向使用資料庫的戰友們表達一下我們是怎樣一步一步打磨產品,又有什麼樣的遠景、動力讓我們一直走下去....

  八年資料庫之路的感悟 這篇文章最後所提到的資料庫管理產品,又經過兩年的不懈努力,一群帶有熱情的老技術打磨,現在3.0版本已經成功上線,並有將近500家線下企業客戶使用,2500家線上用戶,同時也承載著上千技術愛好者的大力支持。

  在這裡也向一直支持我們的技術大牛們表達感謝!!

要做到什麼?

  複雜的技術簡單化、可視化、自動化、智能化 (都是被無數產品說爛掉的詞),解放DBA、解放IT管理人...

1.0的時代

  我們怎麼樣全面瞭解客戶的資料庫運行情況? 腳本? 命令? 又不全又累人,還不及時....我們做了最初的原形Expert for SQL Server ,他能幫助DBA 快速瞭解分析系統的運行情況,什麼時間點出現過什麼問題

  這樣我們可以對眾多伺服器、眾多客戶的系統進行全面分析。而告別個人經驗主義、效果看水平,這樣的時代我們認準的事——分析全面

  告別:硬體說軟體問題,軟體說硬體不行,解決資料庫問題就是換高速存儲換完還不行再換伺服器?

  

 

  同時我也通過1.0的產品寫了一整套資料庫優化的文章和案例 SQL SERVER全面優化-------Expert for SQL Server 診斷系列

  幫助技術同行解決各種資料庫問題,當然最重要的還是告訴大家如何不輕易下結論,一切問題要——全面分析,找到根源

2.0時代

  SaaS、雲已經成為大火和無法阻擋的趨勢,我們也同樣開放了線上的診斷平臺SQL專家雲SaaS平臺,免費幫助技術同行處理資料庫問題,同時我們在1.0的基礎上汲取各種場景、解決問題的思路,以1.0時代積累下的3000家客戶運行情況提煉分析,把更多的指標,更多的問題場景融入到產品中,也得到廣泛的認可。

  同時在2.0的版本中,我們也在智能化的路上前進了一大步,超過3000家的資料庫運行情況,上萬個問題場景,也醞釀出了 我們自動化解決問題的功能——智能加速與智能運維!

  

 

 

  SaaS平臺的推出,讓我們接觸到了更多的資料庫使用者,也接觸到各種不同的系統運行情況,也有很多人在SaaS平臺上尋求幫助,自己的系統有問題,又對資料庫不懂,無法分析。

  在SaaS平臺運行的一年半里,我們大約接到幾百位求助者分享給我們的運行情況,我們也為他們全面分析並解決了資料庫上的棘手問題,當然更多的是小白問題....哈哈哈哈

  小到解決問題,大到針對系統現狀如何規劃數據層應用,這樣的過程是快樂了,技術是純粹的,沒有談錢只有技術交流...偶爾大俠賞個紅包,技術團隊的兄弟也出門吃頓好的...哈哈哈

 

3.0的時代來了

  在1.0和2.0累積下來的經驗看,我們依然有很多不足:包括很多生僻的指標讓初級使用者依然很難簡單診斷,實時性診斷分析滯後,問題預警缺失,智能解決方案較為單一等等....

  對於使用者的需求我們一一整理足一強化、改善、研發....

  大家都喜歡用老外的產品,外來的就是最好的?我們國內產品差什麼? 我們就是要打造No.1

  從功能到使用習慣再到智能化...我們一步一步前行,所有的客戶建議都是我們最寶貴的財富...

  現在我們的3.0界面是這樣的....

  

 

 

  首先我們美化了界面,IT的深藍色調...常規關註指標的佈局,使用習慣上頁面的調轉,目標源頭的呈現等等

  並一改2.0重診斷分析問題,而變成簡單呈現,簡單發現,簡單處理為原則。

  頁面可能都是花架子,我們來說功能提升!

  

  這樣的工具也許就是知道資料庫的“昨天、今天、明天”,也就是“過去、現在和將來”

  

  

  下麵列舉一些簡單又使用的功能

  實時知道運行了那、哪些語句、運行的好不好

  在運行狀態的記錄和分析基礎上,我們最強化了就是方便...易用,如下麵:

  任何時間點的運行語句很輕易的就可以呈現出來,點擊即可瞭然於心

  圖示是語句

 

 

  知道任何時間點執行的語句這可能只是最基礎的功能,就算我知道了15點31分23秒,運行了個語句非常慢,可這個語句平時也不慢,拿下來一執行幾毫秒就完成了。我怎麼知道是什麼原因造成的?當時怎麼就執行那麼長時間?

  語句實時查看

  

  分析語句行為,上面的例子有些經驗的人都知道是語句執行的時候被阻塞了,而阻塞有兩種:硬體的資源等待,或語句資源爭用的鎖(也是我們常說的鎖表/死鎖/阻塞)

  那我們就會清楚地知道當時是為什麼慢? 卡在硬體還是軟體的語句上? 

 

  語句阻塞等待 實時分析

  

  

  是被哪個語句卡住?為什麼卡住?源頭是誰?誰執行的從哪來的?什麼程式過來的? 介面還是報表?

  語句源頭分析 

   

  如果是被硬體資源卡住,是CPU、記憶體、還是IO? 

  為什麼不夠用? 當時硬體資源利用率怎麼樣? 

  硬體與語句關聯分析

  

  我們經常被問題到底是硬體不夠造成的還是軟體的問題所困擾,在這樣的情況下我們是否可以同時看到語句運行的好不好已經當時的硬體什麼壓力?這樣是不是一下就解決了呢?

 

  硬體壓力來源分析

  CPU已經使用到 90% 了? 哪些操作導致CPU高的?

  

  

  這些語句是否可以優化?

  

 

  

  數據指標全面,而且對分析問題的流程和邏輯做到只需 “按步驟點擊” ,比如突然一個時間點系統慢了,要幫助管理人員清晰的展示出分析問題的邏輯!

  把DBA解決問題的思路融入產品,讓非DBA也可以解決DBA問題,您說這樣可以嗎?

  

 

  也許這就是所謂的 “工欲善其事,必先利其器”

 

  其他的實時告警、趨勢分析、深入體檢等等功能,由於篇幅原因,簡單貼以下圖吧。

   趨勢分析

  趨勢分析可以拉長時間觀察發生問題的規律

  趨勢分析也可對系統進行預測分析,比如什麼時間點該提升記憶體?

  

 

  自動化巡檢

  

 

  其他功能

  

 

 

--------------博客地址---------------------------------------------------------------------------------------

博客地址 http://www.cnblogs.com/double-K/

 

 歡迎轉載,請註明出處,謝謝!

-----------------------------------------------------------------------------------------------------

再說點什麼

  生活中的便利大家也都感覺到了,隨便一個不方便,可能就有人做了對應的貢獻,我們也一樣,我們是一群老DBA跟年輕的從業者無法拼創意、無法比精力、體力。但我們也會用我們優勢的經驗來貢獻我們自己的一份力量。

  新入行的DBA越來越少,能踏實肯學的就少之又少,數據作為企業命脈,各個企業都面臨著資料庫的問題,也許還有一些時間讓我們這幫老鳥發揮一些餘熱。

  希望大家在看完本篇以後,有興趣的技術咖可以花些時間多嘗試一下,多給我們一些寶貴的建議。

  我們會在這樣的技術貢獻上越走越遠,越來越深入,因為我們要打造的是 No.1

 ----------------------------------------------------------------------------------------------------

如果您也遇到類似問題或者想加入我們歡迎微信交流

 

註:此文章為原創,歡迎轉載,請在文章頁面明顯位置給出此文鏈接!
若您覺得這篇文章還不錯請點擊下右下角的推薦,非常感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在/etc/rc.local文件中添加自啟動命令(其中一種方法) 1.案例,就用博主本人之前發的博文 “nginx + flask + uwsgi + centos + python3 搭建web項目”,把步驟6的語句添加到/etc/rc.local文件中 附:關於開機自啟動腳本我再列舉一種方法(方 ...
  • 1. 分配源地址、目的地址 函數裡面是源和目的的物理地址,函數返回的是源和目的的虛擬地址。 2. 源和目的的記憶體釋放 3. 和硬體打交道用到的是物理地址,比如把源和目的地址告訴DMA寄存器 4. 調用內核函數使用的一般是虛擬地址 完整程式見https://www.cnblogs.com/zhu-g5 ...
  • 學習目標: U-boot屬於兩個階段的Bootloader,第一階段的文件為cpu/arm920t/start.S和board/smdk2410/lowlevel_init.S,前者是平臺相關的,後者是開發板相關的。U-boot的第一階段主要的任務是一些系統的初始化工作,從大的方面可以分為以下幾個部 ...
  • 閱讀本文需要安裝JDK 一 ActiveMQ簡介 activemq是用java語言編寫的一款開源消息匯流排 activemq是apache出品 activemq消息的傳遞有兩種類型 一種是點對點(即一個生產者和一個消費者一一對應) 另一種是發佈|訂閱模式(即一個生產者產生消息併發送後 可以由多個消費者 ...
  • 1. 基本概念: 扇區(Sectors):任何塊設備硬體對數據處理的基本單位。通常,1個扇區的大小為512byte。(對設備而言) 塊 (Blocks):由Linux制定對內核或文件系統等數據處理的基本單位。通常,1個塊由1個或多個扇區組成。(對Linux操作系統而言) 段(Segments):由若 ...
  • 掛載鏡像CentOS-6.6-x86_64-bin-DVD1.iso ...
  • 修改hostname 免密碼登錄 ...
  • MySQL基本簡單操作 先進入 容器。 [root@promote ~] docker exec it mysql /bin/bash root@30d60b852cf5:/ mysql uroot p000000 mysql: [Warning] Using a password on the c ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...