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

下载本文档

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

文档简介

1、Linux运维工程师工作手册释放内存:syncecho 3 /proc/sys/vm/drop_cachesLinux查看Dell服务器型号命令:dmidecode | grep Product Name查看系统负载:cat /proc/loadavg0.00.000.001/28310904283是代表意思是:前三个是系统负载,1/283中,1代表此时运行队伍中的进程个数,而此时的进程总数10904到此为止,最后创建的一个进程ID。系统装好后,要做的事如下:关闭防火墙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 中,在后面,添加自己的主机名创建0-9 a-z目录for i in seq 0 9 a.z;do mkdir -p$i;done :测试硬盘性能工具:ioz one监视服务器每少上下文切换数次工具:Nmon(很不错的性能监视工具)#占用内存大小前10的进程-size | head -10-pcpu | head -10ps -eo comm,size -sort#占用cpu使用前10的进程ps -eo

3、 comm,pcpu -sort一、Apache服务优化:21. 配置cronolog 进行日志轮询 22. 错误页面优雅显示23. mod_deflate 文件压缩功能34. mod_expires 缓存功能 45. 更改apache的默认用户56. worker模式,提升并发数(可以达到2000-5000)57. 屏蔽apache版本等敏感信息 68. apache目录文件权限设置(root,目录755,文件644)69. 开启httpd-mpm.conf增加连接数610. apache防盗链功能811. 禁止目录Index 812. 禁止用户覆盖(重载) 813. 关闭 CGI 914.

4、 避免使用.htaccess文件(分布式配置文件) 915. apache的安全模块916. 正确途径取得源代码,勤打apache补丁 1017. apache日志授予root 700权限 1018. 系统内核参数优化1019. 禁止PHP解析指定站点的目录1020. 使用tmpfs文件系统替代频繁访问的目录1121尽可能减少 HTTP请求数 1122使用CDN故网站加速12查看你的服务器网络连接状态netstat -n | awk tcp/ +S$NF END for(a in S) print a, SaI CLOSED无连接是活动的或正在进行 LISTEN:服务器在等待进入呼叫 SYN_

5、RECV 个连接请求已经到达,等待确认 SYN_SENT应用已经开始,打开一个连接 ESTABLISHED正常数据传输状态 FIN_WAIT1 :应用说它已经完成 FIN_WAIT2:另一边已同意释放 ITMED_WAIT等待所有分组死掉 CLOSING两边同时尝试关闭 TIME_WAIT另一边已初始化一个释放 LAST_ACK等待所有分组死掉ESTABLISHE啲值其实也是当前的并发数, 这个可重点关注下;另外,可关注下TIMEWAIT 这项的数值。Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三 万,服务器很容易被拖死。通过修改 Linux内核参数,

6、可以减少 Squid服务器的TIME_WAIT 套接字数量。#查看系统本地可用端口极限值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备份单个数据库数据库mysqldump -u 用户 p密码-default-character-set=lati n1名 备份文件名(数据库默认编码是latin1)普通备

7、份:mysqldump-uroot-poldboy123oldboy /server/bak/oldboy.sql压缩备份:mysqldump-uroot-poldboy123oldboy设置字符集备份:mysqldump-uroot-poldboy123oldboy-default-character-set=gbk|gzip 执行结果:rootoldboy#mkdir/server/bak-prootoldboy#mysqldump -uroot-poldboy123oldboy /server/babackup/ bak/rootoldboy#mysqldump -uroot-poldb

8、oy123oldboy /server/bak/oldboy.sqlrootoldboy#mysqldump -uroot-poldboy123oldboy|gzip /server/rootoldboy#ls -l/server/bak/total8-rw-r-r-1rootroot1991 Apr9 00:51oldboy.sql-rw-r-r-1rootroot801 Apr900:514.6 mysqldump 在做啥?mysqldump实际上就是把数据从 mysql库里以逻辑的sql语句的形式导出。备份的数据过滤掉注释:rootoldboy # egrep -v*卜-|人$/serv

9、er/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 INTO testVALUES (1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,y in gsui),(7,zha ngya ng),

