MySQL 性能監控 4 大指標

?

??

【編者按】本文作者為 John Matson,主要介紹?mysql?性能監控應該關注的 4 大指標。 文章系國內?ITOM?管理平臺?OneAPM?編譯呈現。

??

MySQL 是什么?

?

MySQL?是現而今最流行的開源關系型數據庫服務器。由?Oracle?所有,MySQL 提供了可以免費下載的社區版及包含更多特性與支持的商業版。從 1995 年首發以來,MySQL 衍生出多款備受矚目的分支,諸如具有相當競爭力的 MariaDB 及 Percona。

??

關鍵 MySQL 統計指標

?

如果你的數據庫運行緩慢,或者出于某種原因無法響應查詢,技術棧中每個依賴數據庫的組件都會遭受性能問題。為了保證數據庫的平穩運行,你可以主動監控以下四個與性能及資源利用率相關的指標:

  • 查詢吞吐量

  • 查詢執行性能

  • 連接情況

  • 緩沖池使用情況

?

MySQL 用戶可以接觸到數百個數據庫指標,因此,在本文中,筆者將專注于能幫助我們實時了解數據庫健康與性能的關鍵指標。

?

本文參考了我們在監控入門系列文章中介紹的指標術語,后者為指標收集與告警提供了基礎框架。

?

?

?

不同版本與技術的兼容性

?

本系列文章討論的一些監控策略只適用于 MySQL 5.6 與 5.7 版本。這些版本間的差異將在后文中提及。

?

本文列出的大多數指標與監控策略同樣適用于與 MySQL 兼容的技術,諸如 MariaDB 與 Percona 服務器,不過帶有一些明顯的差別。例如,MySQL Workbench(工作臺) 中的一些特性(在本系列第二篇中有詳細介紹)就與當下的一些 MariaDB 版本不兼容。

?

Amazon RDS 用戶應該查看我們專門制作的?MySQL 在 RDS?以及與 MySQL 兼容的?Amazon Aurora監控手冊。

?

?

?

查詢吞吐量

?

?

名稱描述指標類型可用性
Questions已執行語句(由客戶端發出)計數Work:吞吐量服務器狀態變量
Com_selectSELECT 語句Work:吞吐量服務器狀態變量
Writes插入,更新或刪除Work:吞吐量根據服務器狀態變量計算得到

?

在監控任何系統時,你最關心的應該是確保系統能夠高效地完成工作。數據庫的工作是運行查詢,因此在本例中,你的首要任務是確保 MySQL 能夠如期執行查詢。

?

MySQL 有一個名為?Questions?的內部計數器(根據 MySQL 用語,這是一個服務器狀態變量),客戶端每發送一個查詢語句,其值就會加一。由?Questions?指標帶來的以客戶端為中心的視角常常比相關的Queries?計數器更容易解釋。作為存儲程序的一部分,后者也會計算已執行語句的數量,以及諸如PREPARE?和?DEALLOCATE PREPARE?指令運行的次數,作為服務器端預處理語句的一部分。

?

通過以下指令,查詢諸如?Questions?或?Com_select?服務器狀態變量的值:

SHOW?GLOBAL?STATUS?LIKE?"Questions";
+---------------+--------+
|?Variable_name?|?Value??|
+---------------+--------+
|?Questions?????|?254408?|
+---------------+--------+

?

你也可以監控讀、寫指令的分解情況,從而更好地理解數據庫的工作負載、找到可能的瓶頸。通常,讀取查詢會由?Com_select?指標抓取,而寫入查詢則可能增加三個狀態變量中某一個的值,這取決于具體的指令:

Writes?=?Com_insert?+?Com_update?+?Com_delete

?

?

應該設置告警的指標:Questions

?

當前的查詢速率通常會有起伏,因此,如果基于固定的臨界值,查詢速率常常不是一個可操作的指標。但是,對于查詢數量的突變設置告警非常重要——尤其是查詢量的驟降,可能暗示著某個嚴重的問題。

?

?

?

查詢性能

?

?

