ホームページ データベース mysql チュートリアル 调谐mysql网络性能之调试工工具工具篇_MySQL

调谐mysql网络性能之调试工工具工具篇_MySQL

Jun 01, 2016 pm 01:56 PM
linux 道具 データパック 記事

 
本文是介绍管理Linux系统网络性能技巧的文章,主要介绍了route、netstat、tcpdump三种网络管理测试工具的使用方法及其可实现的功能。

route

在配置网络时,要为机器指定接收数据包时该包要经过的路径。在Linux系统中,提供一个命令route,这个命令可以为ifconfig命令配置的网卡设置静态路由。这种设置工作通常在/etc/rc.d/rc.inet1中引入,在系统引导时进行。

我们通过几个例子来说明如何使用route命令:
route add -net 127.0.0.0

这个命令将向路由表中添加一个指定地址或者网络的路由。注意此时网络为A类地址,掩码被设置为255.0.0.0,这个新添加的条目被连接到lo设备上。

route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 dev eth0

这个命令为IP地址为xxx.xxx.xxx.xxx的主机增加一个路由,它的网络掩码被设置为255.255.255.0。

route del -net xxx.xxx.xxx.xxx

此命令将删除xxx.xxx.xxx.xxx这个网络的路由。

使用route命令还可以很方便地对整个网络的路由信息进行管理,其输出结果是网络的路由表。如下所示:

-----------------------------------------------------------------

[root@lee /root]#route

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0

10.10.8.0 * 255.255.255.0 U 0 0 0 eth0

127.0.0.0 * 255.0.0.0 U 0 0 0 lo

default dgc8.njupt.edu 0.0.0.0 UG 0 0 0 eth0

default dgc8.njupt.edu 0.0.0.0 UG 1 0 0 eth0

[root@lee /root]#

-----------------------------------------------------------------


输出结果中各个字段的含义是:

·Destination表示路由的目标IP地址。

·Gateway表示网关使用的主机名或者是IP地址。上面输出的"*"表示没有网关。

·Genmask表示路由的网络掩码。在把它与路由的目标地址进行比较之前,内核通过Genmask和数据包的IP地址进行按位"与"操作来设置路由。

·Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由。

·Metric表示路由的单位开销量。

·Ref表示依赖本路由现状的其它路由数目。

·Use表示路由表条目被使用的数目。

·Iface表示路由所发送的包的目的网络。

通过查看这些输出信息,我们就可以方便地管理网络的路由表了。

netstat

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。在计算机上执行netstat后,其输出结果如下所示:

-----------------------------------------------------------------

[root@lee /root]#netstat

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State

Active UNIX domain sockets (w/o servers)

Proto RefCnt Flags Types State I-Node Path

Unix 5 [ ] DGRAM 460 /dev/log

Unix 0 [ ] STREAM CONNECTED 173 @00000014

Unix 0 [ ] DGRAM 662

Unix 0 [ ] DGRAM 631

Unix 0 [ ] DGRAM 544

Unix 0 [ ] DGRAM 484

Unix 0 [ ] DGRAM 470

[root@lee /root]#

-----------------------------------------------------------------

 


 

 

从整体上看,netstat的输出结果可以分为两个部分:第一部分:是Active Internet connections,称为有源TCP连接,在上面的输出结果中,这一部分没有内容,表示暂时还没有TCP连接。第二部分:是Active UNIX domain sockets,称为有源Unix域套接口。输出结果显示的是Unix域套接口的连接情况:

·Proto显示连接使用的协议。

·RefCnt表示连接到本套接口上的进程号。

·Types显示套接口的类型。

·State显示套接口当前的状态。

·Path表示连接到套接口的其它进程使用的路径名。

可以用netstat -a来查看所有套接字的状态,这在您调试网络程序的时候是非常有用的。netstat -r将显示路由表的内容,一般还要同时指定"-n"选项,这样可以得到数字格式的地址,也可显示默认路由器的IP地址。使用netstat -i则将显示所有的网络接口信息。使用netstat还可以获得当前的网络状态以及网络的拓扑结构,这在实际中是非常有用的。

tcpdump

tcpdump命令用于监视TCP/IP连接并直接读取数据链路层的数据包头。您可以指定哪些数据包被监视、哪些控制要显示格式。例如我们要监视所有Ethernet上来往的通信,执行下述命令:

