Linux運(yùn)維工程師工作手冊_第1頁
Linux運(yùn)維工程師工作手冊_第2頁
Linux運(yùn)維工程師工作手冊_第3頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Li nux 運(yùn)維工程師工作手冊釋放內(nèi)存:syncecho?3?/proc/sys/vm/drop_caches?Linux查看Dell服務(wù)器型號命令:dmidecode?|?grep?Product?Name查看系統(tǒng)負(fù)載:cat ?/proc/loadavg0.0?0.00?0.00?1/283?10904而283意思是:前三個是系統(tǒng)負(fù)載,1/283中,1代表此時(shí)運(yùn)行隊(duì)伍中的進(jìn)程個數(shù), 是代表此時(shí)的進(jìn)程總數(shù)10904到此為止,最后創(chuàng)建的一個進(jìn)程ID。?系統(tǒng)裝好后,要做的事如下:關(guān)閉防火墻Selinux:vim?/etc/seli nu x/c onfig把 SELINUX二enforcing

2、改成 SELINUX二disabled更改主機(jī)名:vim?/etc/syscon fig/network修改主機(jī)名,不要用localhost添加hosts主機(jī)記錄vim?/etc/hosts 中,在后面,添加自己的主機(jī)名創(chuàng)建 0-9?a-z 目錄for?i?i n?seq?0?9?a.z;do?mkdir?-p?$i;do ne ?測試硬盤性能工具: iozone監(jiān)視服務(wù)器每少上下文切換數(shù)次工具 :Nmon( 很不錯的性能監(jiān)視工具 )?# 占用內(nèi)存大小前 10 的進(jìn)程ps?-eo?comm,size?-sort?-size?|?head?-10?# 占用 cpu 使用前 10 的進(jìn)程ps?-e

3、o?comm,pcpu?-sort?-pcpu?|?head?-10?一、 Apache 服務(wù)優(yōu)化: ?21. 配置 cronolog 進(jìn)行日志輪詢 ?22. 錯誤頁面優(yōu)雅顯示 ?23. mod_deflate 文件壓縮功能 ?34. mod_expires 緩存功能 ?45. 更改 apache 的默認(rèn)用戶 ?56. worker 模式,提升并發(fā)數(shù)(可以達(dá)到 2000-5000)?57. 屏蔽 apache 版本等敏感信息 ?68. apache 目錄文件權(quán)限設(shè)置( root ,目錄 755 ,文件 644 )?69. 開啟 httpd-mpm.conf?增加連接數(shù) ?610. ?apach

4、e 防盜鏈功能 ?811. 禁止目錄 Index?812. ?禁止用戶覆蓋 ( 重載) ?813. 關(guān)閉 CGI?914. 避免使用 .htaccess 文件(分布式配置文件) ?915. ?apache 的安全模塊 ?916. 正確途徑取得源代碼,勤打 apache 補(bǔ)丁 ?1017. apache 日志授予 root?700 權(quán)限 ?1018. 系統(tǒng)內(nèi)核參數(shù)優(yōu)化 ?1019. 禁止 PHP 解析指定站點(diǎn)的目錄 ?1020. 使用 tmpfs 文件系統(tǒng)替代頻繁訪問的目錄 ?1121 盡可能減少 ?HTTP? 請求數(shù)?1122 使用 CDN 做網(wǎng)站加速 ?12?查看你的服務(wù)器網(wǎng)絡(luò)連接狀態(tài)n e