名稱描述指標類型可用性
查詢運行時間每種模式下的平均運行時間Work:性能性能模式查詢
查詢錯誤出現錯誤的 SQL 語句數量Work:錯誤性能模式查詢
Slow_queries超過可配置的long_query_time?限制的查詢數量Work:性能服務器狀態變量

?

MySQL 用戶監控查詢延遲的方式有很多,既可以通過 MySQL 內置的指標,也可以通過查詢性能模式。從?MySQL 5.6.6?版本開始默認啟用,MySQL 的?performance_schema?數據庫中的表格存儲著服務器事件與查詢執行的低水平統計數據。

?

?

性能模式語句摘要

?

性能模式的?events_statements_summary_by_digest?表格中保存著許多關鍵指標,抓取了與每條標準化語句有關的延遲、錯誤和查詢量信息。從該表截取的一行樣例顯示,某條語句被執行了兩次,平均執行用時為 325 毫秒(所有計時器的測量值都以微微秒為單位):

***************************?1.?row?***************************?SCHEMA_NAME:?employees?????????????????????DIGEST:?0c6318da9de53353a3a1bacea70b4fce????????????????DIGEST_TEXT:?SELECT?*?FROM?`employees`?WHERE?`emp_no`?>???COUNT_STAR:?2?????????????SUM_TIMER_WAIT:?650358383000?????????????MIN_TIMER_WAIT:?292045159000?????????????AVG_TIMER_WAIT:?325179191000?????????????MAX_TIMER_WAIT:?358313224000??????????????SUM_LOCK_TIME:?520000000?????????????????SUM_ERRORS:?0???????????????SUM_WARNINGS:?0?????????SUM_ROWS_AFFECTED:?0??????????????SUM_ROWS_SENT:?520048??????????SUM_ROWS_EXAMINED:?520048...??????????SUM_NO_INDEX_USED:?0?????SUM_NO_GOOD_INDEX_USED:?0?????????????????FIRST_SEEN:?2016-03-24?14:25:32??????????????????LAST_SEEN:?2016-03-24?14:25:55

?

摘要表會標準化所有語句(如上面的?DIGEST_TEXT?一欄所示),忽略數據值,規范化空格與大小寫,因此,下面的兩條查詢會被認為是相同的:

select?*?from?employees?where?emp_no?>200;
SELECT?*?FROM?employees?WHERE?emp_no?>?80000;

?

想要按模式抽取出以微秒為單位的平均運行時間,你可以這樣查詢性能模式:

SELECT?schema_name,?SUM(count_star)?count?????,?ROUND(???(SUM(sum_timer_wait)?/?SUM(count_star))??????????????/?1000000)?AS?avg_microsec??FROM?performance_schema.events_statements_summary_by_digest?WHERE?schema_name?IS?NOT?NULL?GROUP?BY?schema_name;
+--------------------+-------+--------------+
|?schema_name????????|?count?|?avg_microsec?|
+--------------------+-------+--------------+
|?employees??????????|???223?|???????171940?|
|?performance_schema?|????37?|????????20761?|
|?sys????????????????|?????4?|??????????748?|
+--------------------+-------+--------------+

?

相似地,按模式計算出現錯誤的語句總數,可以這么做:

SELECT?schema_name,?SUM(sum_errors)?err_countFROM?performance_schema.events_statements_summary_by_digest?WHERE?schema_name?IS?NOT?NULL?GROUP?BY?schema_name;
+--------------------+-----------+
|?schema_name????????|?err_count?|
+--------------------+-----------+
|?employees??????????|?????????8?|
|?performance_schema?|?????????1?|
|?sys????????????????|?????????3?|
+--------------------+-----------+

?

?

sys 模式

?

用上面的方式查詢性能模式能以編程方式有效地從數據庫中檢索出指標。然而,對于特別查詢或調查,使用 MySQL 的?sys 模式通常更為簡單。sys 模式以人們更易讀的格式提供了一個有條理的指標集合,使得對應的查詢更加簡單。例如,想要找出最慢的語句(運行時間在 95 名開外):

SELECT?*?FROM?sys.statements_with_runtimes_in_95th_percentile;

?

或者查看哪些標準化語句出現了錯誤:

