⑴ 如何提高Linux伺服器磁碟io性能
您好,很高興為您解答。
在現有文件系統下進行優化:
linux內核和各個文件系統採用了幾個優化方案來提升磁碟訪問速度。但這些優化方案需要在我們的伺服器設計中進行配合才能得到充分發揮。
文件系統緩存
linux內核會將大部分空閑內存交給虛擬文件系統,來作為文件緩存,叫做page cache。在內存不足時,這部分內存會採用lru演算法進行淘汰。通過free命令查看內存,顯示為cached的部分就是文件緩存了。
如何針對性優化:
lru並不是一個優秀淘汰演算法,lru最大的優勢是普適性好,在各種使用場景下都能起到一定的效果。如果能找到當前使用場景下,文件被訪問的統計特徵,針 對性的寫一個淘汰演算法,可以大幅提升文件緩存的命中率。對於http正向代理來說,一個好的淘汰演算法可以用1GB內存達到lru演算法100GB內存的緩存 效果。如果不打算寫一個新的淘汰演算法,一般不需要在應用層再搭一個文件cache程序來做緩存。
最小分配:
當文件擴大,需要分配磁碟空間時,大部分文件系統不會僅僅只分配當前需要的磁碟空間,而是會多分配一些磁碟空間。這樣下次文件擴大時就可以使用已經分配好的空間,而不會頻繁的去分配新空間。
例如ext3下,每次分配磁碟空間時,最小是分配8KB。
最小分配的副作用是會浪費一些磁碟空間(分配了但是又沒有使用)
如何針對性優化:
我們在reiserfs下將最小分配空間從8KB改大到128K後提升了30%的磁碟io性能。如果當前使用場景下小文件很多,把預分配改大就會浪費很多 磁碟空間,所以這個數值要根據當前使用場景來設定。似乎要直接改源代碼才能生效,不太記得了,09年的時候改的,有興趣的同學自己google吧。
io訪問調度:
在同時有多個io訪問時,linux內核可以對這些io訪問按LBA進行合並和排序,這樣磁頭在移動時,可以「順便」讀出移動過程中的數據。
SATA等磁碟甚至在磁碟中內置了io排序來進一步提升性能,一般需要在主板中進行配置才能啟動磁碟內置io排序。linux的io排序是根據LBA進行的,但LBA是一個一維線性地址,無法完全反應出二維的圓形磁碟,所以磁碟的內置io排序能達到更好的效果。
如何針對性優化:
io訪問調度能大幅提升io性能,前提是應用層同時發起了足夠的io訪問供linux去調度。
怎樣才能從應用層同時向內核發起多個io訪問呢?
方案一是用aio_read非同步發起多個文件讀寫請求。
方案二是使用磁碟線程池同時發起多個文件讀寫請求。
對我們的http正向代理來說,採用16個線程讀寫磁碟可以將性能提升到2.5倍左右。具體開多少個線程/進程,可以根據具體使用場景來決定。
小提示:
將文件句柄設置為非阻塞時,進程還是會睡眠等待磁碟io,非阻塞對於文件讀寫是不生效的。在正常情況下,讀文件只會引入十幾毫秒睡眠,所以不太明顯;而在磁碟io極大時,讀文件會引起十秒以上的進程睡眠。
預讀取:
linux內核可以預測我們「將來的讀請求」並提前將數據讀取出來。通過預讀取可以減少讀io的次數,並且減小讀請求的延時。
如何針對性優化:
預讀取的預測准確率是有限的,與其依賴預讀取,不如我們直接開一個較大的緩沖區,一次性將文件讀出來再慢慢處理;盡量不要開一個較小的緩沖區,循環讀文件/處理文件。
雖然說「預讀取」和「延遲分配」能起到類似的作用,但是我們自己擴大讀寫緩沖區效果要更好。
延遲分配:
當文件擴大,需要分配磁碟空間時,可以不立即進行分配,而是暫存在內存中,將多次分配磁碟空間的請求聚合在一起後,再進行一次性分配。
延遲分配的目的也是減少分配次數,從而減少文件不連續。
延遲分配的副作用有幾個:
1、如果應用程序每次寫數據後都通過fsync等介面進行強制刷新,延遲分配將不起作用
2、延遲分配有可能間歇性引入一個較大的磁碟IO延時(因為要一次性向磁碟寫入較多數據)
只有少數新文件系統支持這個特性
如何針對性優化:
如果不是對安全性(是否允許丟失)要求極高的數據,可以直接在應用程序里緩存起來,積累到一定大小再寫入,效果比文件系統的延遲分配更好。如果對安全性要求極高,建議經常用fsync強制刷新。
在線磁碟碎片整理:
Ext4提供了一款碎片整理工具,叫e4defrag,主要包含三個功能:
1、讓每個文件連續存儲
2、盡量讓每個目錄下的文件連續存儲
3、通過整理空閑磁碟空間,讓接下來的分配更不容易產生碎片
如何針對性優化:
「讓每個目錄下的文件連續存儲」是一個極有價值的功能。
傳統的做法是通過拼接圖片來將這10張圖片合並到一張大圖中,再由前端將大圖切成10張小圖。
有了e4defrag後,可以將需連續訪問的文件放在同一個文件夾下,再定期使用e4defrag進行磁碟整理。
實現自己的文件系統:
在大部分伺服器上,不需要支持「修改文件」這個功能。一旦文件創建好,就不能再做修改操作,只支持讀取和刪除。在這個前提下,我們可以消滅所有文件碎片,把磁碟io效率提升到理論極限。
有一個公式可以衡量磁碟io的效率:
磁碟利用率 = 傳輸時間/(平均尋道時間+傳輸時間)
如若滿意,請點擊回答右側【採納答案】,如若還有問題,請點擊【追問】
~ O(∩_∩)O~
⑵ 什麼是nDVR
nDVR是一個專業的遠程網路視頻監控軟體,支持語音雙向傳輸,可以通過任何IP網路進行數字視頻的管理。與PT5000 CDMA無線視頻終端相結合,nDVR能夠使CCTV與企業區域網或廣域網的圖控實現真正的整合。
nDVR軟體在WINDOWS NT/2000上運行,具有「基本版」、「增強版」、「企業版」 3個版本。nDVR分布式結構可以同時實況轉播來自多個站點的圖像,並可同時存儲圖像信息。任意指定的網上分布存貯,提供在多個地點用全雙工方式存儲和觀看任何鏡頭圖像和操作報警。
無論是校園、公司的區域網,或一個城市的廣域網,還是國際互連網,有效的帶寬的使用和管理是成功地使用分布式網路視頻系統的關鍵。nDVR以MPEG4圖像編碼為標准。這個標准為IP和無線網路多媒體內容的編碼、傳輸和解碼定義了一個統一的框架。它被絕大多數工業專家視為IP網路最有效的圖像編碼標准。
通過使用MPEG4編碼,nDVR將存儲和網路帶寬需求降到最低。因此可以通過合理的存儲容量需求進行長時間記錄,實現以最低費用使用公共網路。
二、nDVR功能
使用經濟可靠的IP設備,實現端到端數字解決方案
分布式結構提供無限硬體存儲容量(nDVR企業版)
能夠支持多場所的中央監控,不受地理限制
與常規CCTV設備緊密結合
友好的圖標界面,用拖-拉或滑鼠點擊指令
多層進入許可權,安全可靠的用戶進入途徑
連續的、計劃性的、或以突發事件為基礎的先進錄像和事件存儲能力
強有力的調查和視頻檔案搜索工具可以按時間、日期、動作程度、報警和用戶定義標簽進行搜索
使用「水印」提供數字鑒定和不可更改錄象的保護
有力的管理工具能夠進行全面帶寬使用控制,包括對每一個硬碟的存儲限制.
三、nDVR由3個用戶界面模塊構成
系統設置工具
自動發現所有AV1600e設備
遠端設備軟體更新(單獨或批量兩種方式)
設備IP地址和網路參數的設置
圖像存儲設置,包括攝像機名稱分配、帶寬限制、錄制畫面每秒幅數和質量,突發事件或連續性存儲
進行順序或斷點的觀察設定,以進行自動順序監控
報警前、後存儲和像素變化檢測設置
用戶登錄和使用許可權管理
註:使用nDVR 基本版和增強版存儲集中在一個計算機的內部或外部擴展存儲器上。nDVR 企業版可以將存儲分配到網路的多個計算機上。
監控系統
支持多畫面、預定義的實況攝像監視
啟動和停止單畫面或多畫面順序
定義一體化球鏡頭和定點鏡頭的預設置和顯示方式
PTZ控制,預設置和顯示方式選擇
觀察實時報警和重現報警歷史
觀察系統存儲野襲容量狀態和頌侍兄每個攝象機的存儲容量設置
註:監控系統可以同時在網路中多個計算機上運行。
錄像播放器
按日期,時間和攝像機回放
尋找事件、報警、標記和動作
觀察所選擇圖象序列的實時動作的每一畫面
回放和按選擇速度播放(0.25X、0.50X、1X、2X、4X)
存儲到選擇的序列磁碟或CD-R中,可以列印或存儲JPEG圖片
註: nDVR 基本版播放器支持單一畫面談鄭, nDVR 增強版播放器支持兩個畫面。nDVR 企業版則播放器支持多畫面播放。
歡迎光臨々紫晗々軟體站:
http://www.hanesoft.com/
本站通用網址:紫晗軟體。
⑶ 攝像頭事件儲存和連續儲存區別
價格上,本地存儲對短時間保存視頻數據有優勢
>本地存儲:我們先不考慮攝像機支持拓展的一個內容空間大小,我們以一個7天24小時不間斷錄制視頻所需的64GB空間大小為例,一個64GB的內存卡價格大致在99元,一個30天全天候不間斷錄制視頻所需的200GB內存卡價格大致在399元左右。
另外,我們還要考慮到,本地存儲在存儲滿後,還要對視頻數據進行"清洗"才行,此時對內存卡的耗損非常大。
使用上,雲存儲保存明顯優與本地保存
>本地存儲:將視頻數據保存在SD卡上,在查看監控視頻時,首先需要從設備中取出內存卡,然後插入讀卡器中,插入電腦中,然後在漫天的視頻中尋找你需要的視頻信息。
因為攝像頭的本地存儲,是每分鍾生成一個新視頻進行存儲!
注意:使用本地存儲時,每分鍾會生成一個新視頻進行存儲!然後你看視頻的時候就會翻到"天荒地老"了~~
>雲存儲:依舊以我正在使用的和目攝像頭為例,直接打開和目APP直接就能回看,而且還可以自主選擇回看時間段喲~~
通過使用對比,我們可以發現,家用攝像頭的雲存儲的使用感受,在便利性上來說,還是優於本地存儲的!
那麼重點來了,擁有外加超優惠價格及超便利使用方式的和目雲存儲,搭配超時尚的和目智能攝像頭,非常適合家用
⑷ 連續錄像和事件錄像的區別
連續錄猜亂像和事件錄像的區別
「事件錄像 」是在計劃的時間段內只對觸發攝像機告警的事件錄像。設置「事件錄春掘像」前,請確扒兆核認您的攝機已啟用移動偵測等功能。
⑸ plc如何連續存儲數據
這個建議你使用 「間接寄存器定址」方式,實現起來比較方便
(專業從事 自動化控制系統 電氣設計、編程、技術培訓)
三菱PLC,松下PLC,西門子S7-200/s7-200SMART /s-300/s7-400/s7-1500(T)
觸摸屏,博圖WinCC)
⑹ 事件存儲是什麼意思
事件存儲:存儲所有聚合根裡面發生過的事件。 1.事件存儲中可以做並發的處理,比如Command 重復,領域事件的重復 2.領域事件的重復通過聚合根Id+版本號判斷,可以在資料庫中建立聯合唯一索引,在存儲事件時檢測重復,記錄重復的事件,根據業務做處理 3.這里要保證存儲事件與發布領域事件的一致性 如何保證存儲事件與發布領域事件的一致性 先存儲事件然後在發布領域事件,如果發生異常,就一直重試,一直到成功為止,也可以做一定的處理,比如重試到一定的次數,就通知,進行人工處理 我選擇了CAP + Policy + Dapper 事件溯源:在事件存儲中記錄導致狀態變化的一系列領域事件。通過持久化記錄改變狀態的事件,通過重新播放獲得狀態改變的歷史。 事件回放可以返回系統到任何狀態 聚合快照:聚合的生命周期各有長短,有的聚合裡面有大量的事件,事件越多載入事件以及重建聚合的執行效率就會越來越低,快照裡面存儲的是聚合 1.定時存儲整個聚合根:使用定時器每隔一段時間就存儲聚合到快照表中 2.定量存儲整個聚合根:根據事件存儲中的數量來存儲聚合到快照表中事件溯源的實現方式 1.首先我們需要實現聚合In Memory, 2.在CommandHandler中訂閱 Command命令, 創建聚合時 ,在內存中維護一個數據字典,key為:聚合根的Id,value為:聚合 修改,刪除,聚合時,根據聚合根的Id,查詢出聚合 如果內存中聚合不存在時:根據聚合根的Id 從聚合快照表中查詢出聚合,然後根據聚合快照存儲的時間,聚合根Id,查詢事件存儲中的所有事件,然後回放事件,得到聚合最終的狀態。
⑺ 攝像頭連續錄像和事件錄像哪個能使內存卡壽命加長
攝像頭連續錄像閉睜和事件錄像都不禪指能使內存卡壽命加長。根據查詢相關信息顯示,攝像頭連續錄像和事件錄像對設備的壽命沒有影響,主要是看存儲硬碟的大小,錄像時間跟硬碟大小,還有錄像模式有關,你選擇錄像模式是選擇自動模式(時時刻刻都在不停的錄)還是報警模式(當畫面中有物體移動,或者光線變化後自動錄制,當超過一定的設置時間後,畫面上無移動物體後,改為實時監控功能,實時監控功能不佔用硬碟空間)還是手動轎襲歲模式,就是你手動操作,需要錄制了,點擊錄制後才會記錄到硬碟上。
⑻ 30天全天儲存和30天事件儲存的區別
全天儲存是不間斷的把30天內所有的視頻都存儲起來,
事件儲存是觸發了特定條件的視頻存儲起來,
比如有移動人像,