10、(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) NOT NULL,PRIMARY KEY (id)ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;LOCK TABL

11、ES 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参数是关键,表示接多个库。探(生产环境常用)-B, -databasesTo dump several databases. Note the diff erenee in usage;In this case no tables

12、are gi ven. Allname arguments areregardedas database names.USEdb_n ame;will beUSE db_name和-B后的数据库列全in cludedinthe output.参数说明:该参数用于导出若干个数据库,在备份结果中会加入CREATE DATABASE db_name;-B后的参数都将被作为数据库名。该参数比较常用。当时同-A参数。请看-A的说明。4.8备份单个表mysqldump -u用户名 -p数据库名表名 备份的文件名mysqldump -uroot-p oldboy testoldboy_oldboy.sql执

13、行结果:rootoldboy#mysqldump -uroot-poldboy123oldboytest-default-character-set=gbk/server/bak/oldboy-gbk-s in gle.sql提示:无-B参数,库oldboy 后面就是test表了。4.9备份多个表rootoldboy#mysqldump -uroot-poldboy123oldboytestett -default-character-set=gbk /server/bak/oldboy-gbk-muti-tables.sqlrootoldboy#egrep -v*|-|A$/server/b

14、ak/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 testWRITE;INSERT INTO testVALUES (1,zhaoyue),(2,jesse),(4,elain),(5,wodi),(6,yi ngsui),(7,

15、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备份数据库结构(不包含数据)mysqldump -uroot -d -poldboy oldboy oldboy oldboy_oldboy.sql-d 只备份表结构rootoldb

16、oy # 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 EXISTS test;CREATE TABLE test (idint(4)NOT NULL AUTO_INCREMENT,name char(20) NOT NULL,PR

17、IMARY KEY (id)ENGINE=MyISAM AUTO_INCREMENT=12DEFAULT CHARSET=gbk;更多用法可以执行 mysqldump - help 查询。有关 mysql和mysqldump同学们要详细总结。5恢复数据库5.1 source命令恢复进入mysql数据库控制台,mysql -u root -pmysql use 数据库然后使用source命令,后面参数为 脚本文件(如这里用到的.sql)mysql sourceoldboy_db.sql#这个文件是系统路径。rootoldboybak# mysql-uroot-poldboy123Welcome

18、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.00 sec) mysql drop tables test;Query OK, 0 rows affected (0.01 sec)mysql system ls .o

19、ldboy-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.00 sec)(0.00 sec)oldboy.sql就是备份后查看乱+| id |n ame|+| 1| zhaoyue| 2| jesse|4| elain|5| wo

20、di| 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 | n ame|+|1| zhaoyue|2 |jesse|4 |elain|5| wodi|6| yin gsui|7 |zhangyang|8 |zaixia ngpa n|9 |?| 10 |

21、老男孩|=仍然是正常的,就是说备份不加字符集导出,将来恢 复不会影响恢复的数据,但是备份后查看文件会乱码。+ 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;+| id | n ame|+|1| zhaoyue|2| jesseI4| elainI5| wodiI6| yin gsuiI7|zhangyangI8|zaixia ngpa n|9| ?I

22、10 |老男孩I/data/backup/$(date +%F).tar gz特别提示:有关MylSAM和InnoDB引擎的差别和在工作中如何选择,在前面的文章已经详细 讲解过了,这里就不在讲了。 InnoDB 引擎备份InnoDB引擎为行锁,因此,备份时可以不对数据库加锁的操作,可以加选项-sin gle-tra nsacti on进行备份:mysqldump -A -F -B-s in gle-tra nsact ion|gzip /data/backup/$(date +%F).tar.gz特别注意:1)-single-transaction仅适用于 InnoDB 引擎。生

23、产环境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参数,数据库备份完以后,会刷新bin-log增量备份:更新 bin-log:mysqladmin - uroot - p - S /data/3306/mysql.sock flush-logs如生成 mysql-bin.00000

