


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Li nux 運維工程師工作手冊釋放內存:syncecho?3?/proc/sys/vm/drop_caches?Linux查看Dell服務器型號命令:dmidecode?|?grep?Product?Name查看系統(tǒng)負載:cat ?/proc/loadavg0.0?0.00?0.00?1/283?10904而283意思是:前三個是系統(tǒng)負載,1/283中,1代表此時運行隊伍中的進程個數, 是代表此時的進程總數10904到此為止,最后創(chuàng)建的一個進程ID。?系統(tǒng)裝好后,要做的事如下:關閉防火墻Selinux:vim?/etc/seli nu x/c onfig把 SELINUX二enforcing
2、改成 SELINUX二disabled更改主機名:vim?/etc/syscon fig/network修改主機名,不要用localhost添加hosts主機記錄vim?/etc/hosts 中,在后面,添加自己的主機名創(chuàng)建 0-9?a-z 目錄for?i?i n?seq?0?9?a.z;do?mkdir?-p?$i;do ne ?測試硬盤性能工具: iozone監(jiān)視服務器每少上下文切換數次工具 :Nmon( 很不錯的性能監(jiān)視工具 )?# 占用內存大小前 10 的進程ps?-eo?comm,size?-sort?-size?|?head?-10?# 占用 cpu 使用前 10 的進程ps?-e
3、o?comm,pcpu?-sort?-pcpu?|?head?-10?一、 Apache 服務優(yōu)化: ?21. 配置 cronolog 進行日志輪詢 ?22. 錯誤頁面優(yōu)雅顯示 ?23. mod_deflate 文件壓縮功能 ?34. mod_expires 緩存功能 ?45. 更改 apache 的默認用戶 ?56. worker 模式,提升并發(fā)數(可以達到 2000-5000)?57. 屏蔽 apache 版本等敏感信息 ?68. apache 目錄文件權限設置( root ,目錄 755 ,文件 644 )?69. 開啟 httpd-mpm.conf?增加連接數 ?610. ?apach
4、e 防盜鏈功能 ?811. 禁止目錄 Index?812. ?禁止用戶覆蓋 ( 重載) ?813. 關閉 CGI?914. 避免使用 .htaccess 文件(分布式配置文件) ?915. ?apache 的安全模塊 ?916. 正確途徑取得源代碼,勤打 apache 補丁 ?1017. apache 日志授予 root?700 權限 ?1018. 系統(tǒng)內核參數優(yōu)化 ?1019. 禁止 PHP 解析指定站點的目錄 ?1020. 使用 tmpfs 文件系統(tǒng)替代頻繁訪問的目錄 ?1121 盡可能減少 ?HTTP? 請求數?1122 使用 CDN 做網站加速 ?12?查看你的服務器網絡連接狀態(tài)n e
5、tstat?-n?|?awk?tcp/?+S$NF?END?for(a?i n? S)?pri nt?a,?SaCLOSED :無連接是活動的或正在進行?4LISTEN :服務器在等待進入呼叫?4SYN_RECV :個連接請求已經到達,等待確認 ?4SYN_SENT :應用已經開始,打開一個連接?ESTABLISHED :正常數據傳輸狀態(tài)?4FIN_WAIT1 :應用說它已經完成?4FIN_WAIT2 :另一邊已同意釋放?TMED WAIT :等待所有分組死掉?CLOSING :兩邊同時嘗試關閉?TIME_WAIT :另一邊已初始化一個釋放 ?LAST_ACK :等待所有分組死掉 ?ESTAB
6、LISHED 的值其實也是當前的并發(fā)數,這個可重點關注下;另外,可關注下TIME WAIT這項的數值。Linux下高并發(fā)的Squid服務器,TCP?TIME_WAIT 套接字數量經常達到兩、三萬,服務器很容易被拖死。通過修改 Linux 內核參數, 可以減少 Squid 服務器的 TIME_WAIT 套接字數量。?# 查看系統(tǒng)本地可用端口極限值 cat?/proc/sys/net/ipv4/ip_local_port_range?尋找惡意 IP 并用 iptables 禁止掉4.5 備份單個 數據庫mysqldump?-u? 用戶? - p密碼?default-character-set=la
7、tin1?數據庫名? 備份文件名 (數據庫默認編碼是 latin1)普通備份:mysqldump?-uroot?-poldboy123?oldboy?/server/bak/oldboy.sql壓縮備份:設置字符集備份:執(zhí)行結果: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 實際上就是把數據從 mysql 庫里以邏輯的 sql 語句的形式導出 備份的數據過濾掉注釋: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 參數是關鍵,表示接多個庫。(生產環(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.參數說明: 該參數用于導出若干個數據庫, 在備份結果中會加入 USE?db_name 和CREATE?DATABASE?db_name;?-B 后的參數都將被作為數據庫名。該參數比較常用。當 -B 后的數據庫列全 時?同 ?-A 參數。請看 -A 的說明。4.8 備份單個表mysqldump?-u? 用戶名?-p?數據庫名?表名?備份的文件名mysqldump?-u?root?-p?oldboy?test?oldboy_oldboy.sql執(zhí)行結果:rootoldboy?#?mysqldump?-uroot?-poldboy123?oldboy?t
13、est?-default-character-set=gbk?/server/bak/oldboy-gbk-single.sql提示:無 -B 參數,庫 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 備份數據庫結構 ( 不包含數據 )mysqldump?-uroot? -d? -poldboy?oldboy?oldboy?oldboy_oldboy.sql-d? 只備份表結構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,同學?PRIMA
17、RY?KEY?(id) )?ENGINE=MyISAM?AUTO_INCREMENT=12?DEFAULT?CHARSET=gbk; 更多用法可以?執(zhí)行?mysqldump? -help?查詢。有關mysql和mysqldump 們要詳細總結。5 恢復數據庫5.1?source 命令恢復進入 mysql 數據庫控制臺, mysql?-u?root?-pmysql use? 數據庫然后使用 source 命令,后面參數為 腳本文件(如這里用到的 .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?|? 老男孩 ?|?= 仍然是正常的,就是說備份不加字符集導出,將來恢 復不會影響恢復的數據,但是備份后查看文件會亂碼。|?11?|? 我 ?|+10?rows?in?set?(0.00?sec)5.2?mysql 命令恢復 ( 標準 ) 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特別提示:有關MylSAM和InnoDB引擎的差別和在工作中如何選擇,
22、在前面的文 章已經詳細講解過了,這里就不在講了。引擎?zhèn)浞軮nnoDB 引擎為行鎖,因此,備份時可以不對數據庫加鎖的操作,可以加選項 -single-transaction進行備份:mysqldump?-A?-F?-B?-single-transaction?|gzip?/data/backup/$(date?+% F).tar.gz 特別注意:1 )-single-transaction僅適用于 InnoDB 引擎。?生產環(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 參數,數據庫備份完以后,會刷新 bin-log?增量備份:更新 bin-log:mysqladmin? -uroot? -p? -S?/data/3306/mysql.sock?flush-logs如生成 mysql-bin.000004 文件把生成的最新 mysql-bin.000004 文件,CP 到/var/backup/ 把二進制的日志生成 ?sql 語句:mysqlbinlog?m
24、ysql-bin.000004bin04.sql如果有多個庫,我們應該用 -d 來指定恢復單個庫mysqlbi nlog?mysql-bi n.000004?oldboy?bi nlog.sql?(當然對于庫也要分庫備,否則恢復還是麻煩 )還原數據:先還原全備,再還原增備先還原全備: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)服務器響應的最大連接數: 152 mysql ?show?global?status?like?Max_used_connections;+|?Variable_name?|?Value?|+|?Max_used_connections?|?152?|+1?row?in?set?(0.00?sec)查看服務器 key_buffer_size 數值: mysql?show?variables?like?key_buffer_size;+|?Variable_name?|?Value?|+1?row?in?set?(0.00?sec) ?查看服務器現(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) 計算索引未命中的概率: key_cache_miss_rate?=?key_reads?/?key_read_requests?*?100% 達到 0.1% 以下(即每 1000 個請求有一個直接讀硬盤)以下都很好,如果 key_cache_miss_rae 在 0.01% 以下的話,則說明 key_b
27、uffer_size 分配得過多, 可以適當減少。?Key_blocks_unused 表示未使用的緩存簇數, Key_blocks_used 表示曾經用到 的最大的 blocks 數,比如這臺服務器,所有的緩存都用到了,要么增加 key_buffer_size ,要么就是過度索引,把緩存占滿了。比較理想的設置是: 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)?臨時表:當執(zhí)行語句時,關于已經被創(chuàng)造了的隱含臨時表的數量,我們可以用如下命令查詢 其具體情況: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)建臨時表時, created_tmp_tables 都會增加,如果是在磁盤上創(chuàng)建臨時表, created_tmp_disk_tables 也會增加。 created_tem_files 表示 MYSQL 服務創(chuàng) 建的臨時文件數,比較理想的配置是: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 以下的臨時表才能全部放在內存中,超過的就會用到硬盤臨時表打開表的情況我們可以Open_tables 表示打開表的數量, Opend_tables 表示打開過的表數量, 用如下命令查看其具體情況: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 數量過大,說明配置中
31、 tables_caceh(MYSQL?5.1.3? 之后 這個值叫做 table_open_cache) 的值可能太小。我們查詢一下服務器 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 服務器一直在創(chuàng)建線程, 這也是比較耗費資源的,可以適當增大配置文件中的 thread_cache_size 的值。查 詢服務器 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)?查詢緩存它涉及的主要有兩個參數, query_cache_size 是設置 MYSQL 的 Query_Cache 大 小, query_cache_size 是設置使用查詢緩存的類型,我們可以用如下命令查看其具 體情況: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)?我們再查詢一下服務器上關于 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)中對數據進行排序時所使用的 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 首先會嘗試在內存中做排序,使用 的內存大小由系統(tǒng)變量 sort_buffer_size 來決定, 如果它不夠大則把所有的記錄都 讀到內存中,而MYSQI則會把每次在內存中排序的結果存到臨時文件中, 等?MYSQL 找到所有記錄之后,再把臨時文件中的記錄做一次排序。這次再排序就會增加 sort_merge_passes 。實際上, MYSQL 會用另一個臨時文件來存儲再次排序的結 果,所以我們通常會看到 sort_merge_p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 拱墅區(qū)小學數學試卷
- 高一期末深圳數學試卷
- 房山區(qū)高三數學試卷
- 高一金太陽數學試卷
- 福建英語數學試卷
- 2025年03月山東威海市中心醫(yī)院山東省博士后創(chuàng)新實踐基地招聘20人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 財務評價培訓課件模板
- 2025至2030達瓦納油行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 阜新實驗月考數學試卷
- 東莞市初三題目數學試卷
- 小紅書種草營銷師模擬題及答案(單選+多選+判斷)
- 2023-2024學年滬科版(2019)高中信息技術必修二第三單元項目五《規(guī)劃并連接數字家庭系統(tǒng)的網絡-組建小型信息系統(tǒng)網絡(一)》說課稿
- 石油行業(yè)設備管理規(guī)范
- 汕頭市防汛防旱防風防凍應急預案
- 2023年高考遼寧卷化學真題(解析版)
- 2023-2024學年廣東省深圳市福田區(qū)七年級(下)期末數學答案
- 2024版商戶入駐合同
- 和公司直播合作協(xié)議書范本
- 兒科護理學高職全套教學課件
- 光伏發(fā)電工程建設標準工藝手冊(2023版)
- 北師大版八年級數學下冊??碱}專練專題18平行四邊形中的周長和面積問題(原卷版+解析)
評論
0/150
提交評論