シニアJavaのように、あなたは、Linuxの知識を理解しておく必要があります

オリジナル:妹味(マイクロチャネル公共番号ID:xjjdog)、共有してくださいは、ソースを保管してください再現しました。

ソフトウェアの才能の二つの領域があり、1は、プロジェクトの種類で、1は、研究ベースです。Linuxの分野では、カーネルの相対は、コマンドラインで作業するエンジニアに属し、研究に従事します。エンジニアリングはまた、非常に痛みを伴うコマンドを暗唱、例えば、彼自身の問題を抱えている、一般的に表面を覆う第1は広くない、暗唱することは推奨されません、脳細胞のほとんど忘れ速すぎて、廃棄物の第二のノート。Niubi表記はコーナーの周りに、煙を希釈するために時間を使って、それの喜びを体験し、使用されています。彼女を愛し、毎日ベッドに彼女を保持し、成功それを愛します。

Linux根本的な理由よりも、本当に多くののようなコマンドは、それが持っている、ソフトウェアでありag、そのような代替をしたいコマンドをgrep、ほとんどの古代と強力なコマンド。ではないので、どのように良いソフトウェア設計、最初にシステムに定住ソフトウェアのいくつかは、時間をかけて、それが慣習となっているため、キーボードのすべてのようなコストがかかりすぎる。この習慣の変更、のLFなどの変化。

この記事では、すでにLinuxコマンドのほとんどを知っているし、オペレーティングシステムの基本的な要素を理解していることを前提としています。あなたは今、10未満のコマンドを理解していれば、以下の内容を読んでいません。最も基本的なものに加えて、我々は、ほとんどのポイントをインタビューするあなたの最も一般的な場所のいくつかをリストアップし、いくつかの組み合わせは、あなたがトリックを見ていないかもしれません。しかし、この記事では、将来のテーマ別の検査ポイントの序文として、大まかな概要と印象を与えます。

本書に記載された全てのコマンドは、に精通していると覚えなければなりません。

いくつかの一般的なLinuxシステム

まず、Linuxの現在のバージョンでは、一般的な印象、一般的に分類され、デスクトップ版とサーバ版を持っているすでに繁栄されます。

  • Ubuntuの個人、南アフリカは豊かな感情を持っている最も一般的なLinuxディストリビューションでは、あなたがお金を行うことができます
  • CentOSの最も一般的なLinuxサーバは、著作権生まれ輪に、新バージョン、オープンのRHELのバージョンを送信します
  • アーチローリングアップグレード、大規模なバイナリパッケージ、コミュニティ活動家、個人的な好み
  • Gentooは、ソフトウェアをインストール、安定し、ソースからコンパイルを開始する必要がありますが、とそれが苦痛になります
  • LFSがゼロのLinuxからビルド、すべての根毛がはっきりと見て、私は再びそれを何のLinuxを実行します
  • カーリー開発パスのリリースに代わって浸透を専門には、フィールドであり、

我々は最初の概念を理解する必要があります

  • それKISS ITとシンプルな愚か保ち、哲学的と言われています
  • すべてがファイルである、また、より多くのとんでもない配管、機器、ソケットなどが、また、ファイルを抽象化になった通常何かの文書ファイル、プロセス、ディスク・ファイルと呼ばれます。これは、最も重要なのLinux組織です。
  • パイプ |セパレータは、コマンドの後に入力としてコマンド出力の前に一連の複数であることが
  • リダイレクト
    • < コマンド入力として提出します
    • > ファイルへのコマンド出力
    • >> コマンドの出力をファイルに追加されます
  • SHELLがで最初の多くは、など、zshの、CSHであり、一般的に最も一般的に使用され、シェルはbashを確認しているecho $SHELL現在のユーザのシェルを見ることができ、対応する設定ファイルは、それに応じて変更する必要があります。例えば.zshrc.bashrc

四つの要素

メモリ、CPU、メモリ、ネットワーク:Linuxのを入力し、私たちの最初の懸念は四つの要素です。Linuxは、十分なコマンドを提供し、それはあなたが隅々をスパイすることができます。以下に関係なく実力の、熟練していないお尻に覚えている、最も一般的に使用されるコマンドの一部です。

