1. 程式人生 > >運維大牛:Linux 運維工程師如何走上升級之路?

運維大牛:Linux 運維工程師如何走上升級之路?

640?

積累經驗篇

做運維也快4年多了,就像遊戲打怪升級,升級後知識體系和運維體系也相對變化挺大,學習了很多新的知識點。

運維工程師 是從一個呆逼進化為苦逼再成長為牛逼的過程,前提在於你要能忍能幹能拼,還要具有敏銳的嗅覺感知前方潮流變化。如:今年大資料,人工智慧比較火。。。(相對錶示就是 python 比較火) 


前面也講了運維基礎篇,發現對很多人收益挺大,接下來也寫下關於這4年多的運維實踐經驗,從事了2年多遊戲運維,1年多安全運維,1年大資料運維,相關行業資訊不能算非常精通嗎,但是熟悉和熟練還是相對可以的。

初級篇


拓撲詳見:

640?wx_fmt=png

中級篇

從我後面面試經歷和麵試別人的經歷。有些人認為,其實運維就是部署某個軟體,設定些基礎功能,就算會運維了。

舉個例子:安裝LAMP,LNMP,就感覺部署方法我都掌握了。其實網上大多數都有一鍵安裝指令碼啥的根本沒有啥技術含量,在面試官眼裡,這些都不是你的亮點。基本到了公司一般環境架構都是部署好的,很少需要你去變動環境架構。就算你安裝好 LNMP 架構你熟悉裡面的原理嗎,熟悉 Nginx 優化嗎,熟悉 MySQL 優化嗎?

再舉個例子:我面試遇到的問題,面試官問你既然熟悉 LNMP 架構,那麼 Nginx 反向代理的作用。

你應該不是說出懂這個軟體和配置,你儘可能的說怎麼優化,怎麼深入提高網站效能。

1、使用反向代理可以理解為7層應用層的負載均衡,使用負載均衡之後可以非常便捷的橫向擴充套件伺服器叢集,實現叢集整體併發能力、抗壓能力的提高。

2、通常反向代理伺服器會帶有本地 Cache 功能,通過靜態資源的 Cache,有效的減少後端伺服器所承載的壓力,從而提高效能。

下面說說運維在工作中需要掌握的核心技術

注意,這是在工作中掌握的,在學習中很難掌握。

1、第一條是最主要的排錯
  • 分析部分程式不能執行或沒有按預想結果執行的原因,對程式執行跟蹤,檢視系統呼叫的過程。 

  • 較深入的系統瓶頸點分析。

檢視剩餘記憶體:

640?wx_fmt=png

系統資訊:

640?wx_fmt=png

硬體資訊:

640?wx_fmt=png

  • 使用分析系統分析web日誌。(如逆火軟體,)

  • 分析系統性能瓶頸點(IO/memory/cpu,常用工具,top命令中shift組合鍵的特殊用Sar/vmstat/iostat/ipcs)

日誌管理常用命令:

640?wx_fmt=png

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

記憶體調優:

640?wx_fmt=png

tomcat 前任何引數沒參加大概每秒605  調優後大概每秒435 接近3倍的結果

640?wx_fmt=png

3、開發技能

優選 shell 和 python,現在 shell 無法滿足你的需求或者效率很低,那麼選擇自動化 python 是最好的選擇。現在普遍招聘需求要求,會寫 shell 或者 python,perl 指令碼,個人選擇還是選 python。

python 這門語言上手比較快,容易理解。

python 在伺服器管理工具上非常豐富,配置管理(saltstack) 批量執行( fabric, saltstack) 監控(Zenoss, nagios 外掛) 虛擬化管理( python-libvirt) 程序管理 (supervisor) 雲端計算(openstack) ...... 還有大部分系統 C 庫都有 python 繫結。

對於流程確定的事情,最終一定是納入系統管理的體系,寫成程式,成為系統的一部分。而不是無法複用遊離與整體的各種指令碼。

隨著雲端計算時代的來臨,中小型公司,不需要運維了。大型公司,沒有工程開發能力的運維,是沒有競爭力的。

最重要的學好 python 可以漲工資,可以漲工資,可以漲工資 。(重要的事情說三遍。)

目前本人也是在學 python,正在把以前 shell 指令碼的例項轉換成 python 指令碼。

python筆記: python例項手冊(一直在看)

下載連結: http://down.51cto.com/data/2329173

4、意識篇

1) 安全意識:

運維人員的許可權很大,所以一定要保證帳號/私鑰的安全。 

  • 最好使用加密工具儲存。比如truecrypt,lpassword 

  • 基於本地儲存。切勿用網盤,也不建議用lastpass等 

  • ssh私鑰新增密碼

2) 磨刀意識:

關於任何操作配置,最好先搞明白操作或配置的原理,然後再去操作。應一句話叫做“磨刀不誤砍柴功”,而且對於類似的操作可以舉一反三。

3) 計劃意識:

複雜的變更操作比如多臺主機以及牽涉到san儲存,最好先作 操作計劃,寫計劃文件,詳細緻每條命令,然後請高手幫忙稽核。 這樣能最大程度使整個操作過程安全。如果是重要的客戶業務系統,操作最好有回退方案,而一旦變更失敗,客戶可以在短時間內將業務回退。

4) 記錄分享意識:

遇到自己認為較特殊的案例時,記得要寫 案例過程及分析的文件。也方便自己以後翻看,或者和其他兄弟分享,作知識的傳播以便於大家以後都能少走彎路。

5) 監控意識:

運維來說,監控是非常重要的,監控是發現系統各種異常的眼睛,所以運維應該和監控緊密配合。

6) 業務意識:

儘量瞭解維護的各主機上業務型別,以及各主機業務之間的關聯性。因為任何維護工作都是為主機能提供業務服務的,當某業務中斷,能最快的知道與此業務相關的主機群,從而縮小故障排查範圍,最快定位故障。

附上運維思路拓撲圖:

640?wx_fmt=png

可以看看: 安全運維理念(半神半仙亦民工)

意識是很重要,並不是你技術很牛,學的技術很多很熟,就不代表你不需要運維意識,其實領導很看重運維意識的,例如有沒有做好備份,許可權分配問題,平臺測試情況,故障響應時間等,這些都是意識,而不是你學了很多技術自認大牛了,平臺發現故障你又沒什麼大不子,以為很簡單的問題喜歡處理就處理,不需要向其它部門反饋等,領導不是看你的技術如何,而是看你的運維意識如何,你沒運維意識,技術再牛也沒用,只會讓其它部門的人跟你不協調。

要知道做IT這行是苦B的,需要無盡的學習,不學習只會被淘汰,不想被年輕的淘汰,就只能不斷增值自己,不然不是你工資無法提升,而是你無法再從事這行。

這個世界,在悄悄懲罰不改變的人...

作者:浩子

來源:http://chenhao6.blog.51cto.com/6228054/1949673

雲端計算免費課程火熱搶先中,5天運維課程免費聽,點選文末“閱讀原文”即可免費聽課當然也有其他IT課程免費聽(Java、前端、大資料、Python、設計、C++、嵌入式、網路營銷),後臺回覆“姓名+聯絡方式+所在+課程名稱”也可申請其他免費課程,火速搶先~~~~

PS:記得查收小編送你的免費大禮包呦~

640?640?wx_fmt=jpeg

▼▼點選【閱讀原文】,免費聽5天Linux運維乾貨分享課,火熱開講中,速來搶!

相關推薦

Linux 工程師如何升級

積累經驗篇做運維也快4年多了,就像遊戲打怪升級,升級後知識體系和運維體系也相對變化挺大,學習了很

難題Linux 容器和虛擬機器應該怎麼選?

馬哥Linux運維 來自:開源中國社群 編譯 連結:www.oschina.net/news/90833/linux-containers-vs-virtual-machines 原文:www.datamation.com/open-source/linux-containers-vs-vir

ASP.NET Core 實戰Linux 小白的 .NET Core 部署

 一、前言    最近一段時間自己主要的學習計劃還是按照畢業後設定的計劃,自己一步步的搭建一個前後端分離的 ASP.NET Core 專案,目前也還在繼續學習 Vue 中,雖然中間斷了很長時間,好歹還是堅持下來了,嗯,看了看時間,原本決定的半年完成肯定是完不成了。這兩週重新拾起來學習 Vue,文章也在慢慢的

編程算法助程序員高手

一個 recursive 樸素 -c 移動 最大似然估計 耗時 題解 合並排序 算法一:快速排序算法 快速排序是由東尼·霍爾所發展的一種排序算法。在平均狀況下,排序 n 個項目要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況並不常見。事實上,快速

程式設計演算法助你高手

演算法一:快速排序演算法 快速排序是由東尼·霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要 Ο(n log n)次比較。在最壞狀況下則需要 Ο(n2)次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他 Ο(n log n) 演算法更快,因為它的內部迴圈

程式設計演算法助程式設計師高手

演算法一:快速排序演算法 演算法二:堆排序演算法 演算法三:歸併排序 演算法四:二分查詢演算法 演算法五:BFPRT(線性查詢演算法) 演算法六:DFS(深度優先搜尋) 演算法七:BFS(廣度優先搜尋) 演算法八:Dijkstra演算法 演算法九:動態規劃演算法 演算法十:

從苦逼到逼,詳解Linux工程師的打怪升級

locking syn 主從復制 自動 緩沖器 agen 知識 ssa del 做運維也快四年多了,就像遊戲打怪升級,升級後知識體系和運維體系也相對變化挺大,學習了很多新的知識點。 運維工程師是從一個呆逼進化為苦逼再成長為牛逼的過程,前提在於你要能忍能幹能拼,還要具有敏銳

經驗之談Linux工程師所需技能

