Linux運維工程師工作手冊簿_第1頁
Linux運維工程師工作手冊簿_第2頁
Linux運維工程師工作手冊簿_第3頁
Linux運維工程師工作手冊簿_第4頁
Linux運維工程師工作手冊簿_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

3、 comm,pcpu -sort一、Apache服務優(yōu)化:21. 配置cronolog 進行日志輪詢 22. 錯誤頁面優(yōu)雅顯示23. mod_deflate 文件壓縮功能34. mod_expires 緩存功能 45. 更改apache的默認用戶56. worker模式,提升并發(fā)數(shù)(可以達到2000-5000)57. 屏蔽apache版本等敏感信息 68. apache目錄文件權(quán)限設置(root,目錄755,文件644)69. 開啟httpd-mpm.conf增加連接數(shù)610. apache防盜鏈功能811. 禁止目錄Index 812. 禁止用戶覆蓋(重載) 813. 關(guān)閉 CGI 914.

4、 避免使用.htaccess文件(分布式配置文件) 915. apache的安全模塊916. 正確途徑取得源代碼,勤打apache補丁 1017. apache日志授予root 700權(quán)限 1018. 系統(tǒng)內(nèi)核參數(shù)優(yōu)化1019. 禁止PHP解析指定站點的目錄1020. 使用tmpfs文件系統(tǒng)替代頻繁訪問的目錄1121盡可能減少 HTTP請求數(shù) 1122使用CDN故網(wǎng)站加速12查看你的服務器網(wǎng)絡連接狀態(tài)netstat -n | awk tcp/ +S$NF END for(a in S) print a, SaI CLOSED無連接是活動的或正在進行 LISTEN:服務器在等待進入呼叫 SYN_

5、RECV 個連接請求已經(jīng)到達,等待確認 SYN_SENT應用已經(jīng)開始,打開一個連接 ESTABLISHED正常數(shù)據(jù)傳輸狀態(tài) FIN_WAIT1 :應用說它已經(jīng)完成 FIN_WAIT2:另一邊已同意釋放 ITMED_WAIT等待所有分組死掉 CLOSING兩邊同時嘗試關(guān)閉 TIME_WAIT另一邊已初始化一個釋放 LAST_ACK等待所有分組死掉ESTABLISHE啲值其實也是當前的并發(fā)數(shù), 這個可重點關(guān)注下;另外,可關(guān)注下TIMEWAIT 這項的數(shù)值。Linux下高并發(fā)的Squid服務器,TCP TIME_WAIT套接字數(shù)量經(jīng)常達到兩、三 萬,服務器很容易被拖死。通過修改 Linux內(nèi)核參數(shù),

6、可以減少 Squid服務器的TIME_WAIT 套接字數(shù)量。#查看系統(tǒng)本地可用端口極限值cat /proc/sys/net/ipv4/ip_local_port_ra nge尋找惡意IP并用iptables 禁止掉n etstat_an| grep :80| grep-v |awk print$5| sort|awk-F:pri nt$1,$4|uniq -c | awk $150 print$1,$24.5備份單個數(shù)據(jù)庫數(shù)據(jù)庫mysqldump -u 用戶 p密碼-default-character-set=lati n1名 備份文件名(數(shù)據(jù)庫默認編碼是latin1)普通備

7、份:mysqldump-uroot-poldboy123oldboy /server/bak/oldboy.sql壓縮備份:mysqldump-uroot-poldboy123oldboy|gzip /server/bak/oldboy.sql.gz設置字符集備份:mysqldump-uroot-poldboy123oldboy-default-character-set=gbk|gzip /server/bak/oldboy.sql.gz執(zhí)行結(jié)果:rootoldboy#mkdir/server/bak-prootoldboy#mysqldump -uroot-poldboy123oldboy

8、 /server/babackup/ bak/rootoldboy#mysqldump -uroot-poldboy123oldboy /server/bak/oldboy.sqlrootoldboy#mysqldump -uroot-poldboy123oldboy|gzip /server/bak/oldboy.sql.gzrootoldboy#ls -l/server/bak/total8-rw-r-r-1rootroot1991 Apr9 00:51oldboy.sql-rw-r-r-1rootroot801 Apr900:51oldboy.sql.gz4.6 mysqldump 在做