CPU

  • 使用するtopCPUの並べ替えに合わせてシフト+ Pを使用して、CPUの負荷を表示します。すべての平均たちなど、WAを知っている必要があります
  • 使用するuptimeシステムの起動時間と負荷を表示し、それが何を意味するの負荷しますか?何がシステムの過負荷としてカウント?これは、高周波の問題であり、私はあなたを教えていなかったせい
  • psBO Macrophoma深いコマンド、プロセス番号の追加を確認し、あなたも<、R、S、D、T、Zを知っている必要があり、意味Nステータスビット
  • topそしてps多くの機能のような、連結されているwatch "ps -mo %cpu,%mem,pid,ppid,command ax"プロセスのリストの先頭に相当する; top -n 1 -bcそしてps -efその結果は同様でした。
  • 死んそこアニメーション、あなたができるkillプロセスを殺します。Java用、に焦点を当てる必要がありますがkill -9kill -15kill -3、あまりにも多くの信号を使用することができます殺す意味kill -lを表示するために、彼らは信号ブーストのほとんどを知ってもらいます。
  • あなたは一時的に死ぬしたい場合は、できる&ような背景のシンボル、で実行しますtail -f a.log &jobsこのコマンドは、現在の背景の一覧を表示、復元したい場合、使用するfgフォアグラウンドに戻します。それはあなたが入れたときに、すべての端末の操作ですterm、背中のコマンドも消えオフあなたがプログラムを続けたいので、それはする必要nohupに留意する必要がある、コマンド
  • Solarisでmpstatは、さまざまな統計システムのCPUを示してい
  • CPUアフィニティを学びます

メモリ

  • free -m 無料、使用、キャッシュされ、スワップ項目の意味を理解するために
  • cat /proc/meminfo 気配りの学生が気づいたかもしれメモリー、CPU、およびメモリの情報、および他のトップ数値表示の異なるコマンドについて、より詳細な情報を見るには同じです。
  • slabtopそのようなキャッシュ・ディレクトリ・エントリの原因となる多数のファイルを横断するように、カーネルキャッシュの占有率を表示します。私たちは、原因の実装に本番環境に遭遇していたfind /原因のdentry_cacheサーバーメモリの枯渇。
  • vmstatコマンドは、私のお気に入りの一つであり、最も一般的に使用されるコマンドは、システムの動作条件を理解するために最速することができます。各パラメータの意味は知ってもらう必要があります。
  • swaponを、するswapoffオープン、クローズスワップ領域
  • 通常、サンプリングツールとして使用** SAR **ホイール、さらに統計的なクラス、

メモリ

  • 使用するdf -hシステムのディスク使用量プロファイルを表示します
  • lsblkは、情報ブロックデバイスを一覧表示します
  • デュビューディレクトリやファイルサイズ

ネットワーク

  • rsyncのああインクリメントすることができる強力な同期ツール
  • netstatコマンドは、 Linuxのネットワークシステムのステータス情報、各種の表示します
  • SSより速く、より効率的なのnetstatよりも、TCPの接続状態に関する詳細な情報を表示し、することが可能。
  • カール、wgetのシミュレーション要求ツール、ダウンロードツール。-RのwgetとしてHTTP://サイトは、サイト全体をダウンロードします
  • AB Apacheサーバのパフォーマンステストツール
  • ifstat統計ネットワークインターフェイストラフィック状況
  • nslookupコマンドは、内部ネットワークバーストIPドメインのクエリに応じて、DNSドメイン名の情報を照会クールです
  • NCネットワークツールスイスアーミーナイフ、恥を使用していません
  • ARPの表示およびMAC変換テーブルにIPを変更
  • トレースルート少ない早くオフホスト、一般的に知られているいくつかのジャンプの間の表示パケット・データ・パス
  • tcpdumpがかなりのwiresharkをダウンロードするには、言うこと
  • 壁の現在開いているすべての出力端子。使用するwhoコマンドの女神が端末上で発見され、あなたが求愛することができます