5、tstat?-n?|?awk?tcp/?+S$NF?END?for(a?i n? S)?pri nt?a,?SaCLOSED :無連接是活動的或正在進(jìn)行?4LISTEN :服務(wù)器在等待進(jìn)入呼叫?4SYN_RECV :個連接請求已經(jīng)到達(dá),等待確認(rèn) ?4SYN_SENT :應(yīng)用已經(jīng)開始,打開一個連接?ESTABLISHED :正常數(shù)據(jù)傳輸狀態(tài)?4FIN_WAIT1 :應(yīng)用說它已經(jīng)完成?4FIN_WAIT2 :另一邊已同意釋放?TMED WAIT :等待所有分組死掉?CLOSING :兩邊同時(shí)嘗試關(guān)閉?TIME_WAIT :另一邊已初始化一個釋放 ?LAST_ACK :等待所有分組死掉 ?ESTAB

6、LISHED 的值其實(shí)也是當(dāng)前的并發(fā)數(shù),這個可重點(diǎn)關(guān)注下;另外,可關(guān)注下TIME WAIT這項(xiàng)的數(shù)值。Linux下高并發(fā)的Squid服務(wù)器,TCP?TIME_WAIT 套接字?jǐn)?shù)量經(jīng)常達(dá)到兩、三萬,服務(wù)器很容易被拖死。通過修改 Linux 內(nèi)核參數(shù), 可以減少 Squid 服務(wù)器的 TIME_WAIT 套接字?jǐn)?shù)量。?# 查看系統(tǒng)本地可用端口極限值 cat?/proc/sys/net/ipv4/ip_local_port_range?尋找惡意 IP 并用 iptables 禁止掉4.5 備份單個 數(shù)據(jù)庫mysqldump?-u? 用戶? - p密碼?default-character-set=la

7、tin1?數(shù)據(jù)庫名? 備份文件名 (數(shù)據(jù)庫默認(rèn)編碼是 latin1)普通備份:mysqldump?-uroot?-poldboy123?oldboy?/server/bak/oldboy.sql壓縮備份:設(shè)置字符集備份:執(zhí)行結(jié)果:rootoldboy?#?mkdir?/server/bak?-prootoldboy?#?mysqldump?-uroot?-poldboy123?oldboy?/server /babackup/?bak/?rootoldboy?#?mysqldump?-uroot?-poldboy123?oldboy?/server/bak/oldboy.sqlrootoldb

8、oy?#?ls?-l?/server/bak/total?8-rw-r-r-?1?root?root?1991?Apr?9?00:51?oldboy.sql 4.6?mysqldump 在做啥?mysqldump 實(shí)際上就是把數(shù)據(jù)從 mysql 庫里以邏輯的 sql 語句的形式導(dǎo)出 備份的數(shù)據(jù)過濾掉注釋:rootoldboy?#?egrep?-v?*|-F$?/server/bak/oldboy.sqlDROP?TABLE?IF?EXISTS?test;CREATE?TABLE?test?(?id?i nt(4)?N0T?NULL?AUT0_INCREMENT, ?name?char(20)?

9、NOT?NULL,?PRIMARY?KEY?(id) )?ENGINE=MyISAM?AUTO_INCREMENT=12?DEFAULT?CHARSET=gbk; LOCK?TABLES?test?WRITE;INSERT?INTO?test?VALUES?(1,zhaoyue),(2,jesse),(4,ela in ),(5,wodi),(6,yi ngsui),(7,zhangyang),(8,zaixiangpan),(9,?),(10, 鑰佺敺瀛?),(11,鎴 ?);?/server/bak/oldboy-gbk.sqlrootoldboy?#?egrep?-v?*|-F$?/se

10、rver/bak/oldboy-gbk.sql DROP?TABLE?IF?EXISTS?test;CREATE?TABLE?test?( ?id?int(4)?NOT?NULL?AUTO_INCREMENT, ?name?char(20)?NOT?NULL,?PRIMARY?KEY?(id) )?ENGINE=MyISAM?AUTO_INCREMENT=12?DEFAULT?CHARSET=gbk; LOCK?TABLES?test?WRITE;INSERT?INTO?test?VALUES?(1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yi ngs

11、ui),(7,zhangyang),(8,zaixiangpan),(9,?),(10, 老男孩),(11, 我 );?/server/bak/oldboy-gbk-muli.sql 提示: -B 參數(shù)是關(guān)鍵,表示接多個庫。(生產(chǎn)環(huán)境常用)?-B,?-databases?To?dump?several?databases.?Note?the?diff erence?in?usage;?In?this?case?no?tables?are?given.?All?name?ar guments?are?regarded?as?databasenames.?USE?db_name;?will?be?

