Linux运维工程工师工作手册_第1页
Linux运维工程工师工作手册_第2页
Linux运维工程工师工作手册_第3页
Linux运维工程工师工作手册_第4页
Linux运维工程工师工作手册_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux运维工程师工作手册Linux运维工程师工作手册PAGE20Linux运维工程师工作手册Linux运维工程师工作手册释放内存:syncecho3/proc/sys/vm/drop_cachesLinux查看Dell服务器型号命令:dmidecode|grepProductName查看系统负载:cat/proc/loadavg1/28310904意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而283是代表此时的进程总数10904到此为止,最后创建的一个进程ID。系统装好后,要做的事如下:关闭防火墙Selinux:vim/etc/selinux/config把SE

2、LINUX=enforcing改成SELINUX=disabled更改主机名:vim/etc/sysconfig/network修改主机名,不要用localhost添加hosts主机记录vim/etc/hosts中,在后面,添加自己的主机名创建0-9a-z目录foriinseq09a.z;domkdir-p$i;done:测试硬盘性能工具:iozone监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具)#占用内存大小前10的进程ps-eocomm,size-sort-size|head-10#占用cpu使用前10的进程ps-eocomm,pcpu-sort-pcpu|head-1

3、0一、Apache服务优化:21.配置cronolog进行日志轮询22.错误页面优雅显示2文件压缩功能3缓存功能45.更改apache的默认用户5模式,提升并发数(可以达到2000-5000)57.屏蔽apache版本等敏感信息6目录文件权限设置(root,目录755,文件644)69.开启增加连接数610.apache防盗链功能811.禁止目录Index812.禁止用户覆盖(重载)813.关闭CGI914.避免使用.htaccess文件(分布式配置文件)915.apache的安全模块916.正确途径取得源代码,勤打apache补丁10日志授予root700权限1018.系统内核参数优化101

4、9.禁止PHP解析指定站点的目录1020.使用tmpfs文件系统替代频繁访问的目录1121尽可能减少HTTP请求数1122使用CDN做网站加速12查看你的服务器网络连接状态netstat-n|awk/tcp/+S$NFENDfor(ainS)printa,SaCLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正常数据传输状态FIN_WAIT1:应用说它已经完成FIN_WAIT2:另一边已同意释放ITMED_WAIT:等待所有分组死掉CLOSING:两边同时尝

5、试关闭TIME_WAIT:另一边已初始化一个释放LAST_ACK:等待所有分组死掉ESTABLISHED的值其实也是当前的并发数,这个可重点关注下;另外,可关注下TIMEWAIT这项的数值。Linux下高并发的Squid服务器,TCPTIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量。#查看系统本地可用端口极限值cat/proc/sys/net/ipv4/ip_local_port_range寻找恶意IP并用iptables禁止掉netstat-an|grep:80|grep-v|awkprint

6、$5|sort|awk-F:print$1,$4|uniq-c|awk$150print$1,$2备份单个数据库mysqldump-u用户p密码-default-character-set=latin1数据库名备份文件名(数据库默认编码是latin1)普通备份:mysqldump-uroot-poldboy123oldboy/server/bak/压缩备份:mysqldump-uroot-poldboy123oldboy|gzip/server/bak/设置字符集备份:mysqldump-uroot-poldboy123oldboy-default-character-set=gbk|gzip

7、/server/bak/执行结果:rootoldboy#mkdir/server/bak-prootoldboy#mysqldump-uroot-poldboy123oldboy/server/babackup/bak/rootoldboy#mysqldump-uroot-poldboy123oldboy/server/bak/rootoldboy#mysqldump-uroot-poldboy123oldboy|gzip/server/bak/rootoldboy#ls-l/server/bak/total8-rw-r-r-1rootroot1991Apr900:51-rw-r-r-1roo