ネットワーク推奨インストールエクスペリエンスkaliLinuxは、ツールが極端上記あなたが高いようになります。

どのように整理します

Linuxのコマンドは、状態を監視するためのstatの様々なに加えて、綿密な追跡を行うためのトレースのさまざまありますが、非常に興味深いです、統計にトップリソースの消費者の様々ながある、などlsblk、lsusbが、lscpiなどのシステムのハードウェアを表示するには、様々なLSがあります。基本的に合意が最も強力なシステム指向であるので、あなたが適切なツールを見つけることができ、あなたの本能に従ってください。

Linuxは、より多くの選択肢のディレクトリがあり/proc、各コマンドの惨禍を運んで、。同様sysctlのコマンドは、変更することです/proc/sysディレクトリ内のマップエントリを。手紙を見てはいけないfind /proc/sys -type f | wc -lsysctl -a| wc -l結果が好きではないですか?

/ procファイルシステムは擬似ファイルシステムは、スペースを取らずに専用メモリ、外部メモリ間に存在です。しかし、オペレーティングシステムのカーネルデータへのアクセスを提供する方法ファイルシステムインタフェース。システムのすべての状態は、その目を逃れることはできません。例えば:

  • cat /proc/vmstat見て、そうではありません、とvmstatのようなコマンドの出力?
  • cat /proc/meminfo メモリは、最も完全な情報ではありません
  • cat /proc/slabinfoことではありませんslabtop情報も
  • cat /proc/devices これは、すでにデバイスにロードされて
  • cat /proc/loadavg 負荷AVGは、もともとああここに横たわっています
  • cat /proc/stat すべてのCPUの活動情報
  • ls /proc/$pid/fdレイは、まだlsof結果

一般的なトラブルシューティング方法

一般的なトラブルシューティングは、CPU、メモリ、および調査には、いくつかの他の要素の周りにあります。以下はプロセスのトラブルシューティングやパフォーマンスの一般的な問題、写真、言っても過言ではあります。

例えば、シナリオの

以下の実施例は、個々のを蓄積する必要がある、このようなシーンは多数あり、様々なコマンドの組み合わせを適用する特定のアプリケーションシナリオを示します。しかし、それは非常に熟練したsedやawkの数の練習することをお勧めします。

最高スレッド固有の情報CPUの1を占めているJavaプロセスを表示する方法?

  • プロセスは、nとしてカウント最高スレッドCPUを占有取得。
    • 使用上top -H -p pidの目視観察
    • PSを使用してください ps -mo spid,lwp,stime,time,%cpu -p pid
  • スレッド番号は16進数に変換しましたprintf 0x%x n
  • 100行のスレッド情報を印刷した後、適切なプロセスを見つけるjstack使用 jstack -l pid| grep spid -A 100

各ネットワークの状態の統計情報の数

netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n -k 1 -r最初は、リストを表示netstatの使用第6列の使用の「awkの傍受に使用するuniqソート統計、および統計情報を表示します。もちろん、これはすることができます。netstat -ant | awk '{arr[$6]++}END{for(i in arr){print arr[i]" "i }}' | sort -n -k 1 -rこの「一日の降順にIPアクセスリスト与えられたApacheのログ解析では、」同じ問題です。

スワップを使用しているプロセスを参照する方法

あなたは最初に/ proc / $ PID / smaps私たちが必要とするものであるフィールドを入れ替え、我々は必要な情報のすべての種類は、あります理解する必要があります。クリック通じ限りループ。

for i in `cd /proc;ls |grep "^[0-9]"|awk ' $0 >100'` ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps ;done |sort -k2nr 
复制代码

最後に、http://www.brendangregg.com/の大きな画像を添付

著者について:妹味(xjjdog)、公衆に迂回プログラマの数を許可していません。インフラとLinuxをフォーカス。ディケイドアーキテクチャ、日百億流れ、あなたはあなたに別の味を与え、高い同時実行の世界を探検。私の個人的なマイクロチャネルxjjdog0、友人を追加し、さらに交流を歓迎します。

おすすめ

転載: juejin.im/post/5db69c05f265da4d4434a221