使用概要: ethtool ethx //查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等 ethtool –h //显示ethtool的命令帮助(help) ethtool –i ethX //查询ethX网口的相关信息 ethtool –d ethX //查询ethX网口注册性信息 ethtool –r ethX //重置ethX网口到自适应模式 ethtool –S ethX //查询ethX网口收发包统计 ethtool –s ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] //设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <errno.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> #include <linux/if.h> typedef unsigned short u16; typedef unsigned int u32; typedef unsig
本文列出了 10 个基础的每个 Linux 用户都应该知道的网络和监控命令。网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看 linux 服务器 ip 地址,管理服务器网络配置,通过 telnet 和 ethernet 建立与 linux 之间的网络链接,查看 linux 的服务器信息等。下面让我们看看在 Linux 下的网络和监控命令的使
When you are writing a linux application that needs either kernel to userspace communications or userspace to kernel communications, the typical answer is to use ioctl and sockets.
利用 ethtool 可以根据需要更改以太网卡的参数,包括自动协商、速度、双工和局域网唤醒等参数。
eth0: negotiated 100baseTx-FD, link ok 100M
Linux 提供了各种工具,用于报告和检查 CPU、RAM、存储和网络的操作。本文演示了其中许多实用程序的工作原理。
分析思路是,先可以用动态分析去初步分析,然后通过静态分析走读代码再从代码层面确认。
int ioctl( int fd, int request, …/* void *arg */ );
这里深度理解一下在Linux下网络包的接收过程,为了简单起见,我们用udp来举例,如下:
---------------------------------接Part 1------------------------------
当新的Linux主机完成了网络配置,即可以正常接入网络后,我们可以通过Linux自带的相关工具进行网络相关检测。如最常用的ping,netstat,ss,traceroute,ethtool等相关命令。本文主要是描述这几个命令的使用方法,供大家参考。
之前没有用过addr2line和gdb等内核调试工具定位问题代码,这里记录一下在将某个网络驱动从4.9内核移植到5.7内核时出现内核崩溃起不来的问题。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117744.html原文链接:https://javaforall.cn
上一篇文章中《图解Linux网络包接收过程》,我们梳理了在Linux系统下一个数据包被接收的整个过程。Linux内核对网络包的接收过程大致可以分为接收到RingBuffer、硬中断处理、ksoftirqd软中断处理几个过程。其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来,送到协议栈的处理,再之后送到用户进程socket的接收队列中。
Linux内核对网络包的接收过程大致可以分为接收到RingBuffer、硬中断处理、ksoftirqd软中断处理几个过程。其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来,送到协议栈的处理,再之后送到用户进程socket的接收队列中。
特殊的read,write, 当你用read,write不能完成某一功能时,就用ioctl
之前记录过处理因为 LVS 网卡流量负载过高导致软中断发生丢包的问题,RPS 和 RFS 网卡多队列性能调优实践[1],对一般人来说压力不大的情况下其实碰见的概率并不高。这次想分享的话题是比较常见服务器网卡丢包现象排查思路,如果你是想了解点对点的丢包解决思路涉及面可能就比较广,不妨先参考之前的文章如何使用 MTR 诊断网络问题[2],对于 Linux 常用的网卡丢包分析工具自然是 ethtool。
前言:主要针对于Linux中网络/路由/通信通道类命令进行学习,加深对Linux的使用;
speedtest-cli是一个常用的网络速度测试工具,可以通过命令行进行安装和运行。首先,需要安装speedtest-cli:
系统硬件维护 dmesg -dT |egrep 'sda|usb|tty|memory|dma'#查看关键信息 watch "dmesg | tail -20" #实时查看 date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S" # 开机运行时间 硬件资源查询 1.SN号,品牌 dmidecode | gre
测试过程:client上发1000字节的SQL到server,client上发超过1500字节的SQL到server
ethtool命令用于查询和控制网络设备驱动程序和硬件设置,尤其是有线以太网设备,devname网卡的名称。网卡就像是交换机的一个端口,正常使用我们只是配置网卡IP地址等信息,网卡的速率、双工模式等我们并不关心。通过ethtool命令我们可以像配置交换机网卡一样配置这些参数,这就是这个命令的魅力所在。
pwdx - report current working directory of a process,格式:pwdx pid 内存分析工具 valgrind valgrind辅助工具 qcachegrind 可视化查看valgrind结果 淘宝DBA团队发布的监控脚本,使用perl开发,可以完成对linux系统和MySql相关指标的实时监控 orzdba 取指定进程名的pid pidof 进程名 性能瓶颈查看: perf top -p pid 查看调用栈: pstack pid https://www.percona.com/ 查询程序执行聚合的GDB堆栈跟踪,先进性堆栈跟踪,然后将跟踪信息汇总: pt-pmp -p pid 格式化explain出来的执行计划按照tree方式输出,方便阅读: pt-visual-explain 从log文件中读取插叙语句,并用explain分析他们是如何利用索引,完成分析之后会生成一份关于索引没有被查询使用过的报告: pt-index-usage 其它: vmstat tcpdump 网络数据包分析器 显示包的内容: tcpdump -i eth1 -n -vv -x -e -s 600 # 仅二进制 tcpdump -i eth1 -n -vv -X -e -s 600 # 二进制和文本 抓包保存到文件供Wireshark分析: tcpdump -i eth1 -n -vv -X -e -s 600 -w x.cap 抓取192.168.31.1的80端口的包 tcpdump -i eth1 host 192.168.31.1 and port 80 抓取目标IP为192.168.31.1和目标端口为80端口的包 tcpdump -i eth1 dst host 192.168.31.1 and dst port 80 -s 指定显示多少字节的包内容 objdump nm ldd strings iostat 输入/输出统计 ifstat 网络流量实时监控工具 vmstat 虚拟内存统计 sar (System Activity Reporter系统活动情况报告,最为全面的系统性能分析工具之一) iptraf 实时IP局域网监控 iftop 网络带宽监控 htop 进程监控 iotop 磁盘I/O监测工具 fuser 使用文件或文件结构识别进程 lsof 打开文件列表 dmesg slabtop free slurm 查看网络流量 byobu 类似于screen tmux 终端复用工具,类似于screen screen 在多个进程之间多路复用一个物理终端的窗口管理器 dtach 用来模拟screen的detach的功能的小工具 dstat 可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品 NetHogs 监视每个进程的网络带宽 MultiTail 同时监控多个文档、类似tail Monitorix 系统和网络监控 Arpwatch 以太网活动监控器 Suricata 网络安全监控 Nagios 网络/服务器监控 Collectl 一体化性能检测工具 mtr 网络连通性判断工具,集成了traceroute和ping socat 多功能的网络工具(Socket CAT,netcat加强版) netpipes socket操作 ab wget curl tsung 压力测试工具 siege 压力测试和评测工具 nmon 监控Linux系统性能 psacct 监视用户活动 ncdu 基于ncurses库的磁盘使用分析器 slurm 实时网络流量监控 findmnt 查找已经被挂载的文件系统 saidar 系统数据监控和统计工具 ss 可以替代netstat的网络连接查看工具(socket statistics) ccze 用不同颜色高亮日志协助管理员进行区分和查看分析 netstat 网络统计 ifconfig (ifup ifdown) Linux磁盘相关命令 sfdisk -l sfdisk -s fdisk -l dmesg |grep SCSI dmesg |grep -i raid df -h cat /proc/scsi/scsi hdparm /dev/sda mount 加载一块硬盘 mkfs 创建文件系统 /etc/fstab 文件内容mount命令输出一致 lscpu 查看CPU lspci
如果我们的服务器没有部署在本地(实际上通常都是这样的,我们会把服务器托管到IDC机房),
在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲、队列有关的参数。网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过来后,可能很快就忘记或混淆了它们的含义。本文尝试总结TCP队列缓冲相关的内核参数,从协议栈的角度梳理它们,希望可以更容易的理解和记忆。注意,本文内容均来源于参考文档,没有去读相关的内核源码做验证,不能保证内容严谨正确。作为Java程序员没读过内核源码是硬伤。
通常情况下,Linux的网卡中断是由一个CPU核心来处理的,当承担高流量的场景下,会出现一些诡异的情况(网卡尚未达到瓶颈,但是却出现丢包的情况)
其中eth0是一般服务器,默认的网卡,但是也有例外,所以先用命令 ifconfig 查看下所有网络设备,找到你的电脑的网卡,像我的就是eno1。
在搭建Hadoop集群时,要求网络使用以太网,最低要求使用千兆网络,推荐使用万兆网络,标准配置是数据网络配备双万兆网卡,管理网络配备双千兆网卡。使用双万兆网卡的好处有以下几点:
#nmap -sP指定使用Ping echo 进行扫描 /24查看目的网络有多少主机处于运行状态
在 ubuntu cdimg[1] 下载,选择 ubuntu-base-16.04.6-base-armhf.tar.gz。
最近发现了个好的工具,是监控网卡及网络流量的叫NICSTAT,这里我通过这个例子来说明
最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,我在排查过程中基本都是通过使用 tcpdump 在出现问题的各个环节上进行抓包、分析在那个环节出现问题、针对性去排查解决问题,对症下药,最后终究能够解决问题。但是这种情况大多是因为服务本身的问题,如果是环境问题、操作系统、甚至硬件的问题,可能从服务本身出发不能解决问题,但是这篇文章另辟蹊径,从外部环境分析可能丢包的原因,看完之后,很受用,部分章节对原文有所修改,下面分享出来供更多人参考。
最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。
有时候需要测试特定版本的libvirt或者需要测试自己修改过的libvirt。这时候就需要重新编译libvirt,并做成yum源
如果只想查看网络接口名称和相应的MAC地址,请使用以下命令。检查特定的网络接口的MAC地址:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
1 DMA 将 NIC 接收的数据包逐个写入 sk_buff ,一个数据包可能占用多个 sk_buff , sk_buff 读写顺序遵循FIFO(先入先出)原则。
参数 -c 只输出匹配行的个数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。 -l 查询多文件时只输出包含匹配字符的文件名。 -n 显示匹配行及行号。 -s 不显示不存在或无匹配文本的错误信息。 -v 显示不包含匹配文本的所有行(反向匹配)。 -V 显示软件版本信息
上周在一次偶然的谈话中,我无意中听到一位同事说:Linux的网络堆栈太慢了!你不能指望它在每个核每秒处理超过5万个数据包!
网络数据传输:数据帧传输,由网卡读取并放入设备缓冲区ring buffer,当网络数据包到达的速率快于内核处理的速率时,ring buffer很快会被填满,新来的数据包将被丢弃。
HowTo Install MLNX_OFED Driver 如何安装MLNX_OFED驱动
交换机多端口和服务器对接时,需要确定是否需要配置聚合或者不配置聚合,并且配置聚合的时候还需要确认是静态聚合还是动态聚合,当然这和当前服务器网卡的 bond 模式有关。下面我们了解下 Linux 服务器的 7 种 bond 模式,说明如下:
(1)在文件夹/etc/init.d/下创建关机时需要执行的脚本file_name;
许多发行版都为内核提供了模块化或整体式的流量控制(QOS)。自定义的内核可能不会支持这些特性。
在本文中,我们将回顾一些最常用的 Linux 网络管理命令工具和程序。并对这些命令进行解释和说明,以便我们更好的掌握。
sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回上一次所在的目录 cd ~ 或 cd 回当前用户的宿主目录 mkdir 目录名 创建一个目录 rmdir 空目录名 删除一个空目录 rm 文件名 文件名 删除一个文件或多个文件 rm -rf 非空目录名 删除一个非空目录下的一切 mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下 mv 文件名 新名称 在当前目录下改名 find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录 fdisk -l 查看系统分区信息 fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区 chown chown root /home 把/home的属主改成root用户 chgrp chgrp root /home 把/home的属组改成root组 Useradd 创建一个新的用户 Groupadd 组名 创建一个新的组 Passwd 用户名 为用户创建密码 Passwd -d用户名 删除用户密码也能登陆 Passwd -S用户名 查询账号密码 Usermod -l 新用户名 老用户名 为用户改名 Userdel–r 用户名 删除用户一切 tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包 tar –cvf benet.tar /home/benet 把/home/benet目录打包 tar –zcvf benet.tar.gz /mnt 把目录打包并压缩 tar –zxvf benet.tar.gz 压缩包的文件解压恢复 tar –jxvf benet.tar.bz2 解压缩 make 编译 make install 安装编译好的源码包 reboot Init 6 重启LINUX系统 Halt Init 0 Shutdown –h now 关闭LINUX系统 uname -a 查看内核版本 cat /etc/issue 查看ubuntu版本 lsusb 查看usb设备 sudo ethtool eth0 查看网卡状态 cat /proc/cpuinfo 查看cpu信息 lshw 查看当前硬件信息 sudo fdisk -l 查看磁盘信息 df -h 查看硬盘剩余空间 free -m 查看当前的内存使用情况 ps -A 查看当前有哪些进程 配置IP:vim /etc/network/interfaces eth0:外 eth1:内 DNS(114.114.114.114 8.8.8.8) DNS:vim /etc/resolv.conf 重启: /etc/init.d/networking restart 允许SSH:vi /etc/ssh/sshd-config 重启SSH: /etc/init.d/ssh restart 系统升级:sudo apt-get update
前言(废话):虽然这个功能叫局域网唤醒,但与路由器的端口映射功能配合,广域网唤醒也是很容易的。只要有一台能上网的电脑或手机,就能把家中电脑打开,需要用家里电脑又不在家的时候很方便。 注意事项: 此教程是为了实现外网唤醒内网主机,所以开始之前请确保您的宽带运营商分配给你的IP是公网IP!!!如果您的路由器获取的IP是内网IP(下面有IP段),就不能在外网唤醒了。不过!!如果您用的是光猫路由一体机,下面的路由器获取的也是内网IP,这时就需要登录光猫,将连接方式改为桥接,然后通过路由器拨号上网,这样路由器获取的才能是公网IP,路由器的DDNS功能才能将域名解析到你的公网IP上。 内网IP段:192.168.0.0-192.168.255.255、172.16.0.0-172.31.255.255、10.0.0.0-10.255.255.255 请确保您的路由器有DDNS功能(现在应该是都有的) 一、开启WOL功能 开机狂按 进BIOS设置
通过 dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product" 命令可以显示服务器信息。 申威服务器没查出来,其它服务器可用,下面这个是飞腾服务器的。
领取专属 10元无门槛券
手把手带您无忧上云