8、troot801Apr900:51mysqldump在做啥?mysqldump实际上就是把数据从mysql库里以逻辑的sql语句的形式导出。备份的数据过滤掉注释:rootoldboy#egrep-v*|-|$/server/bak/DROPTABLEIFEXISTStest;CREATETABLEtest(idint(4)NOTNULLAUTO_INCREMENT,namechar(20)NOTNULL,PRIMARYKEY(id)ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;LOCKTABLEStestWRITE;INSERTINTOtes

9、tVALUES(1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yingsui),(7,zhangyang),(8,zaixiangpan),(9,),(10,鑰佺敺瀛),(11,鎴);/server/bak/rootoldboy#egrep-v*|-|$/server/bak/DROPTABLEIFEXISTStest;CREATETABLEtest(idint(4)NOTNULLAUTO_INCREMENT,namechar(20)NOTNULL,PRIMARYKEY(id)ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCH

10、ARSET=gbk;LOCKTABLEStestWRITE;INSERTINTOtestVALUES(1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yingsui),(7,zhangyang),(8,zaixiangpan),(9,),(10,老男孩),(11,我);/server/bak/提示:-B参数是关键,表示接多个库。(生产环境常用)-B,-databasesTodumpseveraldatabases.Notethedifferenceinusage;Inthiscasenotablesaregiven.Allnameargumentsarer

11、egardedasdatabasenames.USEdb_name;willbeincludedintheoutput.参数说明:该参数用于导出若干个数据库,在备份结果中会加入USEdb_name和CREATEDATABASEdb_name;-B后的参数都将被作为数据库名。该参数比较常用。当-B后的数据库列全时同-A参数。请看-A的说明。备份单个表mysqldump-u用户名-p数据库名表名备份的文件名mysqldump-uroot-poldboytest执行结果:rootoldboy#mysqldump-uroot-poldboy123oldboytest-default-character

12、-set=gbk/server/bak/提示:无-B参数,库oldboy后面就是test表了。备份多个表rootoldboy#mysqldump-uroot-poldboy123oldboytestett-default-character-set=gbk/server/bak/rootoldboy#egrep-v*|-|$/server/bak/DROPTABLEIFEXISTStest;CREATETABLEtest(idint(4)NOTNULLAUTO_INCREMENT,namechar(20)NOTNULL,PRIMARYKEY(id)ENGINE=MyISAMAUTO_INCRE

13、MENT=12DEFAULTCHARSET=gbk;LOCKTABLEStestWRITE;INSERTINTOtestVALUES(1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yingsui),(7,zhangyang),(8,zaixiangpan),(9,),(10,老男孩),(11,我);UNLOCKTABLES;DROPTABLEIFEXISTSett;CREATETABLEett( idint(11)DEFAULTNULL)ENGINE=MyISAMDEFAULTCHARSET=gbk;LOCKTABLESettWRITE;UNLOCKTA

14、BLES;备份数据库结构(不包含数据)mysqldump-uroot-d-poldboyoldboyoldboy-d只备份表结构rootoldboy#mysqldump-uroot-poldboy123-doldboy/tmp/rootoldboy#egrep-v*|-|$/tmp/DROPTABLEIFEXISTSett;CREATETABLEett(idint(11)DEFAULTNULL)ENGINE=MyISAMDEFAULTCHARSET=gbk;DROPTABLEIFEXISTStest;CREATETABLEtest(idint(4)NOTNULLAUTO_INCREMENT,n

15、amechar(20)NOTNULL,PRIMARYKEY(id)ENGINE=MyISAMAUTO_INCREMENT=12DEFAULTCHARSET=gbk;更多用法可以执行mysqldumphelp查询。有关mysql和mysqldump同学们要详细总结。5恢复数据库source命令恢复进入mysql数据库控制台,mysql-uroot-pmysqluse数据库然后使用source命令,后面参数为脚本文件(如这里用到的.sql)mysqlsource#这个文件是系统路径。rootoldboybak#mysql-uroot-poldboy123WelcometotheMySQLmonit