9、啥?mysqldump實際上就是把數(shù)據(jù)從 mysql庫里以邏輯的sql語句的形式導出。備份的數(shù)據(jù)過濾掉注釋:rootoldboy # egrep -v*卜-|人$/server/bak/oldboy.sqlDROP TABLE IF EXISTS test;CREATE TABLE test (idint(4)NOT NULL AUTO_INCREMENT,name char(20) NOT NULL,PRIMARY KEY (id)ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;LOCK TABLES testWRITE;INSERT I

10、NTO testVALUES (1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,y in gsui),(7,zha ngya ng),(8,zaixia ngpa n),(9,?),(10,鑰佺敺瀛?),(11,鎴?); /server/bak/oldboy-gbk.sqlrootoldboy # egrep -v *|-|A$/server/bak/oldboy-gbk.sqlDROP TABLE IF EXISTS test;CREATE TABLE test (idint(4)NOT NULL AUTO_INCREMENT,name char(20)

11、 NOT NULL,PRIMARY KEY (id)ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;LOCK TABLES testWRITE;INSERT INTO testVALUES (1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yi ngsui),(7,zha ngya ng),(8,zaixia ngpa n),(9,?),(10,老男孩),(11, 我); /server/bak/oldboy-gbk-muli.sql提示:-B參數(shù)是關(guān)鍵,表示接多個庫。探(生產(chǎn)環(huán)境常用)-B, -dat

12、abasesTo dump several databases. Note the diff erenee in usage;In this case no tables are gi ven. Allname arguments areregardedas database names.USEdb_n ame;will beUSE db_name和-B后的數(shù)據(jù)庫列全in cludedinthe output.參數(shù)說明:該參數(shù)用于導出若干個數(shù)據(jù)庫,在備份結(jié)果中會加入CREATE DATABASE db_name;-B后的參數(shù)都將被作為數(shù)據(jù)庫名。該參數(shù)比較常用。當時同-A參數(shù)。請看-A的說明。4

13、.8備份單個表mysqldump -u用戶名 -p數(shù)據(jù)庫名表名 備份的文件名mysqldump -uroot-p oldboy testoldboy_oldboy.sql執(zhí)行結(jié)果:rootoldboy#mysqldump -uroot-poldboy123oldboytest-default-character-set=gbk/server/bak/oldboy-gbk-s in gle.sql提示:無-B參數(shù),庫oldboy 后面就是test表了。4.9備份多個表rootoldboy#mysqldump -uroot-poldboy123oldboytestett -default-char

14、acter-set=gbk /server/bak/oldboy-gbk-muti-tables.sqlrootoldboy#egrep -v*|-|A$/server/bak/oldboy-gbk-muti-tables.sqlDROP TABLE IF EXISTS test;CREATE TABLE test (id int(4) NOT NULL AUTO_INCREMENT,name char(20) NOT NULL,PRIMARY KEY (id)ENGINE=MylSAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;LOCK TABLES test

15、WRITE;INSERT INTO testVALUES (1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yi ngsui),(7,zha ngya ng),(8,zaixia ngpa n),(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ù)庫

16、結(jié)構(gòu)(不包含數(shù)據(jù))mysqldump -uroot -d -poldboy oldboy oldboy oldboy_oldboy.sql-d 只備份表結(jié)構(gòu)rootoldboy # mysqldump -uroot -poldboy123 -d oldboy /tmp/desc.sqlrootoldboy # egrep -v *|-|A$/tmp/desc.sqlDROP TABLE IF EXISTS、ett;CREATE TABLE ett (idin t(11)DEFAULT NULL)ENGINE=MylSAM DEFAULT CHARSET=gbk;DROP TABLE IF EX