12、included?in?the?output.參數(shù)說明: 該參數(shù)用于導(dǎo)出若干個數(shù)據(jù)庫, 在備份結(jié)果中會加入 USE?db_name 和CREATE?DATABASE?db_name;?-B 后的參數(shù)都將被作為數(shù)據(jù)庫名。該參數(shù)比較常用。當(dāng) -B 后的數(shù)據(jù)庫列全 時(shí)?同 ?-A 參數(shù)。請看 -A 的說明。4.8 備份單個表mysqldump?-u? 用戶名?-p?數(shù)據(jù)庫名?表名?備份的文件名mysqldump?-u?root?-p?oldboy?test?oldboy_oldboy.sql執(zhí)行結(jié)果:rootoldboy?#?mysqldump?-uroot?-poldboy123?oldboy?t

13、est?-default-character-set=gbk?/server/bak/oldboy-gbk-single.sql提示:無 -B 參數(shù),庫 oldboy 后面就是 test 表了。4.9 備份多個表rootoldboy?# ?mysqldump?-uroot?-poldboy123?oldboy?test?ett?- -default-character-set=gbk?/server/bak/oldboy-gbk-muti-tables.sqlrootoldboy?#?egrep?-v?*|-F$?/server/bak/oldboy-gbk-muti-tables.sqlDR

14、OP?TABLE?IF?EXISTS?test;CREATE?TABLE?test?(?id?i nt(4)?N0T?NULL?AUT0_INCREMENT,?name?char(20)?NOT?NULL,?PRIMARY?KEY?(id)?ENGINE=MyISAM?AUTO_INCREMENT=12?DEFAULT?CHARSET=gbk;LOCK?TABLES?test?WRITE;INSERT?INTO?test?VALUES?(1,zhaoyue),(2,jesse),(4,elain),(5,wo老男di),(6,yingsui),(7,zhangyang),(8,zaixiang

15、pan),(9,?),(10,孩),(11, 我);UNLOCK?TABLES;DROP?TABLE?IF?EXISTS?ett;CREATE?TABLE?ett?(?id?int(11)?DEFAULT?NULL)?ENGINE=MyISAM?DEFAULT?CHARSET=gbk;LOCK?TABLES?ett?WRITE;UNLOCK?TABLES;4.10 備份數(shù)據(jù)庫結(jié)構(gòu) ( 不包含數(shù)據(jù) )mysqldump?-uroot? -d? -poldboy?oldboy?oldboy?oldboy_oldboy.sql-d? 只備份表結(jié)構(gòu)rootoldboy?#?mysqldump?-uro

16、ot?-poldboy123?-d?oldboy?/tmp/desc.sql?rootoldboy?#?egrep?-v?*|-F$?/tmp/desc.sql?DROP?TABLE?IF?EXISTS?ett;CREATE?TABLE?ett?(?id?i nt(11)?DEFAULT?NULL )?ENGINE=MyISAM?DEFAULT?CHARSET=gbk;DROP?TABLE?IF?EXISTS?test;CREATE?TABLE?test?( ?id?int(4)?NOT?NULL?AUTO_INCREMENT, ?name?char(20)?NOT?NULL,同學(xué)?PRIMA

17、RY?KEY?(id) )?ENGINE=MyISAM?AUTO_INCREMENT=12?DEFAULT?CHARSET=gbk; 更多用法可以?執(zhí)行?mysqldump? -help?查詢。有關(guān)mysql和mysqldump 們要詳細(xì)總結(jié)。5 恢復(fù)數(shù)據(jù)庫5.1?source 命令恢復(fù)進(jìn)入 mysql 數(shù)據(jù)庫控制臺, mysql?-u?root?-pmysql use? 數(shù)據(jù)庫然后使用 source 命令,后面參數(shù)為 腳本文件(如這里用到的 .sql)mysql source?oldboy_db.sql?# 這個文件是系統(tǒng)路徑。 rootoldboy?bak#?mysql?-uroot?-p

