从苦逼到牛逼,详解Linux运维工程师的打怪升级之路(2)
时间:2018-08-17 08:34 来源:网络整理 作者:墨客科技 点击:次
这个很重要,肯定要懂的,但到了公司就不会让你去弄,因为新手基本不让你碰,集群工具有很多,最好学是LVS,这是必学,最好也学Nginx集群、反向代理,还有热备,这个就更多工具能实现了,像我公司是自己开发热备工具的。MySQL热备也要学,就是主从复制,这个要学懂整个流程一点也不容易,只照着做根本没意思。 MySQL主从同步,双主同步,如果服务器意外挂机,不同步怎么办 MySQL高性能压力测试(总结了好久) Nginx 缓存配置及报错解决 10.数据备份工具有很多,但至少要把RAID的原理弄懂,特别是企业最常用的1+0或0+1,自己做实验也要弄出来,备份工具有很多,如tar、dump,最好多了解一下。 学会以上10点,应该可以入门了,有些技术会比较难学,例如Apache和Nginx中还有些很重要的技术,如系统调优、服务优化、程序优化,这些在没接触工作前很难学习到的,所以先把这10点学了吧,估计要学熟至少3个月不止,脚本部分会交很吃力了,我建议是先学熟shell,等工作后再学另一门脚本语言,这样会比较好。 以上就是踏入linux运维工程师需要掌握的工具,还有很多工具要掌握的,但在学习环境中是很难学到,最后我再提醒一下,这里所指的工具相当于技能,而不是像Windows或Ubuntu的图形化工具,还有学linux就别装图形界面,这样虚拟机就不用吃太多内存,而且绝对不建议在真机上装Linux,根本达不到学习效果。 中级篇这部分来自我自己的面试经历和面试别人的经历总结。先附上运维思路拓扑图: 有些人认为,其实运维就是部署某个软件,设置些基础功能,就算会运维了。 举个例子:安装LAMP,LNMP,就感觉部署方法我都掌握了。其实网上大多数都有一键安装脚本啥的根本没有啥技术含量,在面试官眼里,这些都不是你的亮点。基本到了公司一般环境架构都是部署好的,很少需要你去变动环境架构。就算你安装好 LNMP 架构你熟悉里面的原理吗?熟悉 Nginx 优化吗?熟悉 MySQL 优化吗? 再举个例子:我面试遇到的问题,面试官问你既然熟悉 LNMP 架构,那么 Nginx 反向代理的作用。 你应该不是说出懂这个软件和配置,你尽可能的说怎么优化,怎么深入提高网站性能。 使用反向代理可以理解为7层应用层的负载均衡,使用负载均衡之后可以非常便捷的横向扩展服务器集群,实现集群整体并发能力、抗压能力的提高。 通常反向代理服务器会带有本地 Cache 功能,通过静态资源的 Cache,有效的减少后端服务器所承载的压力,从而提高性能。 下面说说运维在工作中需要掌握的核心技术。注意,这是在工作中掌握的,在学习中很难掌握。 1.第一条最主要的排错分析部分程序不能运行或没有按预想结果运行的原因,对程序运行跟踪,查看系统调用的过程。 较深入的系统瓶颈点分析。 查看剩余内存: ree -m #-/+ buffers/cache: 6458 1649 #6458M为真实使用内存 1649M为真实剩余内存(剩余内存+缓存+缓冲器) #linux会利用所有的剩余内存作为缓存,所以要保证linux运行速度,就需要保证内存的缓存大小 系统信息: 硬件信息: 使用分析系统分析web日志(如逆火软件) 分析系统性能瓶颈点(IO/Memory/CPU,常用工具,top命令中shift组合键的特殊用Sar/vmstat/iostat/ipcs) 日志管理常用命令: 2.优化优化可以说是运维最吃香的技能,基本会优化的运维普遍工资很高,而且优化是要承担风险的,并不是网上搜个文章改一下配置文件或者参数就叫优化了,这样很容易造成宕机。 优化是根据实际的现场环境硬件各个参数进行部分优化,提高软件性能和网站性能。这个我只能讲半知半解,当时优化MySQL和Tomcat参数也是根据网上文章和官网文档查找参数在虚拟机上测试然后查看性能。 成本优化,性能优化。这里我给出 Tomcat 优化JVM参数(做过相应测试才放到现场环境的):(记住无监控不调优) -标准参数,所有jvm都应该支持 -X 非标,每个jvm实现都不同 -XX 不稳定参数,下一版本可能会取消 serial collector 单线程 序列化 parallel collector 多线程 启动 jvisualvm.exe 监控 dump 内存溢出 -Xms:初始堆大小 -Xmx:最大堆大小 -Xss:线程栈大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值,如3, 标示年轻代:年老代比值1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中的eden区与2个Survivor区的比值。 -XX:MaxPermSize=n:设置持久代大小 收集器设置 -XX:+UseSerialGC:设置串行收集器 -XX:+UseParallelGC:设置并行收集器 -XX:+UseConcMarkSweepGC:设置并发收集器 回收统计信息 -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:filename Tocmat 优化,确认有几个JVM虚拟机 set JAVA_OPTS= -Xms4g -Xmx4g -Xss512k -XX:+AggressiveOpts 进攻型的优化选项,所有优化项都加上 -XX:+UseBiasedLocking 优化锁,基本都要选上,偏执锁 -XX:permSize=64m 原始区大小,最大300m 类多就设置大一点 -XX:MaxPermSize=300m -XX:+DisableExplicitGC //System.gc() 不显示调用gc -XX:+UseConcMarkSweepGC 使用cms缩短相应时间,并发收集,低停顿 -XX:+UseParNewGC 并行收集新生代的垃圾 -XX:+CMSParallelRemarkEnabled 在使用UseParNewGC的情况下,尽量减少mark的时间 -XX:+UseCMSCompactAtFullCollection 使用并发收集器时,开启对年老代的压缩,使碎片减少 -XX:LargePageSizelnBytes=128m 内存分页大小对性能的提升 -XX:+UseFastAccessorMethods get/set方法转成本地代码 -Djava awt headless=true 修复linux下tomcat处理图标时可能产生的bug 内存调优: Tomcat 前任何参数没参加大概每秒605,调优后大概每秒435,接近3倍的结果。 3.开发技能 (责任编辑:admin) |