17、ISTS test;CREATE TABLE test (idint(4)NOT NULL AUTO_INCREMENT,name char(20) NOT NULL,PRIMARY KEY (id)ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;更多用法可以執(zhí)行 mysqldump - help 查詢。有關(guān) mysql和mysqldump同學們要詳細總結(jié)。5恢復數(shù)據(jù)庫5.1 source命令恢復進入mysql數(shù)據(jù)庫控制臺,mysql -u root -pmysql use 數(shù)據(jù)庫然后使用source命令,后面參數(shù)為 腳本文件(如這里用到的

18、.sql)mysql sourceoldboy_db.sql#這個文件是系統(tǒng)路徑。rootoldboybak# mysql-uroot-poldboy123Welcome tothe MySQL monitor.Comma nds endwith ;or g.skip.Type help;or hforhelp.Type ctoclearthecurre ntinputstateme nt.mysql use oldboyDatabasecha ngedmysql show tables;+| Tables_i n_ oldboy|+I ett| test|+ 2 rows in set (0

19、.00 sec) mysql drop tables test;Query OK, 0 rows affected (0.01 sec)mysql system ls .oldboy-gbk-muli.sqloldboy-gbk-muti-tables.sqlmysqlsource./oldboy.sql碼的備份。QueryOK,0rowsaffected.skip.QueryOK,0rowsaffectedQ.skip.QueryOK,0rowsaffectedoldboy-gbk-s in gle.sqloldboy-gbk.sql=還是用第一版沒加字符集的備份,(0.00 sec)(0.

20、00 sec)(0.00 sec)oldboy.sqloldboy.sql.gz就是備份后查看亂+| id |n ame|+| 1| zhaoyue| 2| jesse|4| elain|5| wodi| 6| yin gsui|7|zhangyang| 8|zaixia ngpa n|9| ?| 10 |?| select * from test;| 11 | ? |+10 rows in set (0.00 sec) mysql setnames gbk;Query OK, 0 rows affected (0.00 sec) mysql select * from test;+| id

21、| n ame|+|1| zhaoyue|2 |jesse|4 |elain|5| wodi|6| yin gsui|7 |zhangyang|8 |zaixia ngpa n|9 |?| 10 |老男孩|=仍然是正常的,就是說備份不加字符集導出,將來恢 復不會影響恢復的數(shù)據(jù),但是備份后查看文件會亂碼。+ 10 rows in set (0.00 sec)5.2 mysql命令恢復(標準)mysql -u oldboy -poldboy oldboy system mysql -uroot -poldboy123 oldboy oldboy-gbk.sql select * from test

22、;+| id | n ame|+|1| zhaoyue|2| jesseI4| elainI5| wodiI6| yin gsuiI7|zhangyangI8|zaixia ngpa n|9| ?I10 |老男孩I/data/backup/$(date +%F).tar gz特別提示:有關(guān)MylSAM和InnoDB引擎的差別和在工作中如何選擇,在前面的文章已經(jīng)詳細 講解過了,這里就不在講了。 InnoDB 引擎?zhèn)浞軮nnoDB引擎為行鎖,因此,備份時可以不對數(shù)據(jù)庫加鎖的操作,可以加選項-sin gle-tra nsacti on進行備份:mysqldump -A -F -B-s

23、in gle-tra nsact ion|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=gbk- single-transaction- F -B oldboy|gzip /server/backup/mysql_$(date+%F).sql.gz:注-F :刷新bin-log參數(shù),數(shù)據(jù)庫備份完以后,會刷新bi

24、n-log增量備份:更新 bin-log:mysqladmin - uroot - p - S /data/3306/mysql.sock flush-logs如生成 mysql-bin.000004文件把生成的最新 mysql-bin.000004文件,CP到/var/backup/把二進制的日志生成sql語句:mysqlbi nlogmysql-bi n.000004bi n04.sql如果有多個庫,我們應該用-d來指定恢復單個庫mysqlbinlogmysql-bin.000004- d oldboybinlog.sql(當然對于庫也要分庫備,否則恢復還是麻煩)還原數(shù)據(jù):先還原全備,再還

25、原增備先還原全備: mysql - u root - p mysql file .sql還原增備:mysql - u root - p show variableslikemax_connections;+-+|Variable_ name| Value+-+|max_c onnections|151+-+1 row in set (0.00 sec)服務器響應的最大連接數(shù):152mysql show global statuslikeMax_used_c onn ectio ns:+| Value | Variable_ name+-+-+IMax_used_c onn ecti onsI

26、152I+-+-+1row in set(0.00sec)查看服務器key_buffer_size數(shù)值:402653184mysql show variableslikekey_buffer_size+-+IVariable_ nameIValueI+-+Ikey_buffer_sizeI402653184 I+-+1row in set(0.00sec)查看服務器現(xiàn)在使用的key_buffer_size使用情況:key_read_requests:879600044key-reads:830525mysql show globalstatus likekey_read%;+| Variabl

27、e, name| Value+| Key_read_requests|879600044| Key_reads|830525|+2 rows in set (0.00 sec)計算索引未命中的概率:key_cache_miss_ratekey_reads / key_read_requests *100%達到0.1%以下(即每1000個請求有一個直接讀硬盤)以下都很好,如果key_cache_miss_rae在0.01%以下的話,則說明 key_buffer_size分配得過多,可以適當減少。Key_blocks_unused 表示未使用的緩存簇數(shù),Key_blocks_used 表示曾經(jīng)用到