SELECT?*?FROM?sys.statements_with_errors_or_warnings;

?

在 sys 模式的文檔中,詳細介紹了許多有用的例子。sys 模式在 MySQL 5.7.7 版本中是默認包含的。不過,MySQL 5.6 用戶通過簡單的幾個指令就能安裝它。

?

?

慢查詢

?

除了性能模式與 sys 模式中豐富的性能數據,MySQL 還提供了一個?Slow_queries?計數器,每當查詢的執行時間超過?long_query_time?參數指定的值之后,該計數器就會增加。默認情況下,該臨界值設置為 10 秒。

SHOW?VARIABLES?LIKE?'long_query_time';
+-----------------+-----------+
|?Variable_name???|?Value?????|
+-----------------+-----------+
|?long_query_time?|?10.000000?|
+-----------------+-----------+

?

?

long_query_time?參數的值可通過一條指令進行調整。例如,將慢查詢臨界值設置為 5 秒:

SET?GLOBAL?long_query_time?=?5;

?

(請注意,你可能要關閉會話,再重新連接至數據庫,這些更改才能在會話層生效。)

?

?

調查查詢性能問題

?

如果你的查詢運行得比預期要慢,很可能是某條最近修改的查詢在搗鬼。如果沒有發現特別緩慢的查詢,接下來就該評估系統級指標,尋找核心資源(CPU,磁盤 I/O,內存以及網絡)的限制。CPU 飽和與 I/O 瓶頸是常見的問題根源。你可能還想檢查?Innodb_row_lock_waits?指標,該指標記錄著 InnoDB 存儲引擎不得不停下來獲得某行的鎖定的次數。從 MySQL 5.5 版本起,InnoDB 就是默認的存儲引擎,MySQL 對 InnoDB 表使用行級鎖定。

?

為了提高讀取與寫入操作的速度,許多用戶會想通過調整 InnoDB 使用的緩沖池大小來緩存表與索引數據。本文的第二部分會對監控與調整緩沖池大小做詳細解讀。

?

?

應該設置告警的指標:

  • 查詢運行時間:管理關鍵數據庫的延遲至關重要。如果生產環境中數據庫的平均查詢運行時間開始下降,應該尋找數據庫實例的資源限制,行鎖或表鎖間可能的爭奪,以及客戶端查詢模式的變化情況。

  • 查詢錯誤:查詢錯誤的猛增可能暗示著客戶端應用或數據庫本身的問題。你可以使用 sys 模式快速查找可能導致問題的查詢。例如,列舉出返回錯誤數最多的 10 條標準化語句:

SELECT?*?FROM?sys.statements_with_errors_or_warnings?
ORDER?BY?errors?DESC?LIMIT?10;
  • Slow_queries:如何定義慢查詢(并由此設置?long_query_time?參數)取決于你的用戶案例。但是,無論你如何定義 “慢”,你都會想知道慢查詢的數量是否超出了基準水平。為了找出真正執行緩慢的查詢,你可以詢問 sys 模式,或深入了解 MySQL 提供的慢查詢日志(該功能默認是禁用的)。有關啟用并讀取慢查詢日志的更多信心,請參考?MySQL 文檔。

?

?

?

連接

?

?

名稱描述指標類型可用性
Threads_connected當前開放的連接資源: 利用率服務器狀態變量
Threads_running當前運行的連接資源: 利用率服務器狀態變量
Connection_errors_internal由服務器錯誤導致的失敗連接數資源: 錯誤服務器狀態變量
Aborted_connects嘗試與服務器進行連接結果失敗的次數資源: 錯誤服務器狀態變量
Connection_errors_max_connections由?max_connections?限制導致的失敗連接數資源: 錯誤服務器狀態變量

?

?

檢查并設置連接限制

?

監控客戶端連接情況相當重要,因為一旦可用連接耗盡,新的客戶端連接就會遭到拒絕。MySQL 默認的連接數限制為 151,可通過下面的查詢加以驗證:

SHOW?VARIABLES?LIKE?'max_connections';
+-----------------+-------+
|?Variable_name???|?Value?|
+-----------------+-------+
|?max_connections?|?151???|
+-----------------+-------+