tcpdump -i eth0

即使是在一个相对平静的网络上,也有很多的通信,所以我们可能只需要得到我们感兴趣的那些数据包的信息。在一般情况下,TCP/IP栈只为本地主机接收入站的数据包绑定同时忽略网络上的其它计算机编址(除非您使用的是一台路由器)。当运行tcpdump命令时,它会将TCP/IP栈设置为promiscuous模式。该模式可接收所有的数据包并使其有效显示。如果我们关心的只是我们本地主机的通信情况,一种方法是使用“-p”参数禁止promiscuous模式,还有一种方法就是指定主机名:

tcpdump -i eth0 host hostname

此时,系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:

tcpdump -i eth0 src host hostname

下面的命令可以监视所有送到主机hostname的数据包:

tcpdump -i eth0 dst host hostname

我们还可以监视通过指定网关的数据包:

tcpdump -i eth0 gateway Gatewayname

如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:

tcpdump -i eth0 host hostname and port 80

该命令将显示从每个数据包传出的头和来自主机hostname对端口80的编址。端口80是系统默认的HTTP服务端口号。如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Avue-Crudの行編集モードでセルのOnblurイベントを手動でトリガーする方法は? Avue-Crudの行編集モードでセルのOnblurイベントを手動でトリガーする方法は? Apr 04, 2025 pm 02:00 PM

AvueコンポーネントライブラリでAvue-Crudの行編集を実装するOnblurイベントは、Avue-Crudコンポーネントを手動でトリガーします。便利なインライン編集機能を提供しますが、時にはする必要があります...

AIツールを使用して、React Viteプロジェクトでフォアグラウンドページをすばやく構築するにはどうすればよいですか? AIツールを使用して、React Viteプロジェクトでフォアグラウンドページをすばやく構築するにはどうすればよいですか? Apr 04, 2025 pm 01:45 PM

バックエンド開発でフロントエンドページをすばやく構築する方法は? 3年または4年の経験を持つバックエンド開発者として、彼は基本的なJavaScript、CSS、HTMLを習得しました...

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

ブラウザ埋め込みスクリプトを使用して、Webページ要素の操作と数値計算を自動化する方法は? ブラウザ埋め込みスクリプトを使用して、Webページ要素の操作と数値計算を自動化する方法は? Apr 04, 2025 pm 12:09 PM

Webページの自動化と数値計算:ブラウザー埋め込みスクリプトに基づく実装この記事では、ブラウザ組み込みスクリプトを使用してWebページ要素の操作と数字を実装する方法を探ります。

JavaScriptプラグインを使用して、ページ固定と要素の独立した動きの効果を実現する方法は? JavaScriptプラグインを使用して、ページ固定と要素の独立した動きの効果を実現する方法は? Apr 04, 2025 pm 12:51 PM

Webデザインの独立して移動するスクロールバーと要素のページの修正効果を実装すると、特別な効果を達成する必要がある場合があります。つまり、スクロールバーがスクロールするときに...

NPMの代わりにPNPMでReactアプリケーションを作成する方法は? NPMの代わりにPNPMでReactアプリケーションを作成する方法は? Apr 04, 2025 pm 06:45 PM

NPMの代わりにPNPMを使用して、NPXを使用してReactアプリケーションを作成することについて...

グラデーションの背景を持つカードとクーポンのレイアウトに対するギャップ効果を達成する方法は? グラデーションの背景を持つカードとクーポンのレイアウトに対するギャップ効果を達成する方法は? Apr 05, 2025 am 07:48 AM

カードクーポンレイアウトのギャップ効果を実現します。カードクーポンレイアウトを設計するとき、特に背景が勾配である場合、カードクーポンにギャップを追加する必要があることがよくあります...

ViteプロジェクトでWeb Sideとnode.jsサービスを同時に開始するにはどうすればよいですか? ViteプロジェクトでWeb Sideとnode.jsサービスを同時に開始するにはどうすればよいですか? Apr 04, 2025 pm 02:54 PM

ViteプロジェクトでWeb Sideとnode.jsサービスを同時に開始するにはどうすればよいですか?現代のフロントエンド開発では、Viteは高速なホットアップデートと効率的なビルドプロセスのために高度に開発されています...

See all articles