知識と運用・保守システムをアップグレードした後、ゲームDaguaiのアップグレードを行うと運用・保守は、新しい多くの知識を学んで、比較的大きな変化です。運用・保守エンジニアは苦い再成長の速さのハードウェアプロセスに費やした力からの押圧され、前提はあなたが戦うことができるようすることができる可能性があることですが、また、トレンドの変化の前に匂い知覚の鋭い感覚を持ちます。以下のような:今年のデータ、人工知能、より多くの火災。。。(Pythonは火災の相対比較を発現しています)
トポロジを参照してください。
中級の記事
私の後ろに他人の経験から、インタビューや取材経験。一部の人々は実際には、操作およびメンテナンスが可能になる場合でも、いくつかの基本的な機能の設定、ソフトウェアの運用・保守を展開することで、だと思います。
たとえば:LAMP、LNMPをインストールし、私は展開の方法をマスターしている感じ。実際には、インターネットのほとんどは、キーのインストールスクリプト漢漢がない技術的な内容を持っているインタビュアーの目には、これらは、あなたのハイライトはありません。同社の一般的な環境への基本的なアーキテクチャが展開されている、あなたはほとんどの環境アーキテクチャを変更する必要がありません。あなたがインストールしている場合でも、
LNMPあなたはnginxの最適化、それに精通しているのMySQLの最適化に精通している、あなたの内部アーキテクチャの原則に精通していますか?
別の例:あなたは建築に精通しているので、私はインタビューに遭遇した問題は、インタビュアーはその後、nginxのリバースプロキシの役割をLNMPを要求します。
あなたは、サイトのパフォーマンスを向上させるためにどのように深い、あなたは可能な限り最適化する方法を言って、このソフトウェアおよび設定を理解して言うべきではありません。
リバースプロキシを使用して1は、ロードバランシングレイヤ7のアプリケーション層として理解することができ、その後、全体のクラスタ同時容量を達成圧縮容量を増加させるために非常に便利なスケールサーバクラスタとすることができるロードバランシングを使用します。
図2は、典型的には、静的リソースによってリバースプロキシサーバ機能ローカルキャッシュ、キャッシュと、効果的に、それによってパフォーマンスを向上させる、バックエンドサーバーを担持圧力を低下させます。
ここではコア技術を習得するために必要な操作および保守作業について話をします
これは職場でのマスターであることに注意してください、学習で習得するのが難しいです。
1、最初の主要なトラブルシューティング
●実行することはできませんプログラムまたは期待される結果として実行する理由はないの解析部は、プログラムがトラックを実行している、システムコールのプロセスを表示します。
●システムのボトルネック箇所のより詳細な分析。
残りのメモリを確認します。
無料-m 6458 1649:/ +バッファ/キャッシュ- #を#6458Mは、実メモリの使用のために真である1649M残りのメモリ(メモリ残量+キャッシュ+バッファ)#linuxがキャッシュとして残りのすべてのメモリを使用するので、必ずLinuxの動作速度を行います、あなたはそのメモリキャッシュのサイズを確認する必要があります
システム情報:
uname -a#ビューのLinuxカーネルのバージョン情報猫の/ proc /バージョン#コア版猫の/ etc /問題#表示システムのバージョン-aする#表示システムのバージョンがインストール-リリースCentOSのlsb_release ロケールの-a#リストのすべての言語ロケール#の現在すべての環境変数の符号化hwclockのの#時間が確認し、誰#ユーザーが現在オンライン#ユーザーwが現在オンラインwhoamiは#現在のユーザー名見るLOGNAME#は、元のユーザー名の表示稼働時間#は、サーバの起動時間表示のsar -n DEV 1 10#ビューカードの速度のトラフィックをdmesgの#ショーブート情報のカーネルモジュールを表示するlsmodの番号
ハードウェア情報:
より多くの/ proc / cpuinfoの#ビューのCPU情報lscpu#表示CPU情報猫の/ proc / cpuinfoの|はgrep名 |カット-f2 -d:| uniqは-c# CPUタイプと論理コアの数を表示するにはLONG_BIT番号のCPU桁のランニングgetconf 猫の/ proc / cpuinfoの|はgrep '物理 ID' |ソート| UNIQ -c# 物理CPUの数猫の/ proc / cpuinfoの|はgrep 'LM' | | WC -l#0、64ビットの結果がより大きいフラグgrepする猫の/ proc / cpuinfoのを|完全仮想化をサポートIntelVT CPUの仮想化PAEサポート準仮想化場合はgrepフラグ#が表示さよりは/ proc / meminfoの#ビューメモリ情報dmidecodeの#は、完全なハードウェア情報を見るgrepの"製品名" #Viewサーバモデル| dmidecodeのをdmidecodeのを| grepを- P -A5 "メモリ\ sの+デバイス " | grepのサイズ| grepの-vレンジ# メモリスロットを表示するために猫の/ proc / mdstatを#は、ソフトRAID情報を見る猫の/ procを/ SCSI / SCSIの#ビューDellのハードRAID情報(IBM、HP )公式の検査ツールを必要とlspciの#ビューのハードウェア情報lspciの|サポート襲撃かどうかを確認するためにはgrepのRAIDの#lspciの-vvv | grepのイーサネット#ビューカードの種類lspciを-vvv | grepのカーネル| grepのドライバ # ドライブモジュールを表示するのmodinfoのTG2#ビューのドライブバージョン(ドライブ・モジュール)は、ethtool -i EM1#ビューのネットワークカードのドライバのバージョンのethtool EM1を
●Webログ解析システムを使用して。(例えば、バックファイアソフトウェア)
●分析システム性能のボトルネックポイント(IO /メモリ/ CPU、共通のツール、特殊なコマンドを使用して、SARは、トップのキーの組み合わせをシフト/ vmstatの/ iostatの/ IPCS)
ログ管理は、一般的にコマンドを使用しました:
履歴#コマンドデフォルト1000続いたHISTTIMEFORMATを= "%Y-%M-% D%H:%のM:%S" # historyコマンド特定の時間ましょう歴史-c#履歴のクリアコマンド猫の$ HOME /の.bash_history#コマンドの履歴を記録ファイルlastb -a#は、ユーザのログインシステムは、エコー>は/ var / log / BTMPバイナリログファイルについての情報をクリアすることができなかった示しています最終#はwtmpのデフォルト/エコー>は/ var / logバイナリログファイルをクリアするには、ユーザー情報の着陸を見ます文字化け開く人は/ var / log / wtmpの#上陸ビューのユーザー情報lastlogの#ユーザーの最後のログイン時間は、tail -fの/ var / log / messagesに # システムログは、tail -fは/ var / log /安全な #1のssh ログ
2、最適化
最適化は、最も求められているスキル、基本的な操作やメンテナンスの操作やメンテナンスが現行賃金が高いですが、コンフィギュレーションファイルまたは最適化と呼ばれるパラメータに関するインターネット検索の記事を変更するのではなく、リスクを取るように最適化され、それがしやすい最適化されると言うことができますダウンタイムが生じ。
最適化は、部分的に各パラメータのハードウェア、ソフトウェアのパフォーマンスの実際の現場環境に基づいて最適化し、サイトのパフォーマンスを向上させています。私だけにしても、MySQLとTomcatのパラメータを最適化する仮想マシン上のパラメトリックテストを見つけた後、公式サイトのオンライン記事や文書によるとプロパティを表示し、この不完全な半ソリューションを言うことができます。
コスト最適化、パフォーマンスの最適化。ここで私は、最適化TomcatのJVMパラメータは、(対応するテストは、フィールド環境に行われた)は、監視はチューニングしないされていないことに注意してください:()を得
- 標準的なパラメータは、すべてのJVMをサポートする必要があります
-X非標準、各JVM実装が異なっています
-XX不安定なパラメータは、次のバージョンをキャンセルすることができます
シリアルコレクタは、直列化されたスレッド
マルチスレッド並列コレクタ
jvisualvm.exeモニターダンプメモリオーバーフローを開始
-Xms:初期ヒープサイズ
-Xmx:最大ヒープサイズ
-Xss:スレッドのスタックサイズ
-XX:NewSizeの= N:若い世代のサイズを設定します
-XX:NewRatio = N:総若い世代と若い世代古い世代、3 1/4:1の旧世代比:3など、若い世代と旧世代の比率を設定し、若い世代を示し
-XX:SurvivorRatio = N:若い世代領域における2比エデン領域サバイバー。
-XX:MaxPermSizeを= N:永続世代のサイズを設定します
コレクタの設定
-XX:+ UseSerialGC:設けシリアルコレクタ
-XX:+ UseParallelGC:平行に配置コレクタ
-XX:+ UseConcMarkSweepGCを:提供同時コレクター
コレクション統計
-XX:+ PrintGC
-XX:+ PrintGCDetails
-Xloggc:ファイル名
tocmatの最適化は、いくつかのJVM仮想マシンを確認しました
JAVA_OPTS =を設定
-Xms4g
-Xmx4g
-Xss512k
-XX:+ AggressiveOpts積極的な最適化オプションに加え、すべてのエントリが最適化されています
-XX:+ UseBiasedLockingロックの最適化、基本的に選択した、偏執的ロック
-XX:PermSizeを= 64メートル領域元の大きさ、最大マルチクラス300メートルが大きく設定されています
-XX:MaxPermSizeを= 300メートル
-XX:+ DisableExplicitGC //System.gc()の呼び出しは、GCが表示されません
-XX:+ UseConcMarkSweepGCをCMSは、応答時間を短縮し、同時収集、低ポーズ使用
-XX:+ UseParNewGCパラレルガベージコレクション新生代
-XX:+ CMSParallelRemarkEnabled UseParNewGC場合のタイムマークを最小限に抑えます
-XX:+ UseCMSCompactAtFullCollection同時コレクタを使用した場合、破片を減らし、圧縮の古い世代をオン
-XX:の性能を向上させるLargePageSizelnBytes = 128メートルページサイズ
-XX:+ UseFastAccessorMethodsは/セットスイッチ方式のネイティブコードを取得します
Tomcatのアイコンを処理する際に発生する可能性が修理Linuxでの真の-DjavaバグのAWTヘッドレス=
任意のパラメータチューニングに参加しなかったフロントTomcatは、おそらくおよそ605毎秒毎秒、約3倍の435回の結果であります
3、開発スキル
好適なシェルやPython、今シェルは、ニーズや効率性を満たしていない非常に低い、そして自動化のpythonを選択する最良の選択です。今採用ニーズの一般的な要件は、シェルやPython、Perlスクリプト、個人の選択の書き込みやPythonに投票します。
このPython言語速く始めるために、容易に理解します。
パイソン
非常に豊富なサーバー管理ツールで、構成管理(saltstack)バッチ実行(ファブリック、saltstack)モニタリング(Zenoss、Nagiosのプラグイン)仮想化管理(のpython-libvirtの)プロセス管理(監督)クラウド・コンピューティング(OpenStackの).....また、システムのCライブラリのほとんどは、Pythonバインディングを持っています。
プロセスは、最終的にシステムの管理システムに組み込まれなければならないかを決定するために、記述された手順は、システムの一部になります。むしろより自由やスクリプトの全体の多様性を再利用することはできません。
随着云计算时代的来临,中小型公司,不需要运维了。大型公司,没有工程开发能力的运维,是没有竞争力的。
最重要的学好 python 可以涨工资,可以涨工资,可以涨工资。(重要的事情说三遍。)
目前本人也是在学 python,正在把以前 shell 脚本的实例转换成 python 脚本。
4、意识篇
1) 安全意识:
运维人员的权限很大,所以一定要保证帐号/私钥的安全。
● 最好使用加密工具存储。比如truecrypt,lpassword
● 基于本地存储。切勿用网盘,也不建议用lastpass等
● ssh私钥添加密码
2) 磨刀意识:
关于任何操作配置,最好先搞明白操作或配置的原理,然后再去操作。应一句话叫做“磨刀不误砍柴功”,而且对于类似的操作可以举一反三。
3) 计划意识:
复杂的变更操作比如多台主机以及牵涉到san存储,最好先作 操作计划,写计划文档,详细致每条命令,然后请高手帮忙审核。 这样能最大程度使整个操作过程安全。如果是重要的客户业务系统,操作最好有回退方案,而一旦变更失败,客户可以在短时间内将业务回退。
4) 记录分享意识:
遇到自己认为较特殊的案例时,记得要写 案例过程及分析的文档。也方便自己以后翻看,或者和其他兄弟分享,作知识的传播以便于大家以后都能少走弯路。
5) 监控意识:
运维来说,监控是非常重要的,监控是发现系统各种异常的眼睛,所以运维应该和监控紧密配合。
6) 业务意识:
尽量了解维护的各主机上业务类型,以及各主机业务之间的关联性。因为任何维护工作都是为主机能提供业务服务的,当某业务中断,能最快的知道与此业务相关的主机群,从而缩小故障排查范围,最快定位故障。
附上运维思路拓扑图:
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 脚本。
4、意识篇
1) 安全意识:
运维人员的权限很大,所以一定要保证帐号/私钥的安全。
● 最好使用加密工具存储。比如truecrypt,lpassword
● 基于本地存储。切勿用网盘,也不建议用lastpass等
● ssh私钥添加密码
2) 磨刀意识:
关于任何操作配置,最好先搞明白操作或配置的原理,然后再去操作。应一句话叫做“磨刀不误砍柴功”,而且对于类似的操作可以举一反三。
3) 计划意识:
复杂的变更操作比如多台主机以及牵涉到san存储,最好先作 操作计划,写计划文档,详细致每条命令,然后请高手帮忙审核。 这样能最大程度使整个操作过程安全。如果是重要的客户业务系统,操作最好有回退方案,而一旦变更失败,客户可以在短时间内将业务回退。
4) 记录分享意识:
遇到自己认为较特殊的案例时,记得要写 案例过程及分析的文档。也方便自己以后翻看,或者和其他兄弟分享,作知识的传播以便于大家以后都能少走弯路。
5) 监控意识:
运维来说,监控是非常重要的,监控是发现系统各种异常的眼睛,所以运维应该和监控紧密配合。
6) 业务意识:
尽量了解维护的各主机上业务类型,以及各主机业务之间的关联性。因为任何维护工作都是为主机能提供业务服务的,当某业务中断,能最快的知道与此业务相关的主机群,从而缩小故障排查范围,最快定位故障。
附上运维思路拓扑图:
意识是很重要,并不是你技术很牛,学的技术很多很熟,就不代表你不需要运维意识,其实领导很看重运维意识的,例如有没有做好备份,权限分配问题,平台测试情况,故障响应时间等,这些都是意识,而不是你学了很多技术自认大牛了,平台发现故障你又没什么大不子,以为很简单的问题喜欢处理就处理,不需要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。