16、or.Commandsendwith;org.skip.Typehelp;orhforhelp.Typectoclearthecurrentinputstatement.mysqluseoldboyDatabasechangedmysqlshowtables;+|Tables_in_oldboy|+|ett|test|+2rowsinsetsec)mysqldroptablestest;QueryOK,0rowsaffectedsec)mysqlsystemls.mysqlsource./select*fromtest;+|id|name|+|1|zhaoyue|2|jesse|4|elain

17、|5|wodi|6|yingsui|7|zhangyang|8|zaixiangpan|9|?|10|?|setnamesgbk;QueryOK,0rowsaffectedsec)mysqlselect*fromtest;+|id|name|+|1|zhaoyue|2|jesse|4|elain|5|wodi|6|yingsui|7|zhangyang|8|zaixiangpan|9|?|10|老男孩|=仍然是正常的,就是说备份不加字符集导出,将来恢复不会影响恢复的数据,但是备份后查看文件会乱码。|11|我|+10rowsinsetsec)mysql命令恢复(标准)mysql-uoldboy-

18、poldboyoldboysystemmysql-uroot-poldboy123oldboyselect*fromtest;+|id|name|+|1|zhaoyue|2|jesse|4|elain|5|wodi|6|yingsui|7|zhangyang|8|zaixiangpan|9|?|10|老男孩|/data/backup/$(date+%F).特别提示:有关MyISAM和InnoDB引擎的差别和在工作中如何选择,在前面的文章已经详细讲解过了,这里就不在讲了。InnoDB引擎备份InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项-single-transacti

19、on进行备份:mysqldump-A-F-B-single-transaction|gzip/data/backup/$(date+%F).特别注意:1)-single-transaction仅适用于InnoDB引擎。生产环境mysqldump备份命令mysqldumpurootpS/data/3306/default-character-set=gbksingle-transactionFBoldboy|gzip/server/backup/mysql_$(date+%F).:注-F:刷新bin-log参数,数据库备份完以后,会刷新bin-log增量备份:更新bin-log:mysqladm

20、inurootpS/data/3306/flush-logs如生成文件把生成的最新文件,CP到/var/backup/把二进制的日志生成sql语句:mysqlbinlog如果有多个库,我们应该用-d来指定恢复单个库mysqlbinlogdoldboy(当然对于库也要分库备,否则恢复还是麻烦)还原数据:先还原全备,再还原增备先还原全备:mysqlurootp还原增备:mysqlurootpshowvariableslikemax_connections;+|Variable_name|Value|+|max_connections|151|+1rowinsetsec)服务器响应的最大连接数:15

21、2mysqlshowglobalstatuslikeMax_used_connections;+|Variable_name|Value|+|Max_used_connections|152|+1rowinsetsec)查看服务器key_buffer_size数值:4mysqlshowvariableslikekey_buffer_size;+|Variable_name|Value|+|key_buffer_size|4|+1rowinsetsec)查看服务器现在使用的key_buffer_size使用情况:key_read_requests:4key-reads:830525mysqlsh

22、owglobalstatuslikekey_read%;+|Variable_name|Value|+|Key_read_requests|4|Key_reads|830525|+2rowsinsetsec)计算索引未命中的概率:key_cache_miss_rate=key_reads/key_read_requests*100%达到%以下(即每1000个请求有一个直接读硬盘)以下都很好,如果key_cache_miss_rae在%以下的话,则说明key_buffer_size分配得过多,可以适当减少。Key_blocks_unused表示未使用的缓存簇数,Key_blocks_used表示

23、曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过度索引,把缓存占满了。比较理想的设置是:key_blocks_used/(key_blocks_unused+key_blocks_used)*100%=80%mysqlshowglobalstatuslikekey_blocks_u%;+|Variable_name|Value|+|Key_blocks_unused|317003|Key_blocks_used|6439|+2rowsinsetsec)临时表:当执行语句时,关于已经被创造了的隐含临时表的数量,我们可以用如下命