?

MySQL 的文檔指出,健壯的服務器應該能夠處理成百上千的連接數。

?

“常規情況下,Linux 或 Solaris 應該能夠支持 500 到 1000 個同時連接。如果可用的 RAM 較大,且每個連接的工作量較低或目標響應時間較為寬松,則最多可處理 10000 個連接。而 Windows 能處理的連接數一般不超過 2048 個,這是由于該平臺上使用的 Posix 兼容層。”

?

連接數限制可以在系統運行時進行調整:

SET?GLOBAL?max_connections?=?200;

?

然而,此設置會在服務器重啟時恢復為默認值。想要永久地改變連接數限制,可以在?my.cnf?配置文件中添加如下配置(查看本文了解如何定位配置文件):

max_connections?=?200

?

?

監控連接使用率

?

MySQL 提供了?Threads_connected?指標以記錄連接的線程數——每個連接對應一個線程。通過監控該指標與先前設置的連接限制,你可以確保服務器擁有足夠的容量處理新的連接。MySQL 還提供了Threads_running?指標,幫助你分隔在任意時間正在積極處理查詢的線程與那些雖然可用但是閑置的連接。

?

如果服務器真的達到?max_connections?限制,它就會開始拒絕新的連接。在這種情況下,Connection_errors_max_connections?指標就會開始增加,同時,追蹤所有失敗連接嘗試的Aborted_connects?指標也會開始增加。

?

MySQL 提供了許多有關連接錯誤的指標,幫助你調查連接問題。Connection_errors_internal?是個很值得關注的指標,因為該指標只會在錯誤源自服務器本身時增加。內部錯誤可能反映了內存不足狀況,或者服務器無法開啟新的線程。

?

?

應該設置告警的指標

?

  • Threads_connected:當所有可用連接都被占用時,如果一個客戶端試圖連接至 MySQL,后者會返回 “Too many connections(連接數過多)” 錯誤,同時將Connection_errors_max_connections?的值增加。為了防止出現此類情況,你應該監控可用連接的數量,并確保其值保持在?max_connections?限制以內。

  • Aborted_connects:如果該計數器在不斷增長,意味著用戶嘗試連接到數據庫的努力全都失敗了。此時,應該借助?Connection_errors_max_connections?與 ?Connection_errors_internal?之類細粒度高的指標調查該問題的根源。

?

?

?

緩沖池使用情況

?

?

名稱描述指標類型可用性
Innodb_buffer_pool_pages_total緩沖池中的總頁數資源: 利用率服務器狀態變量
緩沖池使用率緩沖池中已使用頁數所占的比率資源: 利用率根據服務器狀態變量計算得到
Innodb_buffer_pool_read_requests向緩沖池發送的請求資源: 利用率服務器狀態變量
Innodb_buffer_pool_reads緩沖池無法滿足的請求資源: 飽和度服務器狀態變量

?

MySQL 默認的存儲引擎 InnoDB 使用了一片稱為緩沖池的內存區域,用于緩存數據表與索引的數據。緩沖池指標屬于資源指標,而非工作指標,前者更多地用于調查(而非檢測)性能問題。如果數據庫性能開始下滑,而磁盤 I/O 在不斷攀升,擴大緩沖池往往能帶來性能回升。

?

?

檢查緩沖池的大小

?

默認設置下,緩沖池的大小通常相對較小,為 128MiB。不過,MySQL 建議可將其擴大至專用數據庫服務器物理內存的 80% 大小。然而,MySQL 也指出了一些注意事項:InnoDB 的內存開銷可能提高超過緩沖池大小 10% 的內存占用。并且,如果你耗盡了物理內存,系統會求助于分頁,導致數據庫性能嚴重受損。

?

緩沖池也可以劃分為不同的區域,稱為實例。使用多個實例可以提高大容量 (多 GiB) 緩沖池的并發性。

?

緩沖池大小調整操作是分塊進行的,緩沖池的大小必須為塊的大小乘以實例的數目再乘以某個倍數。

innodb_buffer_pool_size?=?N?*?innodb_buffer_pool_chunk_size?*?innodb_buffer_pool_instances