運維經驗 linux 以自己有限的經驗說說作為一名合格的Linux運維工程師需要掌握的東西:1、選擇版本現在發行版本已經讓人有點眼花繚亂了。但是架構和底層的東西都是一樣的,只是各自會有一些自己特有的工具。LINUX:CentOS、Red Hat、Oracle Linux、Debian、Ubuntu、S

老男孩Linux人員在企業裏月薪多少才不落後?

老男孩教育 linux運維 職業發展 職業規劃 有一段沒寫文章了,最近一直在專註於老男孩教育的戰略規劃以及寫書。這兩天有老男孩畢業班學員微信給我留言,和我聊起來2017年Linux運維行業的變化,企業就業門檻的提高,同時建議老男孩教育開A、B班,提升更大的學員就業競爭力,於是有了這篇文章,該同

企業崗位面試Linux伺服器如何防止中木馬?

(一)解答戰略 去企業面試時是有多位競爭者的,因此要注意答題的維度和高度,一定要直接秒殺競爭者,搞定高薪offer。 (二)解答戰術 因為Linux下的木馬常常是惡意者通過Web的上傳目錄的方式來上傳木馬到Linux伺服器的,可根據從惡意者訪問網站開始–>Linux系統–>HTTP服務

雲端計算Linux核心管理命令詳解

雲端計算:Linux運維核心管理命令詳解 想做好運維工作,人先要學會勤快; 居安而思危,勤記而補拙,方可不斷提高; 別人資料不論你用著再如何爽那也是別人的; 自己總結東西是你自身特有的一種思想與理念的展現; 精髓不是看出來的,精髓是記出來的; 請同學們在學習

老男孩Linux工程師崗位前景及學習路線

Linux運維工程師崗位前景及學習路線 目錄: 講師:老男孩自我介紹 1.1 什麼是Linux? 大家日常使用電腦聽歌、打遊戲娛樂或處理日常工作時,接觸到最

老鳥談Linux工程師發展路線

linux運維發展常見的就是下面兩條路線: 第一條:運維應用–>系統架構–>運維開發–>系統開發 第二條:運維應用–>應用dba–>架構dba–>開發DBA 下面詳細每個階段的職位說明(以北上廣為例): 01. 運維應用級別: 這個階段就是玩別人的軟體,例如:li

Linux系統面試題,Linux經典面試題講解

就是 手動安裝 soft %d stat boot art grep asc 這裏給大家整理了一些Linux系統運維相關的面試題,有些問題沒有標準答案,希望要去參加Linux運維面試的朋友,可以先思考下這些問題。 1、Linux如何掛載windows下的共享目錄? moun

教老婆學Linux(二)Linux常用命令指南【

目錄 教老婆學Linux(二)Linux常用命令指南【上】 一、概述 二、常用命令 教老婆學Linux(二)Linux常用命令指南【上】 作者:姚毛毛的部落格 tips:文

自學運第一篇Linux虛擬機基礎優化

linux虛擬機 基礎優化Linux虛擬機基礎優化1.系統環境查看命令cat /etc/redhat-release uname -runame -m說明:系統環境CentOS release 6.5 (Final) 2.6.32-431.el6.x86_642.關閉SELinux功能命令cat /etc/

聽張老師講工程師的進階

evo 技術 緩存 進階之路 架構 lvm 工程師 很難 amp 一、初級運維工程師(監控工程師),技術支持,掌握zabbix,3分鐘/5分/15分的故障處理時間。應急時間內搞不定,趕緊報告。(成長時間大概1~2年)二、中級運維工程師(應用運維),掌握nginx,hapro

不迷茫,騰訊工程師轉型升級

作者:李光 (騰訊運營規劃高階工程師與產品經理) 導言:在工作中你是否遇到過困惑和迷茫的時期,總是有解決不完的問題,救不完的火,總在反覆單調的做著同樣的事情,擔心自己會被時代給淹沒,會被時代給拋棄,運維這樣的工作是不是也能轉型升級?下面我們一起看看騰訊應用運維工程師的產品經理轉型升級之路吧!其實~

高階工程師的打怪升級

運維工程師在前期是一個很苦逼的工作,在這期間可能幹著修電腦、掐網線、搬機器的活,顯得沒地位!時間也很碎片化,各種零碎的瑣事圍繞著你,很難體現個人價值,漸漸的對行業很迷茫,覺得沒什麼發展前途。 這些枯燥無味工作的確會使人匱乏,從技術層面講這些其實都是基本功,對後期的運維工作會

知乎入行十年,我如何看待IT行業?

大學畢業 在那 it培訓 在北京 基本上 但是 專業知識 技術 -- 一個行業的發展,會改變很多人的命運、生活。選擇好即將進入的行業,以及通向行業的機構入口,都是十分重要的。近日,一知乎大牛分享了他近10年的IT從業經歷,引起了網友的大範圍轉發和討論。真實的經歷,樸實的語言