24、令查询其具体情况:mysqlshowglobalstatuslikecreated_tmp%;+|Variable_name|Value|+|Created_tmp_disk_tables|343326|Created_tmp_files|172|Created_tmp_tables|675795|+3rowsinsetsec)每次创建临时表时,created_tmp_tables都会增加,如果是在磁盘上创建临时表,created_tmp_disk_tables也会增加。created_tem_files表示MYSQL服务创建的临时文件数,比较理想的配置是:Created_Tmp_disk_t

25、ables/Created_tmp_tables*100%showvariableswhereVariable_namein(tmp_table_size,max_heap_table_size);+|Variable_name|Value|+|max_heap_table_size|tmp_table_size|+2rowsinsetsec)只有16M以下的临时表才能全部放在内存中,超过的就会用到硬盘临时表。打开表的情况Open_tables表示打开表的数量,Opend_tables表示打开过的表数量,我们可以用如下命令查看其具体情况:mysqlshowglobalstatuslikeope

26、n%tables%;+|Variable_name|Value|+|Open_tables|512|Opened_tables|234200|+2rowsinsetsec)如果Opened_tables数量过大,说明配置中tables_caceh(MYSQL之后这个值叫做table_open_cache)的值可能太小。我们查询一下服务器table_cache值:mysqlshowvariablesliketable_open_cache;+|Variable_name|Value|+|table_open_cache|614|+1rowinsetsec)比较合适的值为:Open_tables/

27、Opened_tables*100%=85%Open_tables/table_open_cache*100%showglobalstatuslikeThread%;+|Variable_name|Value|+|Threads_cached|7|Threads_connected|2|Threads_created|2124|Threads_running|2|+4rowsinsetsec)如果发现Threads_created的值过大的话,表明MYSQL服务器一直在创建线程,这也是比较耗费资源的,可以适当增大配置文件中的thread_cache_size的值。查询服务器thread_cah

28、ce_size配置,如下所示:mysqlshowvariableslikethread_cache_size;+|Variable_name|Value|+|thread_cache_size|8|+1rowinsetsec)查询缓存它涉及的主要有两个参数,query_cache_size是设置MYSQL的Query_Cache大小,query_cache_size是设置使用查询缓存的类型,我们可以用如下命令查看其具体情况:mysqlshowglobalstatuslikeqcache%;+|Variable_name|Value|+|Qcache_free_blocks|130|Qcache

29、_free_memory|Qcache_hits|Qcache_inserts|2391041|Qcache_lowmem_prunes|0|Qcache_not_cached|671718|Qcache_queries_in_cache|676|Qcache_total_blocks|1798|+8rowsinsetsec)我们再查询一下服务器上关于query-cache的配置命令如下:mysqlshowvariableslikequery_cache%;+|Variable_name|Value|+|query_cache_limit|1048576|query_cache_min_res

30、_unit|4096|query_cache_size|query_cache_type|ON|query_cache_wlock_invalidate|OFF|+5rowsinsetsec)排序使用情况它表示系统中对数据进行排序时所使用的Buffer,我们可以用如下命令查看:mysqlshowglobalstatuslikesort%;+|Variable_name|Value|+|Sort_merge_passes|84|Sort_range|393425|Sort_rows|2|Sort_scan|324383|+4rowsinsetsec)Sort_merge_passes包括如下步骤:MYSQL首先会尝试在内存中做排序,使用的内存大小由系统变量sort_buffer_size来决定,如果它不够大则把所有的记录都读到内存中,而MYSQl则会把每次在内存中排序的结果存到临时文件中,等MYSQL找到所有记录之后,再把临时文件中的记录做一次排序。这次再排序就会增加sort_merge_passes。实际上,MYSQL会用另一个临时文件来存储再次排序的结果,所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论