?

塊的默認大小為 128 MiB,但是從 MySQL 5.7.5 開始可以自行配置。以上兩個參數的值都可以通過如下方式進行檢查:

SHOW?GLOBAL?VARIABLES?LIKE?"innodb_buffer_pool_chunk_size";
SHOW?GLOBAL?VARIABLES?LIKE?"innodb_buffer_pool_instances";

?

如果?innodb_buffer_pool_chunk_size?查詢沒有返回結果,則表示在你使用的 MySQL 版本中此參數無法更改,其值為 128 MiB。

?

在服務器啟動時,你可以這樣設置緩沖池的大小以及實例的數量:

$?mysqld?--innodb_buffer_pool_size=8G?
--innodb_buffer_pool_instances=16

?

在 MySQL 5.7.5 版本,你可以通過?SET?指令在系統運行時修改緩沖池的大小,并精確到字節數。例如,假設有兩個緩沖池實例,你可以將其總大小設置為 8 GiB,這樣每個實例的大小即為 4 GiB。

SET?GLOBAL?innodb_buffer_pool_size=8589934592;

?

?

關鍵的 InnoDB 緩沖池指標

?

MySQL 提供了許多關于緩沖池及其利用率的指標。其中一些有用的指標能夠追蹤緩沖池的總大小,緩沖池的使用量,以及其處理讀取操作的效率。

?

指標?Innodb_buffer_pool_read_requests?及?Innodb_buffer_pool_reads?對于理解緩沖池利用率都非常關鍵。Innodb_buffer_pool_read_requests?追蹤合理讀取請求的數量,而Innodb_buffer_pool_reads?追蹤緩沖池無法滿足,因而只能從磁盤讀取的請求數量。我們知道,從內存讀取的速度比從磁盤讀取通常要快好幾個數量級,因此,如果?Innodb_buffer_pool_reads?的值開始增加,意味著數據庫性能大有問題。

?

緩沖池利用率是在考慮擴大緩沖池之前應該檢查的重要指標。利用率指標無法直接讀取,但是可以通過下面的方式簡單地計算得到:

(Innodb_buffer_pool_pages_total?-?Innodb_buffer_pool_pages_free)?/?Innodb_buffer_pool_pages_total

?

如果你的數據庫從磁盤進行大量讀取,而緩沖池還有許多閑置空間,這可能是因為緩存最近才清理過,還處于熱身階段。如果你的緩沖池并未填滿,但能有效處理讀取請求,則說明你的數據工作集相當適應目前的內存配置。

?

然而,較高的緩沖池利用率并不一定意味著壞消息,因為舊數據或不常使用的數據會根據?LRU 算法?自動從緩存中清理出去。但是,如果緩沖池無法有效滿足你的讀取工作量,這可能說明擴大緩存的時機已至。

?

?

將緩沖池指標轉化為字節

?

大多數緩沖池指標都以內存頁面為單位進行記錄,但是這些指標也可以轉化為字節,從而使其更容易與緩沖池的實際大小相關聯。例如,你可以使用追蹤緩沖池中內存頁面總數的服務器狀態變量找出緩沖池的總大小(以字節為單位):

Innodb_buffer_pool_pages_total?*?innodb_page_size

?

InnoDB 頁面大小是可調整的,但是默認設置為 16 KiB,或 16,384 字節。你可以使用?SHOW VARIABLES?查詢了解其當前值:

SHOW?VARIABLES?LIKE?"innodb_page_size";

?

?

?

?

?

結論

?

在本文中,我們介紹了許多你應該加以監控從而了解 MySQL 活動與性能表現的重要指標。如果你正在躊躇 MySQL 監控方案,抓取下面列出的指標能讓你真正理解數據庫的使用模式與可能的限制情況。這些指標也能幫助你發現,何時擴展服務器內存或將數據庫移至更為強大的主機,從而保持良好的應用性能。

  • 查詢吞吐量

  • 查詢延遲與錯誤

  • 客戶端連接與錯誤

  • 緩沖池利用率

?

?

?

?

?

鳴謝

?