18、oldboy123 Welcome?to?the?MySQL?monitor.?Commands?end?with?;?or?g.skip. Type?help;?or?h?for?help.?Type?c?to?clear?the?current?input?stat ement. mysql?use?oldboyDatabase?changedmysql?show?tables;+|?Tables_in_oldboy?|+|?ett?|?test?|+2?rows?in?set?(0.00?sec)?mysql?drop?tables?test;Query?OK,?0?rows?affec

19、ted?(0.01?sec)?mysql?system?ls?.oldboy-gbk-muli.sql?oldboy-gbk-single.sql?oldboy.sqlmysql?source?./oldboy.sql?select?*?from?test;+ +|?id?|?name?|+ +|?1?|?zhaoyue?|?2?|?jesse?|?4?|?elain?|?5?|?wodi?|?6?|?yingsui?|?7?|?zhangyang?|?8?|?zaixiangpan?|?9?|?|?10?|?|?set?names?gbk;Query?OK,?0?rows?affected?

20、(0.00?sec)?mysql?select?*?from?test;+|?id?|?name?|+|?1?|?zhaoyue?| |?2?|?jesse?| |?4?|?elain?| |?5?|?wodi?| |?6?|?yingsui?| |?7?|?zhangyang?| |?8?|?zaixiangpan?| |?9?|?|?10?|? 老男孩 ?|?= 仍然是正常的,就是說備份不加字符集導(dǎo)出,將來恢 復(fù)不會影響恢復(fù)的數(shù)據(jù),但是備份后查看文件會亂碼。|?11?|? 我 ?|+10?rows?in?set?(0.00?sec)5.2?mysql 命令恢復(fù) ( 標(biāo)準(zhǔn) ) mysql?-

21、u?oldboy?-poldboy?oldboy?system?mysql?-uroot?-poldboy123?oldboy?oldboy-gbk.sql?select?*?from?test;+ +|?id?|?name?|+ +|?1?|?zhaoyue?|?2?|?jesse?|?4?|?elain?|?5?|?wodi?|?6?|?yingsui?|?7?|?zhangyang?|?8?|?zaixiangpan?|?9?|?|?10?|?老男孩 ?|/data/backup/$(date?+%F).t ar.gz特別提示:有關(guān)MylSAM和InnoDB引擎的差別和在工作中如何選擇,

22、在前面的文 章已經(jīng)詳細(xì)講解過了,這里就不在講了。引擎?zhèn)浞軮nnoDB 引擎為行鎖,因此,備份時(shí)可以不對數(shù)據(jù)庫加鎖的操作,可以加選項(xiàng) -single-transaction進(jìn)行備份:mysqldump?-A?-F?-B?-single-transaction?|gzip?/data/backup/$(date?+% F).tar.gz 特別注意:1 )-single-transaction僅適用于 InnoDB 引擎。?生產(chǎn)環(huán)境 mysqldump 備份命令mysqldump? -u?root? -p? S?/data/3306/mysql.sock?-default-character-set

23、二gbk?-sin gle-tra nsactio n?-F?B?oldboy|gzip?/server/backup/mysql_$(date?+%F).sql.gz ?:注-F :刷新 bin-log 參數(shù),數(shù)據(jù)庫備份完以后,會刷新 bin-log?增量備份:更新 bin-log:mysqladmin? -uroot? -p? -S?/data/3306/mysql.sock?flush-logs如生成 mysql-bin.000004 文件把生成的最新 mysql-bin.000004 文件,CP 到/var/backup/ 把二進(jìn)制的日志生成 ?sql 語句:mysqlbinlog?m

