『壹』 mysql數據同步,Seconds_Behind_Master為正值,該如何解決
到這里本系列已經接近尾聲了,是時候對常見引起主從延遲的情形進行一個總結了。我想如果我一開始就把這些情形拿出來也許大家對具體的原因不是那麼清楚,但是經過本系列的學習,我相信當我說起這些情形的時候大家都很清楚它的原因了。當然如果還有其他造成延遲的情形也歡迎大家一起討論。
一、總結
有了前面的知識我們就能夠從本質上了解造成延遲的可能有哪些,我先來總結一下這些可能,我將其分為兩類:
第一類:這一類延遲情況可能造成伺服器有較高的負載,可能是 CPU/IO 的負載。因為從庫在實際執行 Event,如果我們伺服器的負載比較高應該考慮這幾種情況,關於如何查看線程的負載可以參考 29 節(線程簡介和 MySQL 調試環境搭建)。
大事務造成的延遲,其延遲不會從 0 開始增加,而是直接從主庫執行了多久開始。比如主庫執行這個事務花費的 20 秒,那麼延遲就會從 20 開始,可以自己細心觀察一下很容易看到。這是因為 Query Event 中沒有準確的執行時間,這個在上一節的計算公式中詳細描述過了 ,可以參考第 8 節和第 27 節。
大表 DDL 造成的延遲,其延遲會從 0 開始增加,因為 Query Event 記錄了准確的執行時間。這個在上一節的計算公式中也詳細描述過了,可以參考第 8 節和第 27 節。
表沒有合理的使用主鍵或者唯一鍵造成的延遲。這種情況不要以為設置 slave_rows_search_algorithms 參數為 INDEX_SCAN,HASH_SCAN 就可以完全解決問題,原因我們在第 24 節(從庫數據的查找和參數 slave_rows_search_algorithms)進行了描述。
由於參數 sync_relay_log,sync_master_info,sync_relay_log_info 不合理導致,特別是 sync_relay_log 會極大的影響從庫的性能。原因我們在第 26 節進行過描述,因為 sync_relay_log 設置為 1 會導致大量 relay log 刷盤操作。
是否從庫開啟了記錄 binary log 功能即 log_slave_updates 參數開啟,如果不是必要可以關閉掉。這種情況我遇到很多次了。
- 這一類延遲情況往往不會造成伺服器有較高的負載。它們要麼沒有實際的執行 Event ,要麼就是做了特殊的操作造成的。
長期未提交的事務可能造成延遲瞬間增加,因為 GTID_EVENT 和 XID_EVENT 是提交時間其他 Event 是命令發起的時間。這個我們在第 27 節中舉例描述過了。
Innodb 層的行鎖造成的延遲,這種是在從庫有修改操作並且和 SQL 線程修改的數據有沖突的情況下造成的,因為我們前面 23 節說過 SQL 線程執行 Event 也會開啟事務和獲取行鎖,下面我們進行測試。
MySQL 層的 MDL LOCK 造成的延遲,這種情況可能是由於 SQL 線程執行某些 DDL 操作但是從庫上做了鎖表操作造成,原因我們已經在 23 節描述過了,下面我們進行測試。
MTS 中不合理的設置參數 slave_checkpoint_period 參數導致,這個在第 27 節已經測試過了。
在從庫運行期間手動改大了從庫伺服器時間,這個也在第 27 節已經測試過了。
- 二、相關測試因為上面的延遲情形很多我們都已經測試和講述過了。下面我們測試鎖造成的延遲情形。
- 這個很容測試,我只要先在從庫做一個事務和 SQL 線程修改的數據相同即可以出現,大概測試如下:
從庫:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from tmpk;
Query OK, 4 rows affected (0.00 sec)
不要提交
主庫執行同樣的語句
mysql> delete from tmpk;
Query OK, 4 rows affected (0.30 sec)
- MySQL 層的 MDL LOCK 造成的延遲
從庫:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql> select * from tkkk limit 1;
+------+------+------+
| a | b | c |
+------+------+------+
| 3 | 3 | 100 |
+------+------+------+
1 row in set (0.00 sec)
不要提交,表上MDL LOCK就不會釋放
主庫執行語句:
mysql> alter table tmpk add testc int ;
Query OK, 0 rows affected (1.14 sec)
Records: 0 Duplicates: 0 Warnings: 0
- 這個時候你將會看到如下的信息:
- 我們可以通過 state 看到這是等待 MDL lock 獲取而導致的延遲,關於 MDL lock 的詳情可以參考我的文章:http://blog.itpub.net/7728585/viewspace-2143093/
- 三、總結通過整個系列,我們應該清楚了 Seconds_Behind_Master 計算的方法,同時如果出現了延遲,我們首先查看從庫是否有負載,根據是否有負載進行區別對待,注意這里的負載一定要使用top -H查看 io/sql/worker 線程的負載。我曾不止一次的遇到朋友問我延遲問題,當我問他負載如何的時候他告訴我負載不高啊整體負載也就不到 2,這里我們應該注意的是對於一個線程只能使用到一個 CPU 核,雖然整體負載不到 2 但是可能 io/sql/worker 線程已經跑滿了,實際上負載已經很高了,我們來看下面的這個截圖就是 sql 線程負載高的截圖如下:
- 這個截圖我們發現雖然整體負載不高在 1 多一點,但是 Lwp 號 20092 的線程已經跑滿了,這個線程就是我們的 sql 線程,這個時候出現延遲是很可能的,這個截圖正是來自一個沒有合理使用主鍵或者唯一鍵造成的延遲的案例,案例如下:https://www.jianshu.com/p/56e8ca2223a0我們查看 CPU 負載應該使用top -H去查看,查看 io 負載可以使用 iotop,iostat 等工具。我需要強調一下看 MySQL 負載的時候我們必須用線程的眼光去看,第 29 節將讓你獲得這種能力。
第二類:
Innodb 層的行鎖造成的延遲
這個時候你會觀察到延遲如下:
如果查看 sys.innodb_lock_waits 能看到如下的結果:
當然如果查看 INNODB_TRX 也可以觀察到事務的存在,這里就不截圖了,大家可以自己試試。
這種情況也非常容易測試,我們只需要開啟一個事務做一個 select ,然後主庫對同樣的表做 DDL 就可以出現如下:
到這里整個系列接近尾聲,大家會發現主從的原理的還是比較復雜的,這可能顛覆了以前我們的認知,以前我們認為主從無非就是搭建起來能跑同時知道有 io/sql 線程就可以了(這確實很簡單)。整個系列結論很簡單,我們無非就是想配置出安全高效的從庫同時知道延遲是怎麼導致的,出現延遲後我們如何處理,我自認為本系列還是將這些問題講解得很清楚了。當然如果本系列的原理部分都能夠理解得很好,那麼工作中解決主從問題一定會更加得心應手。
『貳』 linux Io過高是由什麼進程引起的
方法1:使用iotop工具
這是一個python腳本工具,使用方法如:iotop -o
方法2:使用工具dmesg
使用dmesg之前,需要先開啟內核的IO監控:
echo 1 >/proc/sys/vm/block_mp或sysctl vm.block_mp=1
然後可以使用如下命令查看IO最重的前10個進程:
dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10
方法3:使用命令「iostat -x 1「確定哪個設備IO負載高:
# iostat -x 1 3
avg-cpu: %user %nice %system %iowait %steal %idle
1.06 0.00 0.99 1.09 0.00 97.85
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.49 17.29 1.74 6.75 23.47 200.18 11.73 100.09 26.33 0.10 12.25 5.73 4.87
找「await」值最大的設備(Device),如上的結果即為sda。
然後使用mount找到sda掛載點,再使用fuser命令查看哪些進程在訪問,如:
# fuser -vm /data
『叄』 一名優秀的Linux運維人員該掌握哪些工具
1、Nethogs:查詢進程佔用帶寬情況
Nethogs是一個終端下的網路流量監控工具,它的特別之處在於可以顯示每個進程的帶寬佔用情況,這樣可以更直觀獲取網路使用情況,它支持IPv4和IPV6協議、支持本地網卡及ppp鏈接。
2、IOZone:硬碟讀取性能測試
IOZone是一款Linux文件系統性能測試工具,可以測試不同的操作系統文件系統的讀寫性能。
3、IOTop:實時監控磁碟IO
IOTop命令是一個用來監控磁碟IO使用狀況的TOP類工具。IOTop具有與top類似的UI,其中包括PID、用戶、I/O、進程等相關信息。Linux下的IO統計工具如iostat,nmon等大多數只能統計到per設備的讀寫情況,如果你想知道每個進程是如何使用IO的就比較麻煩,而使用iotop命令可以很方便的查看。
4、IPtraf:網路流量監控
IPtraf是一個網路監控工具,功能比nload更強大,可以監控所有的流量,ip流量,按協議分的流量,還可以設置過濾器等。
5、IFTop:網路流量監控
IFTop是類似於Linux下面top的實時流量監控工具。iftop可以用來監控網卡的實時流量(可以指定網段)、反向解析IP、顯示埠信息等。
6、HTop:進程實時監控
HTop是一個Linux下的互動式的進程瀏覽器,可以用來替換Linux下的TOP命令。
7、NMON:系統資源監控
Nigel's Monitor簡稱nmon,是由Nigel
Griffiths開發的監控Linux系統性能的常用工具。通過nmon可以獲取的信息有:處理器利用率、內存利用率、運行隊列信息、磁碟I/O統計和網路I/O統計、進程指標等。
8、MultiTail:監控多個日誌
MultiTail是個用來實現同時監控多個文檔、類似tail命令功能的軟體。他和tail的區別就是他會在控制台中打開多個窗口,這樣使同時監控多個日誌文檔成為可能。
9、Tmux:連接會話終端持續化
Tmux是一個優秀的終端復用軟體類似GNU Screen,比Screen更加方面、靈活和高效。為了確保連接SSH時掉線不影響任務運行。
10、NMap:安全掃描工具
Nmap,也就是Network
Mapper,最早是Linux下的網路掃描和嗅探工具包。nmap是一個網路連接端掃描軟體,用來掃描網上電腦開放的網路連接端。確定哪些服務運行在哪些連接端,並且推斷計算機運行哪個操作系統。它是網路管理員必用的軟體之一,以及用以評估網路系統安全。
『肆』 在地址為192.168.1.44的主機上,要檢查到另一台主機的端到端連接性,可通過CLI執行哪個命令
ping:通過ICMP回應/回復報文檢查遠端主機的端到端連接性(RTT延時,抖動,丟包)。用來檢查系統狀態和可連接性很不錯
.hping:網路掃描和檢測工具,可以產生ICMP / TCP / UDP ping數據包。常常用於高級埠掃描,防火牆測 試驗,手動MTU路徑發現和碎片測試.traceroute
:通過TTL限定的ICMP / UDP / TCP偵測包來發現從本地主機到遠端目標主機之間的第三層轉發路徑。用來調試網路連接性和
路由問題.mtr:traceroute的一個變種,能根據運行時統計數據整理出每一跳的包丟失/動作。用來評估路由路徑延時很不錯.netcat
/ socat:TCP / IP網路里的瑞士軍刀,可以讀/寫TCP / UDP協議位元組流。用來調試防火牆策略和服務可用性很不錯.dig
:DNS調試工具,可以生成正向查詢,反向查詢,搜索域名伺服器,檢查CNAME,MX及其他DNS記錄。可以在偵錯的時候查詢特定的DNS伺服器.nslookup
:另外一個DNS檢查/調試工具。支持所有DNS查詢和記錄。可以查詢特定DNS伺服器。
dnsyo:一個DNS測試工具,通過對全世界1500個不同網路中的大量開放解析器執行DNS查詢來測試DNS傳輸.lsof
:顯示進程打開的文件信息(例如,普通文件,管道或套接字)。用來監視網路連接很不錯
.iftop:一個基於ncurses的命令行界面應用,可以實時監視各個網路物理介面上的網路連接和帶寬佔用。用來記錄霸佔帶寬的應用,用戶,目的地和埠等很不錯
.netstat:一個網路統計工具,可以顯示狀態以及統計信息,當前網路連接(TCP / UDP埠,IP地址),路由表,TX / RX流量以及網路協議。用來做網路相關診斷和性能調試很不錯
.tcpmp:一個常用的基於libpcap抓包庫的包偵測工具。可以按伯克利包過濾器格式定義抓包條件
.tshark:另一個命令行抓包工具,和它的GUI版本Wireshark完全兼容。支持1000種協議而且這個列表還在增加。用來調試,分析和保存實時 。絡封包信息很不錯
的ip:。一個多功能的命令行網路工具,是iproute2的包的一部分可以檢查和修改路由表,網路設備狀態以及IP隧道設置用來查看路由表,增加/刪除靜態路由,配置網路介面,以及調試路由問題很有用.ifup
/ ifdown:用來激活和關閉特定的網路介面。經常用於重啟整個網路服務.autossh
:一個能建立SSH連接並在斷線後自動重新連接的程序。用來創建長時間保持的穿越嚴格企業網路的SSH隧道很有用.iperf
:一個網路測試工具,通過在發送自定義TCP / UDP數據流來衡量主機間雙向最大吞吐量
.elinks / lynx:為基於命令行的伺服器環境下使用的基於文字的網頁瀏覽器。
安全工具
iptables的:一個用戶空間下的命令行工具,用於配置Linux的內核防火牆可以創建和修改的Linux內核空間的網路包接收,轉發和發送規則。
NMAP:一個常用的為了安全審查目的的埠掃描和網路發現
TCP包裝:一個主機端的網路訪問控制列表工具,可以過濾進入/出去的網路請求/ 工具。用來在本地網路回復經常配合iptables的一起使用,作為額外一層安全保護。
getfacl的說明書/ setfacl的:查看和定製文件和目錄的訪問控制列表,作為傳統文件許可權的擴展。
cryptsetup:用於創建和管理LUKS加密磁碟分區
lynis :一個命令行的漏洞掃描工具。可以掃描整個Linux系統,並匯報潛在的漏洞以及相關可能解決方案
.maldet:一個惡意軟體掃描命令行工具,可以檢測和隔離潛在的感染文件。可以在後台運行長期監 。
rkhunter / chkrootkit的:一個命令行工具,可以掃描本地系統里的潛在木馬,隱藏後門和可疑利用,並禁用它們。
存儲工具
的fdisk:一個磁碟分區編輯工具用於查看,創建和修改本地磁碟或可移動磁碟的分區
.sfdisk:fdisk的一個變種,能用一種非交互的方式訪問或更新磁碟分區表。用來自動化備份和恢復過程中的磁碟分區很有用
.parted:另一個磁碟分區編輯器,支持超過2TB的磁碟的GPT(GUID分區表)格式.gparted是parted的一個前端GTK +圖形界面.df
:用來查看不同分區或文件路徑的已用/可用存儲空間和掛載點。還有一個更易用的變種DFC。
:用來查看不同文件和目錄的當前磁碟佔用情況(例如, -sh *)。
mkfs:一個磁碟格式化命令,用來在獨立磁碟分區上建立文件系統。有多個文件系統相關的版本:ext2,ext3,ext4,bfs,ntfs,vfat /
fat.fsck:一個命令行工具,用來檢查文件系統錯誤並嘗試可能的修復。通常在啟動時自動運行,但是在卸載一個分區後也可以根據需要手動運行
.mount:用來映射一個物理磁碟分區,網路共享或遠程存儲到一個本地掛載點。任何對掛載點里的讀/寫操作都是對應實際存儲的實際數據讀/寫
.mdadm :一個命令行工具,用來管理物理塊設備上的軟體RAID設備。可以創建,構造,增長或監視RAID陣列.lvm
:一套命令行工具集,用來管理卷分組和物理/邏輯卷,可以。用最小的停機時間在多個物理磁碟上創建,調整大小,狀語從句:拆分合並卷
日誌訪問工具
尾:用來查看一個(長中的)日誌文件的尾部有幾個變種,包括multitail(多窗口查看)和ztail(支持的inotify和正則表達式過濾以及顏色)。
logrotate的:一個命令行工具,可以在根據設定的時間段拆分,壓縮並通過郵件發送舊的/大的日誌文件。用來管理可能產生大量日誌文件的繁忙主機很有用.grep
/ egrep:可以通過特定的模式或正則表達式過濾日誌內容。變種包括用戶更友好的ack和速度更快的ag.awk
:一個多功能的文本掃描和處理工具。常用於從文本/日誌文件中找出特定的列或內容,並輸出給其他工具.sed
:一個文本流編輯工具,可以過濾和改變(例如,刪除行/空格,替換/轉換單詞,增加計數)文本流並通過管道連接到標准輸出/標准錯誤或者其他工具。
備份工具
rsync:一個快速的單向增量備份和鏡像工具(常規於復制一個數據倉庫到線下存儲,可以選擇通過SSH或stunnel的加密連接
.rdiff-backup :另一個有效利用帶寬的增量備份工具.diplicity
:一個加密的增量備份工具。使用GnuPG加密備份,並通過SSH上傳到遠程伺服器。
性能監視工具
top:一個命令行的進程查看程序。可以監視系統負載,進程狀態,CPU和內存佔用。有一個更易用的變種htop。ps
:顯示系統所有運行中進程的一個快照。輸出可以定製成顯示PID,PPID,用戶,負載,內存,積累的用戶/系統時間,啟動時間,以及更多。有一個變種pstree可以用樹結構顯示進程
.nethogs:一個帶寬監視工具,按進程來分組顯示活動網路連接,實時匯報 -個進程佔用的(上傳/下載)帶寬
.ngxtop:一個網頁 伺服器訪問日誌解析和監視工具,界面受到了top命令啟發。它可以實時匯報整理過的頁面請求列表,包括頻率,大小,HTTP返回值,IP地址,等等.vmstat
:一個簡單的命令行工具,可以顯示多個實時系統特徵,例如進程數,剩餘內存,分頁狀態,CPU佔用,塊設備I / O活動,中斷/上下文切換統計,
等等.iotop:一個基於ncurses的I / O監視工具,可以實時排序顯示所有運行中進程的磁碟I / O活動
.iostat:一個命令行工具,可以匯報當前CPU使用情況,以及設備I / O使用情況,這里的I / O使用情況(例如,塊傳輸速度,位元組讀/寫速度)是按設備或分區來匯報的。
效率工具
screen:用來把一個單一的終端拆分成多個持久的虛擬終端,也支持遠程用戶訪問,類似teamviewer的屏幕分享功能
.tmux:另一個終端復用工具,可以支持多個長期會話,還可以橫向/縱向拆分終端。
作弊:一個簡單的命令行工具,可以讓你查看多個常用Linux命令的備記錄,就在手邊非常方便。內建的備忘錄也可以完全定製.apropos
:用來在幫助手冊里查找描述或關鍵字很有用。
包管理工具
apt:基於Debian系統的事實上的包管理工具,例如Debian,Ubuntu或Backtrack。一個救生圈.apt
-fast:apt-get的一個支撐應用,可以通過多個並行連接明顯提高apt-get的下載速度
.apt-file:用來查看某個特定文件屬於哪個.deb包,或者顯示一個特定.deb包里的所有文件。已安裝和未安裝的包都能支持
.dpkg:一個用來手動安裝.deb包的命令行工具。強烈建議盡可能的使用apt.yum
:用於基 於紅帽的系統的自動包管理工具,比如RHEL,CentOS或Fedora。這是另一個救生圈!
rpm:通常我都是使用rpm來配合yum使用。有很多有用的參數,比如-q,-f, -l可以分別用來查詢,指定文件和路徑。
硬體工具
lspci的:一個命令行工具,可以顯示已安裝的PCI設備的各種信息,比如型號名稱,設備驅動,設備功能,內存地址,PCI匯流排地址。
lshw:一個命令行工具,可以查詢和顯示不同分類下的硬體配置的詳細信息(例如,處理器,內存,主板,網路,存儲)支持多重輸出格式:HTML,XML,JSON文本。
inxi:一個綜合硬體查看工具,可以提供不同硬體模塊的總覽,例如CPU,顯卡,音效卡,網卡,溫度/風扇感測器,等等。
『伍』 運維的運維工程師使用的平台、工具
Linux運維人員必備的實用工具:
1、Nethogs:查詢進程佔用帶寬情況
Nethogs是一個終端下的網路流量監控工具,它的特別之處在於可以顯示每個進程的帶寬佔用情況,這樣可以更直觀獲取網路使用情況,它支持IPv4和IPV6協議、支持本地網卡及ppp鏈接。
2、IOZone:硬碟讀取性能測試
IOZone是一款Linux文件系統性能測試工具,可以測試不同的操作系統文件系統的讀寫性能。
3、IOTop:實時監控磁碟IO
IOTop命令是一個用來監控磁碟IO使用狀況的TOP類工具。IOTop具有與top類似的UI,其中包括PID、用戶、I/O、進程等相關信息。Linux下的IO統計工具如iostat,nmon等大多數只能統計到per設備的讀寫情況,如果你想知道每個進程是如何使用IO的就比較麻煩,而使用iotop命令可以很方便的查看。
4、IPtraf:網路流量監控
IPtraf是一個網路監控工具,功能比nload更強大,可以監控所有的流量,ip流量,按協議分的流量,還可以設置過濾器等。
5、IFTop:網路流量監控
IFTop是類似於Linux下面top的實時流量監控工具。iftop可以用來監控網卡的實時流量(可以指定網段)、反向解析IP、顯示埠信息等。
6、HTop:進程實時監控
HTop是一個Linux下的互動式的進程瀏覽器,可以用來替換Linux下的TOP命令。
7、NMON:系統資源監控
Nigel's Monitor簡稱nmon,是由Nigel Griffiths開發的監控Linux系統性能的常用工具。通過nmon可以獲取的信息有:處理器利用率、內存利用率、運行隊列信息、磁碟I/O統計和網路I/O統計、進程指標等。
8、MultiTail:監控多個日誌
MultiTail是個用來實現同時監控多個文檔、類似tail命令功能的軟體。他和tail的區別就是他會在控制台中打開多個窗口,這樣使同時監控多個日誌文檔成為可能。
9、Tmux:連接會話終端持續化
Tmux是一個優秀的終端復用軟體類似GNU Screen,比Screen更加方面、靈活和高效。為了確保連接SSH時掉線不影響任務運行。
10、NMap:安全掃描工具
Nmap,也就是Network Mapper,最早是Linux下的網路掃描和嗅探工具包。nmap是一個網路連接端掃描軟體,用來掃描網上電腦開放的網路連接端。確定哪些服務運行在哪些連接端,並且推斷計算機運行哪個操作系統。它是網路管理員必用的軟體之一,以及用以評估網路系統安全。
『陸』 Linux裡面iotop命令作用是什麼
Linux裡面iotop命令是用來查看磁碟I/O使用狀況的工具。iotop具有與top相似的UI界面,其展示的包括PID、用戶、I/O、進程等相關信息。
『柒』 如何調節Ext4文件系統來獲得優化性能
第一步要確保主機伺服器可以處理一個快速的文件系統,通過分派足夠大量的RAM開始。一個調整好但內存不足的文件系統不能提供優化的性能,因為沒有足夠的空間來恰當地緩存這個文件系統元數據表。
要知道你的伺服器是否有足夠的內存,就使用免費命令。如果緩存器和緩存使用的總內存超過了RAM總量的20%,它就會工作。但是越多就越好。理想來說,你需要大概40%的伺服器內存用在緩存器和緩存上。
下一步,檢查你的磁碟。為了獲得盡可能好的性能,你將需要用到盡可能好的磁碟。這不是說你只需要SSD磁碟。但是如果你需要速度,不要使用7200 RPM SATA,要使用15000 RPM串列SCSI(SAS)代替。
還要將磁碟域控制器參數納入考慮。確保啟用了電池備份的緩存。為了增加寫入性能,將寫入配置為延遲。如果你更注重讀取性能,配置預讀取來增加機會,讓你下一步需要的數據更可能在你需要時已經在內存中負載了。
優化Ext4文件系統伺服器也檢查過了,現在我們就來優化Ext4文件系統。你需要考慮兩個東西,然後你就可以檢查更具體的性能參數了。
幾乎在所有情況下都有所幫助的一個參數是關閉文件系統訪問時間,使用/etc/fstab中的「一次都不(noatime)」安裝選項。沒有這個選項,每次文件被訪問(包括讀取)時,這個文件的元數據都會變更。大部分伺服器沒有對這些信息做處理,所以關閉它就行了。
另一個有意思的安裝選項是dealloc選項,它打開了延遲的塊配置功能。這個功能在最後時刻決定寫入文件發生時使用哪個塊,優化這個寫入程序。
另一個重要的安裝選項調整文件系統日誌。有三種日誌模式:data=journal、data=ordered和data=writeback.默認設置data=ordered提供性能和防護之間的最佳平衡。但是如果你的伺服器需要寫入大量數據,它可以長期凍結你的伺服器。如果是這種情況,使用iotop等工具,你會看到kjournald程序的高負載。如果你的伺服器遇到了這種行為,使用data=writeback選項來獲得更好的寫入性能。但是使用這個選項增加了風險,最新修改的數據會在宕機事件中崩潰。
創建文件系統來獲取更好性能時,可以用到多個選項。第一個是inode大小。inode用來存儲元數據,如果擴展屬性或訪問控制列表(ACL)用在一個文件系統上,默認的inode不足以存儲所有數據並且配置了二級的inode.這也就是說,所有的文件訪問你都需要用兩個操作來代替一個。
『捌』 linux中,有哪些命令是比較好用的呢
1.列出文件清單命令:ls
ls命令能夠列出當前目錄下的所有內容。ls 命令的執行方式為:
# ls [-選項] [文件名或者目錄名]
進入到Linux命令行中後,我們至少要知道當前所處的位置有哪些內容,這些信息就可以使用ls命令來獲得。
在Linux中,ls命令是最常使用的命令之一,因為在命令行下要隨時查看目錄內容。如果不加任何選項的話,ls命令僅列出當前目錄下的文件和目錄名,例如,想要查看/etc目錄下的內容,可以使用下列命令:
# ls /etc
如果想要列出當前目錄下所有文件,則可以使用下列命令:
# ls -a
2、cat命令
功能:在標准輸出上顯示文件。
語法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 > file2
3、more命令
功能:在終端屏幕按屏顯示文本文件。
語法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能幾乎和more命令一樣,也是用來按頁顯示文件,不同之處在於less命令在顯示文件時允許用戶既
可以向前又可以向後翻閱文件。
5、head命令
功能:顯示指定文件的前若干行。預設設置為顯示10行
語法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:顯示指定文件的末尾若干行。預設設置為顯示10行
語法:tail [+ / - num ] [參數] 文件
+num 從第num行以後開始顯示。- num 從距文件尾num行處開始顯示。
例子: tail example.c
tail -4 example.c
7、grep、fgrep和egrep命令
功能:
這組命令以指定模式搜索文件,並通知用戶在什麼文件中搜索到與指定的模式匹配的字元串,並列印出所有包含該字元串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個指定的模式;egrep命令檢索擴展的正則表達式(包括表達式組和可選項);fgrep命令檢索固定字元串,它不識別正則表達式,是快速搜索命令。
語法:
grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]
egrep [選項] [查找模式] [文件名1,文件名2,……]
fgrep [選項] [查找模式] [文件名1,文件名2,……]
例子: grep "text file" example
grep data *
grep goto *.c
『玖』 運維一般需要掌握什麼技術
| Linux基礎 |
1. 基礎理論知識;
2. 基礎命令(系統命令、目錄管理、用戶管理、文件許可權、磁碟管理、資源查看等等常見操作);
3. 文本高效處理(vi、vim、awk、grep、find、sed等);
4. bash shell腳本(可以邊工作邊學習,使用shell編寫簡單的代替重復性操作的腳本);
5. 進程調度,內存管理,文件系統,外設管理等,要熟練使用相關工具,如top iotop iftop iostat vmstat
ss等,並且最好了解其原理;
| 網路管理、進程管理 |
1. TCP/IP協議、DNS服務、CDN原理、iproute常見的網路客戶端工具(ping、wget、ftp);
2. crontab計劃任務;
3. ps、top、htop、vmstat、lsof等命令;
4. tcp,http,https,udp等;
5. 最好能做到精通,4層,7層的網路流量分析技能要熟練掌握;
6. 內部路由協議,邊際路由,交換原理,域名解析,ipv6相關知識;
| 資料庫部分 |
1. MySQL各個版本之間的關系和特性;
2. MySQL的安裝及增刪改查;
3. MySQL的存儲引擎;
4. MySQL的優化;
5. MySQL日常使用及運維,包含備份及故障排查;
| shell腳本 |
1. 使用shell腳本實現各種服務的自動化部署;
2. 使用shell腳本實現監控系統及應用自動化;
3. 使用shell腳本實現各類巡檢,故障排查自動化。
『拾』 Linux進程實時IO監控命令,iotop怎麼看系統負載
這個恐怕是看不到的,
只有查看磁碟的總體IO性能的。
如果想學好linux技術的話, 最好是可以和我討論