-
MySQL 最樸素的監(jiān)控方式!用完愛(ài)不釋手
對(duì)于當(dāng)前數(shù)據(jù)庫(kù)的監(jiān)控方式有很多,分為數(shù)據(jù)庫(kù)自帶、商用、開(kāi)源三大類(lèi),每一種都有各自的特色;而對(duì)于 mysql 數(shù)據(jù)庫(kù)由于其有很高的社區(qū)活躍度,監(jiān)控方式更是多種多樣,不管哪種監(jiān)控方式最核心的就是監(jiān)控?cái)?shù)據(jù),獲取得到全面的監(jiān)控?cái)?shù)據(jù)后就是靈活的展示部分。 那我們今天就介紹一下完全采用 mysql 自有方式采集獲取監(jiān)控?cái)?shù)據(jù),在單體下達(dá)到最快速、方便、損耗最小。 本次文章完全使用 mysql 自帶的 show 命令實(shí)現(xiàn)獲取,從?connects、buffercache、lock、SQL、statement、D…
-
Go語(yǔ)言高并發(fā)時(shí)append方法偶現(xiàn)錯(cuò)誤的解決方法
在實(shí)現(xiàn)圖片轉(zhuǎn)碼的需求時(shí),需要支持最大 500 個(gè)圖片下載后轉(zhuǎn)換格式; 如果是一個(gè)一個(gè)下載后轉(zhuǎn)碼,耗時(shí)太長(zhǎng),需要使用 goroutine 實(shí)現(xiàn) 500 個(gè)圖片并發(fā)下載后,并發(fā)轉(zhuǎn)碼; 但自測(cè)過(guò)程中發(fā)現(xiàn),會(huì)偶現(xiàn)下載后只轉(zhuǎn)換了 499 個(gè)圖片或更少的情況(全部下載、轉(zhuǎn)碼成功的條件下); 然后就開(kāi)始了打印日志找 bug 的過(guò)程。 排查問(wèn)題 因?yàn)椴l(fā)時(shí)使用到了 sync 等待全部協(xié)程結(jié)束,起初以為是 sync 異步等待出了問(wèn)題; 打印日志發(fā)現(xiàn),正常執(zhí)行了 500 次下載,執(zhí)行完成下載之后,繼續(xù)執(zhí)行的轉(zhuǎn)碼操作…
-
如何在 Linux 下使用 TC 優(yōu)雅的實(shí)現(xiàn)網(wǎng)絡(luò)限流
1. Linux 下的流量控制原理 通過(guò)對(duì)包的排隊(duì),我們可以控制數(shù)據(jù)包的發(fā)送方式。這種控制,稱(chēng)之為數(shù)據(jù)整形,shape the data,包括對(duì)數(shù)據(jù)的以下操作: 增加延時(shí) 丟包 重新排列 重復(fù)、損壞 速率控制 在 qdisc-class-filter 結(jié)構(gòu)下,對(duì)流量進(jìn)行控制需要進(jìn)行三個(gè)步驟: 創(chuàng)建 qdisc 隊(duì)列 上面提到 Linux 是通過(guò)包的排隊(duì)進(jìn)行流量的控制,那么首先得有一個(gè)隊(duì)列。 創(chuàng)建 class 分類(lèi) class 實(shí)際上,就是劃分流量策略分類(lèi)。比如劃分兩檔流量限速 10MBps、20…
-
LINUX內(nèi)核網(wǎng)絡(luò)中的軟中斷KSOFTIRQD
1. 前言 之前分享過(guò)Linux內(nèi)核網(wǎng)絡(luò)數(shù)據(jù)包的接收過(guò)程,當(dāng)執(zhí)行到網(wǎng)卡通過(guò)硬件中斷(IRQ)通知CPU,告訴它有數(shù)據(jù)來(lái)了,CPU會(huì)根據(jù)中斷表,調(diào)用已經(jīng)注冊(cè)的中斷函數(shù),這個(gè)中斷函數(shù)會(huì)調(diào)到驅(qū)動(dòng)程序(NIC Driver)中相應(yīng)的函數(shù)。驅(qū)動(dòng)先禁用網(wǎng)卡的中斷,表示驅(qū)動(dòng)程序已經(jīng)知道內(nèi)存中有數(shù)據(jù)了,告訴網(wǎng)卡下次再收到數(shù)據(jù)包直接寫(xiě)內(nèi)存就可以了,不要再通知CPU了,這樣可以提高效率,避免CPU不停的被中斷。 由于硬中斷處理程序執(zhí)行的過(guò)程中不能被中斷,所以如果它執(zhí)行時(shí)間過(guò)長(zhǎng),會(huì)導(dǎo)致CPU沒(méi)法響應(yīng)其它硬件的中斷,于…
-
Iptables 介紹與使用
連接跟蹤(conntrack) 連接跟蹤是許多網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)。例如,Kubernetes Service、ServiceMesh sidecar、 軟件四層負(fù)載均衡器 LVS/IPVS、Docker network、OVS、iptables 主機(jī)防火墻等等,都依賴(lài)連接跟蹤功能。 連接跟蹤,顧名思義,就是跟蹤(并記錄)連接的狀態(tài)。例如,圖 1.1 是一臺(tái) IP 地址為 10.1.1.2 的 Linux 機(jī)器,我們能看到這臺(tái)機(jī)器上有三條 連接: 機(jī)器訪問(wèn)外部 HTTP 服務(wù)的連接(目的端口 80) …
-
Go 語(yǔ)言開(kāi)源項(xiàng)目使用的函數(shù)選項(xiàng)模式
01? 介紹 在閱讀 Go 語(yǔ)言開(kāi)源項(xiàng)目的源碼時(shí),我們可以發(fā)現(xiàn)有很多使用 “函數(shù)選項(xiàng)模式” ?的代碼,“函數(shù)選項(xiàng)模式” 是 Rob Pike 在 2014 年提出的一種模式,它使用 Go 語(yǔ)言的兩大特性,變長(zhǎng)參數(shù)和閉包,可以使我們代碼更優(yōu)雅。 關(guān)于變長(zhǎng)參數(shù)和閉包的介紹,需要的讀者朋友們可以查閱歷史文章,本文我們介紹 “函數(shù)選項(xiàng)模式” 的相關(guān)內(nèi)容。 02? 使用方式 在介紹“函數(shù)選項(xiàng)模式”的使用方式之前,我們先閱讀以下這段代碼。 type?User?struct?{ ????Id?int ????…
-
關(guān)于DDoS攻擊,這些基本概念你一定要知道!
不少小伙伴在學(xué)習(xí)DDoS攻擊的攻防原理的時(shí)候會(huì)覺(jué)得略顯吃力。這主要是因?yàn)槔斫庠硎切枰攘私馄涓拍畹摹?本篇文章是一篇關(guān)于DDoS的技術(shù)普及帖,關(guān)于DDoS基本概念,看這一篇就夠了~ 什么是DDoS攻擊 DDoS是Distributed Denial of Service的簡(jiǎn)稱(chēng),中文是分布式拒絕服務(wù)。 這有點(diǎn)拗口吧? 這樣,我們先理解下DDoS的前身DoS(Denial of Service),即拒絕服務(wù)。 最基本的DoS攻擊就是攻擊者利用大量合理的服務(wù)請(qǐng)求來(lái)占用攻擊目標(biāo)過(guò)多的服務(wù)資源,從而使合…
-
最好用的開(kāi)源Web漏掃工具梳理
如果你剛好是某個(gè)網(wǎng)絡(luò)應(yīng)用程序的所有者,怎樣才能保證你的網(wǎng)站是安全的、不會(huì)泄露敏感信息? 如果是基于云的安全解決方案,那么可能只需要進(jìn)行常規(guī)漏掃。但如果不是,我們就必須執(zhí)行例行掃描,采取必要的行動(dòng)降低安全風(fēng)險(xiǎn)。 當(dāng)然很多付費(fèi)掃描器功能會(huì)更加全面、嚴(yán)謹(jǐn),包含報(bào)表輸出、警報(bào)、詳細(xì)的應(yīng)急指南等等附加功能。 開(kāi)源工具最大的缺點(diǎn)是漏洞庫(kù)可能沒(méi)有付費(fèi)軟件那么全面。 1. Arachni Arachni是一款基于Ruby框架搭建的高性能安全掃描程序,適用于現(xiàn)代Web應(yīng)用程序??捎糜贛ac、Windows及Lin…
-
14 個(gè)必須掌握的數(shù)據(jù)庫(kù)面試問(wèn)題
1 為什么使用數(shù)據(jù)索引能提高效率 數(shù)據(jù)索引的存儲(chǔ)是 有序的 在有序的情況下, 通過(guò)索引查詢(xún)一個(gè)數(shù)據(jù)是無(wú)需遍歷索引記錄的 極端情況下,數(shù)據(jù)索引的查詢(xún)效率為二分法查詢(xún)效率,趨近于log2(N) 2 B+樹(shù)索引和哈希索引的區(qū)別 B+樹(shù)是一個(gè)平衡的多叉樹(shù),從根節(jié)點(diǎn)到每個(gè)葉子節(jié)點(diǎn)的高度差值不超過(guò)1,而且同層級(jí)的節(jié)點(diǎn)間有指針相互鏈接,是有序的,如下圖: 哈希索引就是采用一定的哈希算法,把鍵值換算成新的哈希值,檢索時(shí)不需要類(lèi)似B+樹(shù)那樣從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)逐級(jí)查找,只需一次哈希算法即可,是無(wú)序的,如下圖所示: …
-
20 個(gè)最重要的 DevOps 面試題
DevOps 代表開(kāi)發(fā)和運(yùn)營(yíng)。這是一種新的軟件開(kāi)發(fā)形式,徹底改變了軟件產(chǎn)品的開(kāi)發(fā)和分發(fā)方式。DevOps方法論著眼于提供頻繁的較小升級(jí),而不是罕見(jiàn)的大型功能集。 IT運(yùn)營(yíng)受益于DevOps。在DevOps出現(xiàn)之前,IT團(tuán)隊(duì)仍然存在一些內(nèi)在的擔(dān)憂。這導(dǎo)致IT團(tuán)隊(duì)面臨某種程度的意外懷疑。 但是,隨著DevOps的加入,這一切都發(fā)生了變化,這使IT運(yùn)營(yíng)部門(mén)可以與組織的其他部門(mén)共享這些問(wèn)題,從而提高了透明度,并提高了IT運(yùn)營(yíng)部門(mén)與其他團(tuán)隊(duì)之間的協(xié)調(diào)性。 以下部分介紹了前20個(gè)DevOps面試問(wèn)題,這些問(wèn)…