24、ysql-bin.000004bin04.sql如果有多個庫,我們應(yīng)該用 -d 來指定恢復(fù)單個庫mysqlbi nlog?mysql-bi n.000004?oldboy?bi nlog.sql?(當(dāng)然對于庫也要分庫備,否則恢復(fù)還是麻煩 )還原數(shù)據(jù):先還原全備,再還原增備先還原全備:mysql? -u?root? -p?mysql file .sql還原增備:mysql? -u?root? -p? show?variables?likemax_connections;+|?Variable_name?|?Value?|+|?max_connections?|?151?|+1?row?in?se

25、t?(0.00?sec)服務(wù)器響應(yīng)的最大連接數(shù): 152 mysql ?show?global?status?like?Max_used_connections;+|?Variable_name?|?Value?|+|?Max_used_connections?|?152?|+1?row?in?set?(0.00?sec)查看服務(wù)器 key_buffer_size 數(shù)值: mysql?show?variables?like?key_buffer_size;+|?Variable_name?|?Value?|+1?row?in?set?(0.00?sec) ?查看服務(wù)器現(xiàn)在使用的 key_buf

26、fer_size 使用情況:key-reads:?830525 mysql?show?global?status?like?key_read%;+ |?Variable_name?|?Value?|+|?Key_reads?|?830525?|+2?rows?in?set?(0.00?sec) 計(jì)算索引未命中的概率: key_cache_miss_rate?=?key_reads?/?key_read_requests?*?100% 達(dá)到 0.1% 以下(即每 1000 個請求有一個直接讀硬盤)以下都很好,如果 key_cache_miss_rae 在 0.01% 以下的話,則說明 key_b

27、uffer_size 分配得過多, 可以適當(dāng)減少。?Key_blocks_unused 表示未使用的緩存簇?cái)?shù), Key_blocks_used 表示曾經(jīng)用到 的最大的 blocks 數(shù),比如這臺服務(wù)器,所有的緩存都用到了,要么增加 key_buffer_size ,要么就是過度索引,把緩存占滿了。比較理想的設(shè)置是: key_blocks_used?/?(?key_blocks_unused?+?key_blocks_used?)?*?100 ?%?=?80%? mysql?show?global?status?like?key_blocks_u%;+|?Variable_name?|?Valu

28、e?|+|?Key_blocks_unused?|?317003?| |?Key_blocks_used?|?6439?|+2?rows?in?set?(0.00?sec)?臨時(shí)表:當(dāng)執(zhí)行語句時(shí),關(guān)于已經(jīng)被創(chuàng)造了的隱含臨時(shí)表的數(shù)量,我們可以用如下命令查詢 其具體情況:mysql?show?global?status?like?created_tmp%;+|?Variable_name?|?Value?|+|?Created_tmp_disk_tables?|?343326?|?Created_tmp_files?|?172?|?Created_tmp_tables?|?675795?|+3?r

29、ows?in?set?(0.00?sec)?每次創(chuàng)建臨時(shí)表時(shí), created_tmp_tables 都會增加,如果是在磁盤上創(chuàng)建臨時(shí)表, created_tmp_disk_tables 也會增加。 created_tem_files 表示 MYSQL 服務(wù)創(chuàng) 建的臨時(shí)文件數(shù),比較理想的配置是:Created_Tmp_disk_tables?/?Created_tmp_tables?*?100%?show?variables?where?Variable_name?in?(tmp_table_size,m ax_heap_table_size);+|?Variable_name?|?Value