28、的最大的blocks數(shù),比如這臺服務器,所有的緩存都用到了,要么增加key_buffer_size ,要么就是過度索引,把緩存占滿了。比較理想的設置是:key_blocks_used /key_blocks_u nu sed+ key_blocks_used )* 100 %80%mysql show globalstatus likekey_blocks_u%;| Variable, name| Value| Key_blocks_unused317003| Key_blocks_used|64392 rows inset (0.00sec)臨時表:當執(zhí)行語句時,關(guān)于已經(jīng)被創(chuàng)造了的隱含臨時表

29、的數(shù)量,我們可以用如下命令查詢其具體情況:mysql show globalstatuslike created_tmp%;+| Variable_ name+| Created_tmp_disk_tables| Created_tmp_files| Created_tmp_tables+| Value |343326|I 172|675795|3 rows in set (0.00 sec)每次創(chuàng)建臨時表時,created_tmp_tables都會增加,如果是在磁盤上創(chuàng)建臨時表,created_tmp_disk_tables也會增加。created_tem_files 表示MYSQ服務創(chuàng)建的

30、臨時文件數(shù),比較理想的配置是:Created_Tmp_disk_tables / Created_tmp_tables *100% show variableswhere Variable namein (tmp_table_size,max_heap_table_size);| Variable_ name| Value| max_heap_table_size16777216| tmp_table_size|16777216|2 rows in set (0.00sec)只有16M以下的臨時表才能全部放在內(nèi)存中,超過的就會用到硬盤臨時表。打開表的情況Open_tables表示打開表的數(shù)量,

31、Opend_tables表示打開過的表數(shù)量,我們可以用如下命令查看其具體情況:mysql show globalstatuslikeope n%tables%;+| Variable_ nameValue+| Open _tables|512|Open ed_tables234200+2 rows in set(0.00 sec)如果 Opened_tables數(shù)量過大,說明配置中tables_caceh(MYSQL 5.1.3之后這個值叫做table_open_cache)的值可能太小。我們查詢一下服務器table_cache 值:mysql show variablesliketable_

32、ope n_cache:+| Variable_ name| Value |+|table_ope n_cache614+1 row in set (0.00sec)比較合適的值為:Open_tables/Opened_tables * 100% = 85%Open_tables/table_open_cache*100% show globalstatuslikeThread%;+| Variable_ nameValue+Threads cachedThreads connectedThreads created2124Threads_r unning+4 rows in set (0.0

33、0sec)如果發(fā)現(xiàn) Threads created的值過大的話,表明MYSQL!務器一直在創(chuàng)建線程, 這也是比較耗費資源的,可以適當增大配置文件中的thread cache size 的值。查詢服務器thread_cahce_size 配己置,如下所示:mysql show variableslikethread_cache_size:+| Variable_ nameValue |+| thread_cache_size+1 row in set (0.00sec)它涉及的主要有兩個參數(shù),查詢緩存query_cache_size 是設置 MYSQ的 Query_Cache 大小,query_

34、cache_size是設置使用查詢緩存的類型,我們可以用如下命令查看其具體情況:mysql show global statuslikeqcache%;+| Variable, name| Value+| Qcache_free_blocks1130| Qcache_free_memory131557680| Qcache_hits|15838885| Qcache_i nserts|2391041| Qcache_lowmem_pr unes1 0|Qcache_ no t_cached1671718|Qcache_queries_ in _cache|6761| Qcache_total_

35、blocks11798|+8 rows in set (0.00 sec)我們再查詢一下服務器上關(guān)于query-cache的配置命令如下:mysql show variableslikequery_cache%;+-+| Variable_ name| Value+-+| query_cache_limit|1048576|query_cache_ min_res_un it|4096| query_cache_size|33554432| query_cache_type| ON|query_cache_wlock_ in validate1 OFF|+-+5 rows in set (0.00sec)排序使用情況它表示系統(tǒng)中對數(shù)據(jù)進行排序時所使用的Buffer,我們可以用如下命令查看:mysql show globalstatuslike sort%;+| Variable, name1Value+| Sort_merge_passes| 84| Sort_range|393425| Sort_rows|751581502|Sort_sca n|324383+4 rows in set (0.00 sec)Sort_merge_passes包括如下步驟:MYSQ首先會嘗試在內(nèi)存中做排序,使用的內(nèi)存大小由 系統(tǒng)變量sort_buffe

溫馨提示

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

評論

0/150

提交評論