非常感謝來自?Oracle?的 Dave Stokes 與 VividCortex 的 Ewen Fortune,他們在本文發布之前提供了許多寶貴的反饋意見。

?

?

?

?

?

本文系?OneAPM?工程師編譯整理。OneAPM Cloud Insight?集監控、管理、計算、協作、可視化于一身,幫助所有 IT 公司,減少在系統監控上的人力和時間成本投入,讓運維工作更加高效、簡單。想技術文章,請訪問?OneAPM 官方技術博客。

?

?

原文地址:https://www.datadoghq.com/blog/monitoring-mysql-performance-metrics/

?

?

http://blog.oneapm.com/apm-tech/754.html

http://blog.oneapm.com/apm-tech/755.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/458273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458273.shtml
英文地址,請注明出處:http://en.pswp.cn/news/458273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【深度相機系列四】深度相機原理揭秘--結構光(iPhone X 齊劉海原理)

from:https://blog.csdn.net/electech6/article/details/78707839導讀 結構光法:為解決雙目匹配問題而生 深度圖效果:結構光vs.雙目 投射圖案的編碼方式直接編碼時分復用編碼空分復用編碼 Kinect1原理 iPhone X原深感相機是縮小版的更強大的K…

iOS開發中對于一些常用的相對路徑(持續更新)

1.iOS開發的證書的描述文件放置地點 ~/Library/MobileDevice/Provisioning Profiles 2.$(SRCROOT)代表的是這個項目文件夾所在的位置 $(PROJECT_DIR) 表示的包含可執行文件的哪一個文件夾 3.對于pod導入的第三方庫,引用不自動補全問題。選擇target -> BuildSet…

Android倒計時工具類

為什么80%的碼農都做不了架構師?>>> 原文地址:http://my.oschina.net/reone/blog/710003 多謝touch_ping 的回應. 原來api有這個類 android.os.CountDownTimer , 具體實現很下面的差不多. import android.content.Context; import android.os.Handler…

深度相機原理揭秘--雙目立體視覺

歡迎關注計算機視覺life!導讀 為什么非得用雙目相機才能得到深度? 雙目立體視覺深度相機的工作流程 雙目立體視覺深度相機詳細工作原理理想雙目相機成像模型極線約束圖像矯正技術基于滑動窗口的圖像匹配基于能量優化的圖像匹配 雙目立體視覺深度相機的優…

微信掃碼支付模式一和模式二的區別

http://www.baidu.com/link?urlAj_xhOM5Q6rpZXkTMBPq4o0UbCO4eLq0esX8B3K2v06bkRS8F8lC4k06rv-3uZARLLTEKJHMhwzI_cdcJiHfqK&wd&eqid904bc71f000181740000000356d7d9bf https://www.zhihu.com/question/35818812/answer/66086727 知乎頁面訪問存在502 Bad Gateway問題…

雙目視覺幾何框架詳解(玉米專欄8篇匯總)

一、圖像坐標:我想和世界坐標談談(A) 玉米竭力用輕松具體的描述來講述雙目三維重建中的一些數學問題。希望這樣的方式讓大家以一個輕松的心態閱讀玉米的《計算機視覺學習筆記》雙目視覺數學架構系列博客。這個系列博客旨在捋順一下已標定的雙目視覺中的數學主線。數…

(原)Ubuntu14中安裝GraphicsMagick

轉載請注明出處: http://www.cnblogs.com/darkknightzh/p/5661439.html 參考網址: http://comments.gmane.org/gmane.comp.video.graphicsmagick.core/514 http://www.graphicsmagick.org/INSTALL-unix.html https://github.com/clementfarabet/graphics…

js全局函數

1.parseInt(String,radix):返回轉換成整數的值。 注意:當參數radix的值為0,或者沒有設置這個參數,parseInt()會根據string來判斷數字的基數。 當忽略radix,JavaScript默認數字的基數規則為: 1.如果string以0x開頭&…

android之自定義廣播

布局文件 點擊按鈕發送廣播 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical" android:layout_width"match_parent&qu…

世界坐標系和相機坐標系,圖像坐標系的關系