30、?|+2?rows?in?set?(0.00?sec)只有 16M 以下的臨時(shí)表才能全部放在內(nèi)存中,超過的就會用到硬盤臨時(shí)表打開表的情況我們可以O(shè)pen_tables 表示打開表的數(shù)量, Opend_tables 表示打開過的表數(shù)量, 用如下命令查看其具體情況:mysql ?show?global?status?like?open%tables%;+|?Variable_name?|?Value?|+|?Open_tables?|?512?|?Opened_tables?|?234200?|+2?rows?in?set?(0.00?sec)如果 Opened_tables 數(shù)量過大,說明配置中

31、 tables_caceh(MYSQL?5.1.3? 之后 這個值叫做 table_open_cache) 的值可能太小。我們查詢一下服務(wù)器 table_cache 值:mysql?show?variables?like?table_open_cache;? ?+|?Variable_name?|?Value?|+|?table_open_cache?|?614?|+1?row?in?set?(0.00?sec) 比較合適的值為:Open_tables?/?Opened_tables?*?100%?=?85%Open_tables?/?table_open_cache?*?100%?show?

32、global?status?like?Thread%;+ |?Variable_name?|?Value?|+|?Threads_cached?|?7?| |?Threads_connected?|?2?| |?Threads_created?|?2124?| |?Threads_running?|?2?| +4?rows?in?set?(0.00?sec)如果發(fā)現(xiàn) Threads_created 的值過大的話,表明 MYSQL 服務(wù)器一直在創(chuàng)建線程, 這也是比較耗費(fèi)資源的,可以適當(dāng)增大配置文件中的 thread_cache_size 的值。查 詢服務(wù)器 thread_cahce_size 配

33、置,如下所示: mysql?show?variables?like?thread_cache_size;+|?Variable_name?|?Value?|+|?thread_cache_size?|?8?|+1?row?in?set?(0.00?sec)?查詢緩存它涉及的主要有兩個參數(shù), query_cache_size 是設(shè)置 MYSQL 的 Query_Cache 大 小, query_cache_size 是設(shè)置使用查詢緩存的類型,我們可以用如下命令查看其具 體情況:mysql?show?global?status?like?qcache%;+|?Variable_name?|?Val

34、ue?|+|?Qcache_free_blocks?|?130?|?Qcache_inserts?|?2391041?|?Qcache_lowmem_prunes?|?0?|?|?Qcache_not_cached?|?671718?|?Qcache_queries_in_cache?|?676?|?Qcache_total_blocks?|?1798?|+8?rows?in?set?(0.00?sec)?我們再查詢一下服務(wù)器上關(guān)于 query-cache 的配置命令如下:mysql?show?variables?like?query_cache%;+|?Variable_name?|?Val

35、ue?|+|?query_cache_limit?|?1048576?|?query_cache_min_res_unit?|?4096?|?query_cache_type?|?ON?|?query_cache_wlock_invalidate?|?OFF?|+5?rows?in?set?(0.00?sec)排序使用情況它表示系統(tǒng)中對數(shù)據(jù)進(jìn)行排序時(shí)所使用的 Buffer ,我們可以用如下命令查看: mysql?show?global?status?like?sort%;+|?Variable_name?|?Value?|+|?Sort_merge_passes?|?84?|?Sort_ran

36、ge?|?393425?|?Sort_scan?|?324383?|+4?rows?in?set?(0.00?sec)?Sort_merge_passes 包括如下步驟: MYSQL 首先會嘗試在內(nèi)存中做排序,使用 的內(nèi)存大小由系統(tǒng)變量 sort_buffer_size 來決定, 如果它不夠大則把所有的記錄都 讀到內(nèi)存中,而MYSQI則會把每次在內(nèi)存中排序的結(jié)果存到臨時(shí)文件中, 等?MYSQL 找到所有記錄之后,再把臨時(shí)文件中的記錄做一次排序。這次再排序就會增加 sort_merge_passes 。實(shí)際上, MYSQL 會用另一個臨時(shí)文件來存儲再次排序的結(jié) 果,所以我們通常會看到 sort_merge_p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論