24、4文件把生成的最新 mysql-bin.000004文件,CP到/var/backup/把二进制的日志生成sql语句:mysqlbi nlogmysql-bi n.000004bi n04.sql如果有多个库,我们应该用-d来指定恢复单个库mysqlbinlogmysql-bin.000004- d oldboybinlog.sql(当然对于库也要分库备,否则恢复还是麻烦)还原数据:先还原全备,再还原增备先还原全备: mysql - u root - p mysql file .sql还原增备:mysql - u root - p show variableslikemax_connectio

25、ns;+-+|Variable_ name| Value+-+|max_c onnections|151+-+1 row in set (0.00 sec)服务器响应的最大连接数:152mysql show global statuslikeMax_used_c onn ectio ns:+| Value | Variable_ name+-+-+IMax_used_c onn ecti onsI 152I+-+-+1row in set(0.00sec)查看服务器key_buffer_size数值:402653184mysql show variableslikekey_buffer_siz

26、e+-+IVariable_ nameIValueI+-+Ikey_buffer_sizeI402653184 I+-+1row in set(0.00sec)查看服务器现在使用的key_buffer_size使用情况:key_read_requests:879600044key-reads:830525mysql show globalstatus likekey_read%;+| Variable, name| Value+| Key_read_requests|879600044| Key_reads|830525|+2 rows in set (0.00 sec)计算索引未命中的概率:

27、key_cache_miss_ratekey_reads / key_read_requests *100%达到0.1%以下(即每1000个请求有一个直接读硬盘)以下都很好,如果key_cache_miss_rae在0.01%以下的话,则说明 key_buffer_size分配得过多,可以适当减少。Key_blocks_unused 表示未使用的缓存簇数,Key_blocks_used 表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size ,要么就是过度索引,把缓存占满了。比较理想的设置是:key_blocks_used /key_bl

28、ocks_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)临时表:当执行语句时,关于已经被创造了的隐含临时表的数量,我们可以用如下命令查询其具体情况:mysql show globalstatuslike created_tmp%;+| Variable_ name+| Created_tmp_disk_

29、tables| Created_tmp_files| Created_tmp_tables+| Value |343326|I 172|675795|3 rows in set (0.00 sec)每次创建临时表时,created_tmp_tables都会增加,如果是在磁盘上创建临时表,created_tmp_disk_tables也会增加。created_tem_files 表示MYSQ服务创建的临时文件数,比较理想的配置是:Created_Tmp_disk_tables / Created_tmp_tables *100% show variableswhere Variable name

30、in (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以下的临时表才能全部放在内存中,超过的就会用到硬盘临时表。打开表的情况Open_tables表示打开表的数量,Opend_tables表示打开过的表数量,我们可以用如下命令查看其具体情况:mysql show globalstatuslikeope n%tables%;+| Variable_ nameVa

31、lue+| Open _tables|512|Open ed_tables234200+2 rows in set(0.00 sec)如果 Opened_tables数量过大,说明配置中tables_caceh(MYSQL 5.1.3之后这个值叫做table_open_cache)的值可能太小。我们查询一下服务器table_cache 值:mysql show variablesliketable_ope n_cache:+| Variable_ name| Value |+|table_ope n_cache614+1 row in set (0.00sec)比较合适的值为:Open_tab

32、les/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.00sec)如果发现 Threads created的值过大的话,表明MYSQL!务器一直在创建线程, 这也是比较耗费资源的,可以适当增大配置文件中的thread cache size 的值。查询服务

33、器thread_cahce_size 配己置,如下所示:mysql show variableslikethread_cache_size:+| Variable_ nameValue |+| thread_cache_size+1 row in set (0.00sec)它涉及的主要有两个参数,查询缓存query_cache_size 是设置 MYSQ的 Query_Cache 大小,query_cache_size是设置使用查询缓存的类型,我们可以用如下命令查看其具体情况:mysql show global statuslikeqcache%;+| Variable, name| Valu

34、e+| 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_blocks11798|+8 rows in set (0.00 sec)我们再查询一下服务器上关于query-cache的配置命令如下:mysql show variableslikequery_

35、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)排序使用情况它表示系统中对数据进行排序时所使用的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首先会尝试在内存中做排序,使用的内存大小由 系统变量sort_buffer_size来决定,

温馨提示

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

评论

0/150

提交评论