from&#xff1a;https://blog.csdn.net/waeceo/article/details/50580607一、四個坐標系簡介和轉換相機模型為以后一切標定算法的關鍵&#xff0c;只有這邊有相當透徹的理解&#xff0c;對以后的標定算法才能有更好的理解。本人研究了好長時間&#xff0c;幾乎每天都重復看幾遍…

PythonOCC 3D圖形庫學習—創建立方體模型

Open CASCADE&#xff08;簡稱OCC&#xff09;平臺是是一個開源的C類庫&#xff0c;OCC主要用于開發二維和三維幾何建模應用程序&#xff0c;包括通用的或專業的計算機輔助設計CAD系統、制造或分析領域的應用程序、仿真應用程序或圖形演示工具。 PythonOCC是對Open CASCADE的封…

Struts2、SpringMVC、Servlet(Jsp)性能對比 測試 。 Servlet的性能應該是最好的,可以做為參考基準,其它測試都要向它看齊,參照...

2019獨角獸企業重金招聘Python工程師標準>>> Struts2、SpringMVC、Servlet(Jsp)性能對比 測試 。 Servlet的性能應該是最好的&#xff0c;可以做為參考基準&#xff0c;其它測試都要向它看齊&#xff0c;參照它。 做為一個程序員&#xff0c;對于各個框架的性能要有…

深度相機(三)--三種方案對比

from&#xff1a;https://blog.csdn.net/app_12062011/article/details/52511701RGBD方案對比&#xff1a;關鍵技術規格&#xff1a; 1.檢測范圍&#xff1b; 2.檢測精度&#xff1b; 3.檢測角度&#xff1b; 4.幀率。 5.模塊大小 6.功耗 目前主流的深度攝像頭方案在檢測距離上…

Activity隱式啟動IntentFilter

時間&#xff1a;2016年3月4日09:54:02IntentFilter過濾信息&#xff1a;action、category、dataaction&#xff1a;1.Intent中的action必須能夠和過濾條件中的action匹配&#xff0c;過濾條件中可以有多個action。2.Intent中如果設置多個action則過濾條件中必須至少有同樣數量…

基于圖像分割的立體匹配方法

1.緒論 立體匹配是三維重建系統的關鍵步驟&#xff0c;并且作為一種非接觸測量方法在工業以及科研領域具有重要的應用價值。為了完成匹配工作以及獲取場景的稠密視差圖&#xff0c;可以通過構建能量函數對應立體匹配的約束條件。復雜能量函數的全局最優解通常是NP難問題。相對于…

深度相機之TOF原理詳解

/*******************************************************************************************************************本文轉載源鏈接沒有找到&#xff0c;若有幸被原創作者訪問到&#xff0c;請留下原出處&#xff0c;我會更新&#xff0c;謝謝&#xff0c;轉載至我的博…

nodejs npm常用命令

npm是一個node包管理和分發工具&#xff0c;已經成為了非官方的發布node模塊&#xff08;包&#xff09;的標準。有了npm&#xff0c;可以很快的找到特定服務要使用的包&#xff0c;進行下載、安裝以及管理已經安裝的包。 1、npm install moduleNames&#xff1a;安裝Node模塊安…

centos 7 /etc/rc.local 開機不執行的問題

最近發現centos7 的/etc/rc.local不會開機執行&#xff0c;于是認真看了下/etc/rc.local文件內容的就發現了問題的原因了 1234567891011#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# …

深度相機(二)--結構光深度測距

原文&#xff1a; http://blog.sina.com.cn/s/blog_80ce3a550100wg5j.html http://blog.csdn.net/u013360881/article/details/51395427 網上資源&#xff1a;http://eia.udg.es/~qsalvi/recerca.html 結構光編碼&#xff1a; 在3D 的深度獲取上&#xff0c;最為常見的方法是類…

幾種特別的顏色參數

switch (buttonIndex) { case 0: aColor [UIColor redColor]; bColor [UIColor colorWithRed:0.97 green:0.68 blue:0.75 alpha:1.0];// 鴇色 break; case 1: aColor [UIColor orangeColor]; bColor [UIColor colorWithRed:1.0 green:0.87 blue:0.72 alpha:1.0];// 肌色 br…