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

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...