linux下监控命令
top、uptime、free
统计相关命令
stat、dstat
ifstat、iostat
netstat、nicstat
mpstat、pidstat、vmstat
lsof、tcpdump、sar
其他
arp、arping、traceroute
strace
nethogs [eth1] 查看网络流量
nslookup、dig
top
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48 Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 191272k total, 173656k used, 17616k free, 22052k buffers Swap: 192772k total, 0k used, 192772k free, 123988k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd 14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top 1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init 2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当前登录用户数 load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
total 进程总数 running 正在运行的进程数 sleeping 睡眠的进程数 stopped 停止的进程数 zombie 僵尸进程数 Cpu(s): 0.3% us 用户空间占用CPU百分比 1.0% sy 内核空间占用CPU百分比 0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比 98.7% id 空闲CPU百分比 0.0% wa 等待输入输出的CPU时间百分比 0.0%hi:硬件CPU中断占用百分比 0.0%si:软中断占用百分比 0.0%st:虚拟机占用百分比
最后两行为内存信息。内容如下:
Mem: 191272k total 物理内存总量 173656k used 使用的物理内存总量 17616k free 空闲内存总量 22052k buffers 用作内核缓存的内存量 Swap: 192772k total 交换区总量 0k used 使用的交换区总量 192772k free 空闲交换区总量 123988k cached 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号 列名 含义 a PID 进程id b PPID 父进程id c RUSER Real user name d UID 进程所有者的用户id e USER 进程所有者的用户名 f GROUP 进程所有者的组名 g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ? h PR 优先级 i NI nice值。负值表示高优先级,正值表示低优先级 j P 最后使用的CPU,仅在多CPU环境下有意义 k %CPU 上次更新到现在的CPU时间占用百分比 l TIME 进程使用的CPU时间总计,单位秒 m TIME+ 进程使用的CPU时间总计,单位1/100秒 n %MEM 进程使用的物理内存百分比 o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。 q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA r CODE 可执行代码占用的物理内存大小,单位kb s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb t SHR 共享内存大小,单位kb u nFLT 页面错误次数 v nDRT 最后一次写入到现在,被修改过的页面数。 w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) x COMMAND 命令名/命令行 y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名 z Flags 任务标志,参考 sched.h
uptime
04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20
- 当前时间 04:03:58
- 系统已运行的时间 10 days, 13:19
- 当前在线用户 1 user
- 平均负载:0.54, 0.40, 0.20,最近1分钟、5分钟、15分钟系统的负载
最直接查看系统平均负载的命令
cat /proc/loadavg
何为系统负载呢?
系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:
它没有在等待I/O操作的结果
它没有主动进入等待状态(也就是没有调用'wait')
没有被停止(例如:等待终止)
一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好!当然这里说的是每个cpu内核,也就是如果你的主机是四核cpu的话,那么只要uptime最后输出的一串字符数值小于12即表示系统负载不是很严重.当然如果达到20,那就表示当前系统负载非常严重,估计打开执行web脚本非常缓慢.
free
1 total used free shared buffers cached 2 Mem: 24677460 23276064 1401396 0 870540 12084008 3 -/+ buffers/cache: 10321516 14355944 4 Swap: 25151484 224188 24927296
第二行是物理总内存,已经使用的内存,空闲内存,shared是被几个进程共享的内存
buffers是用于存放到输出到磁盘的数据,也就是写缓冲
cached 是从磁盘上读出的数据,也就是读缓冲,这两个都是为了提高IO性能的
第三行内容(-/+ buffers/cache)中个参数如下所示:
(-buffers/cache): 真正使用的内存数,即9392M,他指的是第一部分的 used - buffers - cached
(+buffers/cache): 可用的内存数,即22715M,他指的是第一部分的 free + buffers + cached
第四行就是交换区使用的量和空闲数量
释放掉被系统cache占用的数据
echo 3>/proc/sys/vm/drop_caches
stat
stat zzz.sh File: 鈥榸zz.sh鈥? Size: 140 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 925359 Links: 1 Access: (0755/-rwxr-xr-x) Uid: ( 1000/ deploy) Gid: ( 1000/ deploy) Access: 2017-04-19 12:53:47.832967443 +0800 Modify: 2017-04-19 12:53:46.692917575 +0800 Change: 2017-04-19 12:53:46.704918100 +0800 Birth: -
dstat
----system---- ----total-cpu-usage---- ---load-avg--- -net/total- ------memory-usage----- -dsk/total- ---procs--- ----swap--- --io/total- ---system-- ------sockets------ --filesystem- time |usr sys idl wai hiq siq| 1m 5m 15m | recv send| used buff cach free| read writ|run blk new| used free| read writ| int csw |tot tcp udp raw frg|files inodes 09-05 15:02:33| 0 0 100 0 0 0|0.02 0.05 0.05| 0 0 |6844M 284M 2875M 6046M| 795B 18k| 0 0 0.5| 0 0 |0.04 0.86 | 562 1050 |212 105 6 0 0| 1696 51718 09-05 15:02:34| 0 0 100 0 0 0|0.02 0.05 0.05| 638B 2140B|6844M 284M 2875M 6046M| 0 28k| 0 0 0| 0 0 | 0 2.00 | 623 1221 |212 105 6 0 0| 1696 51725 09-05 15:02:35| 0 0 100 0 0 0|0.02 0.05 0.05| 562B 1878B|6844M 284M 2875M 6046M| 0 0 | 0 0 0| 0 0 | 0 0 | 619 1201 |212 105 6 0 0| 1696 51725 09-05 15:02:36| 0 0 100 0 0 0|0.02 0.05 0.05|1230B 5680B|6844M 284M 2875M 6046M| 0 0 | 0 0 0| 0 0 | 0 0 | 657 1259 |212 105 6 0 0| 1696 51725 09-05 15:02:37| 0 0 100 0 0 0|0.02 0.05 0.05| 181B 817B|6844M 284M 2875M 6046M| 0 0 | 0 0 0| 0 0 | 0 0 | 600 1171 |212 105 6 0 0| 1696 51725 09-05 15:02:38| 0 0 100 0 0 0|0.02 0.05 0.05|3500B 5296B|6844M 284M 2875M 6046M| 0 0 | 0 0 0| 0 0 | 0 0 | 701 1322 |212 105 6 0 0| 1696 51725 09-05 15:02:39| 0 0 100 0 0 0|0.02 0.05 0.05| 638B 722B|6844M 284M 2875M 6046M| 0 0 | 0 0 0| 0 0 | 0 0 | 613 1185 |212 105 6 0 0| 1696 51725 09-05 15:02:40| 0 0 100 0 0 0|0.02 0.05 0.05| 164B 1430B|6844M 284M 2875M 6046M| 0 0 | 0 0 0| 0 0 | 0 0 | 610 1187 |212 105 6 0 0| 1696 51725
cpu-usage中的 user是用户使用cpu百分比,sys是系统使用的,idl是空闲比例
wai是io等待比例,hiq是硬件终端,siq是软件终端
system中的int是中断次数(interrupt)和csw中下文切换(context switch)
procs中的run是运行的,blk是中断的,new是新创建的进程
最后两列显示了socket和文件相关的信息
ifstat
ifstat -tlaT Time lo eth0 pan0 Total HH:MM:SS KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out 06:27:32 0.00 0.00 0.06 0.28 0.00 0.00 0.06 0.28 06:27:33 0.00 0.00 0.06 0.18 0.00 0.00 0.06 0.18 06:27:34 0.00 0.00 0.06 0.18 0.00 0.00 0.06 0.18 06:27:35 0.00 0.00 0.12 0.22 0.00 0.00 0.12 0.22
参数
-l 监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。经使用发现,加上-l参数能监测所有的网络接口的信息,而不是只监测 lo的接口信息,也就是说,加上-l参数比不加-l参数会多一个lo接口的状态信息。 -a 监测能检测到的所有网络接口的状态信息。使用发现,比加上-l参数还多一个plip0的接口信息,搜索一下发现这是并口(网络设备中有一 个叫PLIP (Parallel Line Internet Protocol). 它提供了并口...) -z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的 -i 指定要监测的接口,后面跟网络接口名 -s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机 -h 显示简短的帮助信息 -n 关闭显示周期性出现的头部信息(也就是说,不加-n参数运行ifstat时最顶部会出现网络接口的名称,当一屏显示不下时,会再一次出现接口的名称,提示我们显示的流量信息具体是哪个网络接口的。加上-n参数把周期性的显示接口名称关闭,只显示一次) -t 在每一行的开头加一个时间 戳(能告诉我们具体的时间) -T 报告所有监测接口的全部带宽(最后一列有个total,显示所有的接口的in流量和所有接口的out流量,简单的把所有接口的in流量相加,out流量相 加) -w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽 -W 如果内容比终端窗口的宽度还要宽就自动换行 -S 在同一行保持状态更新(不滚动不换行)注:如果不喜欢屏幕滚动则此项非常方便,与bmon的显示方式类似 -b 用kbits/s显示带宽而不是kbytes/s -q 安静模式,警告信息不出现 -v 显示版本信息 -d 指定一个驱动来收集状态信息
iostat
iostat -x Linux 3.13.0-86-generic (iZm5efk9snim7x48j1lxwsZ) 05/10/2017 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.27 0.00 0.11 0.01 0.00 99.61 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util vda 0.00 0.52 0.02 0.79 0.25 11.90 30.14 0.00 5.84 31.75 5.27 0.35 0.03 vdb 0.00 0.05 0.02 0.08 0.47 6.22 134.86 0.00 34.99 4.23 43.06 1.47 0.01
字段含义
rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并 wrqm/s: 每秒对该设备的写请求被合并次数 r/s: 每秒完成的读次数 w/s: 每秒完成的写次数 rkB/s: 每秒读数据量(kB为单位) wkB/s: 每秒写数据量(kB为单位) avgrq-sz:平均每次IO操作的数据量(扇区数为单位) avgqu-sz: 平均等待处理的IO请求队列长度,越短越好 await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位) svctm: 平均每次IO请求的处理时间(毫秒为单位) %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明 I/O 队列太长
netstat
netstat -anpltu Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 6982/java tcp 0 0 0.0.0.0:9527 0.0.0.0:* LISTEN 17779/java tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 17779/java tcp 0 0 1.2.3.4:56568 5.6.7.8:9042 ESTABLISHED - tcp 1 0 1.2.3.4:44910 1.2.3.4.5:8080 CLOSE_WAIT -
显示tcp和udp的相信统计信息
netstat -tus IcmpMsg: InType0: 3 InType3: 1 InType8: 1 OutType0: 1 OutType3: 1 OutType8: 3 Tcp: 32 active connections openings 1 passive connection openings 6 failed connection attempts 0 connection resets received 1 connections established 5110 segments received 3121 segments send out 0 segments retransmited 0 bad segments received. 7 resets sent Udp: 41 packets received 1 packets to unknown port received. 0 packet receive errors 42 packets sent UdpLite: TcpExt: 20 TCP sockets finished time wait in fast timer 10 delayed acks sent 4261 packets header predicted 199 acknowledgments not containing data received 459 predicted acknowledgments 0 TCP data loss events IpExt: InBcastPkts: 18 InOctets: 6136651 OutOctets: 205136 InBcastOctets: 1404
显示路由信息
netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.186.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.186.1 0.0.0.0 UG 0 0 0 eth0
显示网络界面信息
netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 5289 0 0 0 3234 0 0 0 BMRU lo 16436 0 14 0 0 0 14 0 0 0 LRU
显示组播信息
netstat -g IPv6/IPv4 Group Memberships Interface RefCnt Group --------------- ------ --------------------- lo 1 all-systems.mcast.net eth0 1 all-systems.mcast.net lo 1 ff02::1 eth0 1 ff02::1:ff9c:1fb9 eth0 1 ff02::1 pan0 1 ff02::1
参数
-a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; -c或--continuous:持续列出网络状态; -C或--cache:显示路由器配置的快取信息; -e或--extend:显示网络其他相关信息; -F或--fib:显示FIB; -g或--groups:显示多重广播功能群组组员名单; -h或--help:在线帮助; -i或--interfaces:显示网络界面信息表单; -l或--listening:显示监控中的服务器的Socket; -M或--masquerade:显示伪装的网络连线; -n或--numeric:直接使用ip地址,而不通过域名服务器; -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; -o或--timers:显示计时器; -p或--programs:显示正在使用Socket的程序识别码和程序名称; -r或--route:显示Routing Table; -s或--statistice:显示网络工作信息统计表; -t或--tcp:显示TCP传输协议的连线状况; -u或--udp:显示UDP传输协议的连线状况; -v或--verbose:显示指令执行过程; -V或--version:显示版本信息; -w或--raw:显示RAW传输协议的连线状况; -x或--unix:此参数的效果和指定"-A unix"参数相同; --ip或--inet:此参数的效果和指定"-A inet"参数相同。
nicstat
可以打印出网卡的每秒流入流出量,每秒发送接收的数据包数量
mpstat
mpstat是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况。 mpstat [-P {|ALL}] [internal [count]] 参数 解释 -P {|ALL} 表示监控哪个CPU, cpu在[0,cpu个数-1]中取值 internal 相邻的两次采样的间隔时间、 count 采样的次数,count只能和delay一起使用 当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有interval时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个interval时间段的平均信息。
输出
mpstat -P ALL Linux 3.13.0-86-generic (iZm5efk9snim7x48j1lxwsZ) 05/10/2017 _x86_64_ (4 CPU) 12:25:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 12:25:49 PM all 0.27 0.00 0.11 0.01 0.00 0.00 0.00 0.00 0.00 99.61 12:25:49 PM 0 0.29 0.00 0.11 0.02 0.00 0.00 0.00 0.00 0.00 99.58 12:25:49 PM 1 0.25 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.65 12:25:49 PM 2 0.28 0.00 0.11 0.02 0.00 0.00 0.00 0.00 0.00 99.59 12:25:49 PM 3 0.27 0.00 0.11 0.00 0.00 0.00 0.00 0.00 0.00 99.62
字段含义
%user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100 %nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100 %sys 在internal时间段里,内核时间(%) (system/total)*100 %iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100 %irq 在internal时间段里,硬中断时间(%) (irq/total)*100 %soft 在internal时间段里,软中断时间(%) (softirq/total)*100 %idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100
pidstat
可以用来监控单个进程,也可以监控批量进程,查看cpu时间情况,内存使用情况,磁盘使用情况
pidstat -r -u -d -v -w -l -p 17779 [可选参数每次打印间隔时间(秒)] [可选参数一共监控多少次] Linux 3.13.0-86-generic (iZm5efk9snim7x48j1lxwsZ) 05/11/2017 _x86_64_ (4 CPU) 05:48:11 PM UID PID %usr %system %guest %CPU CPU Command 05:48:11 PM 1000 17779 0.02 0.01 0.00 0.03 3 java -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=n -Djetty.port=9999 -jar start.jar 05:48:11 PM UID PID minflt/s majflt/s VSZ RSS %MEM Command 05:48:11 PM 1000 17779 0.17 0.00 7953816 1535300 9.34 java -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=n -Djetty.port=9999 -jar start.jar 05:48:11 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s Command 05:48:11 PM 1000 17779 0.00 0.13 0.00 java -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=n -Djetty.port=9999 -jar start.jar 05:48:11 PM UID PID cswch/s nvcswch/s Command 05:48:11 PM 1000 17779 0.00 0.00 java -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=n -Djetty.port=9999 -jar start.jar 05:48:11 PM UID PID threads fd-nr Command 05:48:11 PM 1000 17779 32 155 java -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=n -Djetty.port=9999 -jar start.jar
字段
-l 显示命令相信信息 -d 显示磁盘信息 -r 显示内存信息 -u 显示cpu信息 -v 显示内核信息 -w 显示交换区信息 cpu相关 %usr - 当在用户层执行(应用程序)时这个任务的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。 %system - 这个任务在系统层使用时的cpu使用率。 %guest - 任务花费在虚拟机上的cpu使用率(运行在虚拟处理器)。 %CPU - 任务总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。 CPU - 正在运行这个任务的处理器编号。 Command - 这个任务的命令名称。 磁盘相关 kB_rd/s - 任务从硬盘上的读取速度(kb) kB_wr/s - 任务向硬盘中的写入速度(kb) kB_ccwr/s - 任务写入磁盘被取消的速率(kb) 内存相关 minflt/s - 从内存中加载数据时每秒出现的小的错误的数目,这些不要求从磁盘载入内存页面。 majflt/s - 从内存中加载数据时每秒出现的较大错误的数目,这些要求从磁盘载入内存页面。 VSZ - 虚拟容量:整个进程的虚拟内存使用(kb) RSS - 长期内存使用:任务的不可交换物理内存的使用量(kb)
vmstat
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况
vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 2356068 293168 4153392 0 0 0 5 1 2 0 0 100 0 0 0 0 0 2356060 293168 4153392 0 0 0 0 851 1630 0 0 100 0 0 0 0 0 2356060 293168 4153392 0 0 0 0 867 1629 1 0 99 0 0 0 0 0 2356060 293168 4153392 0 0 0 0 812 1563 0 0 100 0 0 0 0 0 2356060 293168 4153392 0 0 0 0 859 1712 0 0 100 0 0
字段
r 表示运行队列 b 表示阻塞的进程 swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了 free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。 buff 写缓冲大小 cache 读缓冲大小 si 每秒从磁盘读入交换区的大小 so 每秒从交换区存写入磁盘的大小 bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备 bo 块设备每秒发送的块数量 in 每秒CPU的中断次数,包括时间中断 cs 每秒上下文切换次数,这个值要越小越好,太大了,要考虑调低线程或者进程的数目 us 用户CPU时间 sy 系统CPU时间,如果太高,表示系统调用时间长如IO操作频繁。 id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。 wt 等待IO CPU时间。
lsof
lsof abc.txt 显示开启文件abc.txt的进程 lsof -c abc 显示abc进程现在打开的文件 lsof -c -p 1234 列出进程号为1234的进程所打开的文件 lsof -g gid 显示归属gid的进程情况 lsof +d /usr/local/ 显示目录下被进程开启的文件 lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长 lsof -d 4 显示使用fd为4的进程 lsof -i 用以显示符合条件的进程情况 lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 46 --> IPv4 or IPv6 protocol --> TCP or UDP hostname --> Internet host name hostaddr --> IPv4地址 service --> /etc/service中的 service name (可以不止一个) port --> 端口号 (可以不止一个)
字段
COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称
此外还有其他 ls 命令
lscpu
lspci
tcpdump
#监控8080端口 tcpdump -i eth0 port 8080 #监控源主机是192.168.1.33 tcpdump -i eth0 src host 192.168.1.33 #打印相信输出 tcpdump -i eth0 src port 8080 -X #监控发送端口是8080 并且目标端口是9999 或者 (源地址是192.168.186.131或者 目标 #地址是192.168.186.123) tcpdump -i eth0 src port 8080 and dst port 9999 or \( src host 192.168.186.131 and dst host 192.168.186.123 \)
ss
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息.
它的性能比netstat好很多,服务器负载高的时候可以选择ss
ss -lptu
参数
ss -l 显示本地打开的所有端口 ss -pl 显示每个进程具体打开的socket ss -t -a 显示所有tcp socket ss -u -a 显示所有的UDP Socekt ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接 ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接 ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程 ss -s 列出当前socket详细信息:
sar
参数说明
-A 等价于 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL -b 显示I/O和传送速率的统计信息 -B 输出内存页面的统计信息 -c 输出进程统计信息,每秒创建的进程数 -d 输出每一个块设备的活动信息 -i interval 指定间隔时长,单位为秒 -p 显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np -q 输出进程队列长度和平均负载状态统计信息 -r 输出内存和交换空间的统计信息 -R 输出内存页面的统计信息 -t 读取 /var/log/sa/saDD 的数据时显示其中记录的原始时间,如果没有这个参数使用用户的本地时间 -u 输出CPU使用情况的统计信息 -v 输出inode、文件和其他内核表的统计信息 -V 输出版本号信息 -w 输出系统交换活动信息 -W 输出系统交换的统计信息 -y 输出TTY设备的活动信息 -n {DEV|EDEV|NFS|NFSD|SOCK|ALL} 分析输出网络设备状态统计信息。 DEV 报告网络设备的统计信息 EDEV 报告网络设备的错误统计信息 NFS 报告 NFS 客户端的活动统计信息 NFSD 报告 NFS 服务器的活动统计信息 SOCK 报告网络套接字(sockets)的使用统计信息 ALL 报告所有类型的网络活动统计信息 -x {pid|SELF|ALL} 输出指定进程的统计信息。 pid 用 pid 指定特定的进程 SELF 表示 sar 自身 ALL 表示所有进程 -X {pid|SELF|ALL} 输出指定进程的子进程的统计信息 -I {irq|SUM|ALL|XALL} 输出指定中断的统计信息。 irq 指定中断号 SUM 指定输出每秒接收到的中断总数 ALL 指定输出前16个中断 XALL 指定输出全部的中断信息 -P {cpu|ALL} 输出指定 CPU 的统计信息 -o filename 将输出信息保存到文件 filename -f filename 从文件 filename 读取数据信息。filename 是使用-o 选项时生成的文件。 -s hh:mm:ss 指定输出统计数据的起始时间 -e hh:mm:ss 指定输出统计数据的截至时间,默认为18:00:00
1.输出CPU使用情况的统计信息
sar -u Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM CPU %user %nice %system %iowait %steal %idle 12:10:01 AM all 0.02 0.00 0.14 0.01 0.00 99.84 12:20:01 AM all 0.02 0.00 0.12 0.01 0.00 99.86 12:30:01 AM all 0.01 0.00 0.12 0.01 0.00 99.86 Average: all 0.03 0.00 0.13 0.01 0.00 99.84
输出项说明:
CPU | all 表示统计信息为所有 CPU 的平均值。 |
%user | 显示在用户级别(application)运行使用 CPU 总时间的百分比。 |
%nice | 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。 |
%system | 在核心级别(kernel)运行所使用 CPU 总时间的百分比。 |
%iowait | 显示用于等待I/O操作占用 CPU 总时间的百分比。 |
%steal | 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 |
%idle | 显示 CPU 空闲时间占用 CPU 总时间的百分比。 |
2.显示I/O和传送速率的统计信息
sar -b Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM tps rtps wtps bread/s bwrtn/s 12:10:01 AM 1.58 0.00 1.58 0.00 16.71 12:20:01 AM 1.09 0.00 1.09 0.00 10.85 12:30:01 AM 1.08 0.00 1.08 0.00 10.74 Average: 1.24 0.00 1.24 0.00 12.70
输出项说明:
tps | 每秒钟物理设备的 I/O 传输总量 |
rtps | 每秒钟从物理设备读入的数据总量 |
wtps | 每秒钟向物理设备写入的数据总量 |
bread/s | 每秒钟从物理设备读入的数据量,单位为 块/s |
bwrtn/s | 每秒钟向物理设备写入的数据量,单位为 块/s |
3.输出内存页面的统计信息
sar -B Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM pgpgin/s pgpgout/s fault/s majflt/s 12:10:01 AM 0.00 4.17 9.74 0.00 12:20:01 AM 0.00 2.71 2.24 0.00 12:30:01 AM 0.00 2.69 2.25 0.00 Average: 0.00 3.17 4.07 0.00
输出项说明:
pgpgin/s | 每秒钟从磁盘读入的系统页面的 KB 总数 |
pgpgout/s | 每秒钟向磁盘写出的系统页面的 KB 总数 |
fault/s | 系统每秒产生的页面失效(major + minor)数量 |
majflt/s | 系统每秒产生的页面失效(major)数量 |
4.输出每秒创建的进程数的进程统计信息
sar -c Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM proc/s 12:10:01 AM 0.05 12:20:01 AM 0.03 12:30:01 AM 0.03 Average: 0.03
输出项说明:
proc/s | 每秒钟创建的进程数 |
5.输出网络设备状态的统计信息
sar -n EDEV |egrep 'eth0|IFACE' 12:00:01 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s 12:10:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:20:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 12:30:01 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 Average: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
输出项说明:
IFACE | 网络设备名 |
rxerr/s | 每秒接收的坏包总数 |
txerr/s | 传输包时每秒发生错误的总数 |
coll/s | 传输包时每秒发生冲突(collision)的总数 |
rxdrop/s | 接收包时,由于缺乏缓存,每秒丢弃(drop)包的数量 |
txdrop/s | 传输包时,由于缺乏缓存,每秒丢弃(drop)包的数量 |
txcarr/s | 传输包时,每秒发生的传输错误(carrier-error)的数量 |
rxfram/s | 接收包时,每秒发生帧校验错误(frame alignment error)的数量 |
rxfifo/s | 接收包时,每秒发生队列(FIFO)一出错误的数量 |
txfifo/s | 传输包时,每秒发生队列(FIFO)一出错误的数量 |
6.输出进程队列长度和平均负载状态统计信息
sar -q Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:10:01 AM 0 85 0.02 0.01 0.00 12:20:01 AM 0 85 0.01 0.00 0.00 12:30:01 AM 0 85 0.03 0.01 0.00 Average: 0 85 0.01 0.00 0.00
输出项说明:
runq-sz | 运行队列的长度(等待运行的进程数) |
plist-sz | 进程列表中进程(processes)和线程(threads)的数量 |
ldavg-1 | 最后1分钟的系统平均负载(System load average) |
ldavg-5 | 过去5分钟的系统平均负载 |
ldavg-15 | 过去15分钟的系统平均负载 |
7.输出内存和交换空间的统计信息
sar -r Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 12:10:01 AM 262068 253408 49.16 43884 156456 1048568 0 0.00 0 12:20:01 AM 261572 253904 49.26 44580 156448 1048568 0 0.00 0 12:30:01 AM 260704 254772 49.42 45124 156472 1048568 0 0.00 0 Average: 259551 255925 49.65 46453 156470 1048568 0 0.00 0
输出项说明:
kbmemfree | 可用的空闲内存数量,单位为 KB |
kbmemused | 已使用的内存数量(不包含内核使用的内存),单位为 KB |
%memused | 已使用内存的百分数 |
kbbuffers | 内核缓冲区(buffer)使用的内存数量,单位为 KB |
kbcached | 内核高速缓存(cache)数据使用的内存数量,单位为 KB |
kbswpfree | 可用的空闲交换空间数量,单位为 KB |
kbswpused | 已使用的交换空间数量,单位为 KB |
%swpused | 已使用交换空间的百分数 |
kbswpcad | 交换空间的高速缓存使用的内存数量 |
8.输出内存页面的统计信息
sar -R Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM frmpg/s bufpg/s campg/s 12:10:01 AM -0.10 0.23 0.01 12:20:01 AM -0.21 0.29 -0.00 12:30:01 AM -0.36 0.23 0.01 Average: -0.21 0.22 0.00
输出项说明:
frmpg/s | 每秒系统中空闲的内存页面(memory page freed)数量 |
bufpg/s | 每秒系统中用作缓冲区(buffer)的附加内存页面(additional memory page)数量 |
campg/s | 每秒系统中高速缓存的附加内存页面(additional memory pages cached)数量 |
9.输出inode、文件和其他内核表的信息
sar -v Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM dentunusd file-sz inode-sz super-sz %super-sz dquot-sz %dquot-sz rtsig-sz %rtsig-sz 12:10:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00 12:20:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00 12:30:01 AM 7253 576 5126 0 0.00 0 0.00 0 0.00 Average: 7253 589 5125 0 0.00 0 0.00 0 0.00
输出项说明:
dentunusd | 目录高速缓存中未被使用的条目数量 |
file-sz | 文件句柄(file handle)的使用数量 |
inode-sz | i节点句柄(inode handle)的使用数量 |
super-sz | 由内核分配的超级块句柄(super block handle)数量 |
%super-sz | 已分配的超级块句柄占总超级块句柄的百分比 |
dquot-sz | 已经分配的磁盘限额条目数量 |
%dquot-sz | 分配的磁盘限额条目数量占总磁盘限额条目的百分比 |
rtsig-sz | 已排队的 RT 信号的数量 |
%rtsig-sz | 已排队的 RT 信号占总 RT 信号的百分比 |
10.输出系统交换活动信息
sar -w Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM cswch/s 12:10:01 AM 44.74 12:20:01 AM 44.41 12:30:01 AM 44.41 Average: 44.50
输出项说明:
cswch/s | 每秒的系统上下文切换数量 |
11.输出系统交换的统计信息
sar -W Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM pswpin/s pswpout/s 12:10:01 AM 0.00 0.00 12:20:01 AM 0.00 0.00 12:30:01 AM 0.00 0.00 Average: 0.00 0.00
输出项说明:
pswpin/s | 每秒系统换入的交换页面(swap page)数量 |
pswpout/s | 每秒系统换出的交换页面(swap page)数量 |
12.输出TTY设备的活动信息
sar -y Linux 2.6.18-53.el5 (cnetos5) 01/22/2008 12:00:01 AM TTY rcvin/s xmtin/s framerr/s prtyerr/s brk/s ovrun/s 12:10:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 12:10:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 12:20:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 12:20:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 12:30:01 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 12:30:01 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 ……………… Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 Average: 1 0.00 0.00 0.00 0.00 0.00 0.00
输出项说明:
TTY | TTY 串行设备号 |
rcvin/s | 每秒接收的中断数量 |
xmtin/s | 每秒传送的中断数量 |
framerr/s | 每秒发生的帧错误数(frame error)量 |
prtyerr/s | 每秒发生的奇偶校验错误(parity error)数量 |
brk/s | 每秒发生的暂停(break)数量 |
ovrun/s | 每秒发生的溢出错误(overrun error)数量 |
13.时间段输出
#第三天7点到10点 IO和传输速率相关信息 sar -b -s 07:00:00 -e 10:00:00 -f /var/log/sa/sa03 #第三天7点到10点 eth0网卡的流量信息 sar -n DEV -s 07:00:00 -e 10:00:00 -f /var/log/sa/sa03 | egrep 'eth0|IFACE' #第三天7点到10点 进程队列长度和平级负载状态统计信息 sar -q -s 07:00:00 -e 10:00:00 -f /var/log/sa/sa03
参考
linux内存管理2:内存映射和需求分页(英文名字:demand Paging,又叫:缺页中断)
相关推荐
内容概要:本文详细介绍了COMSOL软件中三种常用的焊接热源模型:双椭球热源、高斯旋转体热源和柱状体热源。双椭球热源适用于电弧焊,通过将热源分为前后两个半椭球,能够更好地模拟熔池的温度梯度变化;高斯旋转体热源适合激光焊,采用旋转对称的高斯函数描述热流密度分布;柱状体热源则用于电阻焊等均匀加热场景,尽管物理上不够精确,但计算速度快。文中还提供了具体的MATLAB代码实现,并分享了参数调试的经验和注意事项。 适合人群:从事焊接仿真研究的技术人员、研究生以及相关领域的研究人员。 使用场景及目标:帮助用户选择合适的热源模型进行焊接仿真,确保仿真结果的准确性。同时,提供实用的参数调试技巧,避免常见错误,提高仿真的效率和可靠性。 其他说明:强调了不同热源模型的特点及其适用场景,提醒用户根据实际情况灵活调整参数,并结合实验数据进行验证。
带你去认识RFID技术
内容概要:本文深入探讨了开关磁阻电机(SRM)的仿真方法和技术细节,涵盖了从Matlab仿真模型搭建到Maxwell有限元仿真的全过程。首先介绍了SRM的基本参数设置及其在Simulink中的电磁关系建模,接着详细讲解了两种常见的控制策略:电流斩波控制(CCC)和角度位置控制(APC)。随后讨论了Maxwell中SRM几何结构的精确建模、材料属性设置及网格划分技巧,并阐述了转矩分配函数(TSF)和直接转矩控制(DTC)的具体实现。最后分享了一些实用的仿真优化建议,如响应面法和遗传算法的应用。 适合人群:从事电机控制系统设计的研发工程师、高校师生及相关领域的研究人员。 使用场景及目标:适用于希望深入了解SRM工作原理并掌握其仿真技能的专业人士;旨在帮助读者构建高效的SRM仿真平台,提高电机性能,降低开发成本。 其他说明:文中提供了大量MATLAB代码片段和Maxwell建模指导,便于读者理解和实践。此外,还提到了许多实际操作中的注意事项和常见错误,有助于避免不必要的弯路。
一键打开或关闭Windows 10 Enterprise G 麦克风或摄像头
https://github.com/AlfredXiangWu/LightCNN 预训练模型
内容概要:本文深入探讨了电-气-热综合能源系统的节点能价计算方法,重点介绍了如何将碳排放成本纳入系统优化中。作者通过复现论文中的模型,展示了电、气、热潮流的耦合实现,并提出了以综合能源系统总运行成本和碳排放成本最小为目标函数的优化调度模型。文中详细解释了模型的关键组成部分,如目标函数的设计、多能流优化以及节点能价的计算方法。通过多个实例验证,证明了该模型的有效性和通用性。 适合人群:对综合能源系统建模感兴趣的科研人员和技术开发者,尤其是希望深入了解电-气-热耦合系统及碳排放成本优化的人群。 使用场景及目标:适用于需要进行综合能源系统优化的研究和工程项目,旨在降低碳排放并优化能源系统的总成本。具体应用场景包括但不限于电力系统、天然气系统和热力系统的联合优化调度。 其他说明:文章不仅提供了详细的代码实现和模型解析,还讨论了模型的实际应用效果和潜在改进方向。通过具体的案例分析,展示了模型在不同规模和类型的能源系统中的表现,为后续研究提供了宝贵的参考。
前端分析-2023071100789s+12
内容概要:本文详细介绍了如何在MATLAB环境中构建一个结合卷积神经网络(CNN)、长短时记忆网络(LSTM)以及SE注意力机制的混合模型用于时序数据分类。首先进行数据预处理,确保输入数据符合模型要求。接着,通过CNN提取空间特征,再由SE模块评估特征的重要性,最后交给LSTM处理时间序列信息。文中提供了完整的代码实现步骤,并针对可能出现的问题给出了优化建议。实验结果显示,在EEG信号分类和其他工业应用场景中,该模型相较于传统方法能够提高分类精度。 适合人群:有一定机器学习基础并对深度学习感兴趣的科研工作者和技术开发者。 使用场景及目标:适用于需要处理带有时间和空间相关性的多维时序数据的任务,如医疗健康监测、金融趋势预测、机械故障预警等领域。目的是为了获得更高的分类准确性,同时增强模型的可解释性和鲁棒性。 其他说明:作者强调了在实际应用过程中应注意的一些细节,例如正确设置输入数据的维度、选择合适的超参数(如学习率、批大小)、以及考虑是否添加正则化项来避免过拟合等问题。此外,还提到了一些实用的小贴士,像使用动态学习率调度器加快收敛速度等。
内容概要:本文介绍了利用Matlab/Simulink进行风电调频与风储联合仿真的方法。针对传统时域仿真耗时的问题,提出了一种基于频域模型的方法,实现了快速高效的仿真。文中详细描述了虚拟惯性控制和储能下垂控制的具体实现方式及其对系统频率稳定性的影响。通过频域模型,将复杂的微分方程转化为简单的矩阵运算,显著提高了仿真速度。同时,加入了SOC(荷电状态)管理和滑动平均滤波,确保了储能系统的安全可靠运行。实验结果显示,在相同的硬件条件下,频域模型的仿真速度比传统时域模型快了近十倍,且频率偏差明显减小。 适合人群:从事电力系统仿真、风电调频研究的专业人士和技术爱好者。 使用场景及目标:适用于需要快速验证风电调频控制策略的研究人员和工程师。主要目标是在保证仿真精度的同时大幅提高仿真速度,为风电并网提供技术支持。 其他说明:本文提供的模型专注于调频性能分析,不涉及风机内部动态细节。对于更详细的风机模型,作者提供了进一步的参考资料。
内容概要:本文探讨了小模型在AI行业中逐渐展现出与大模型相媲美性能的现象,分析了大模型和小模型各自的优劣势。大模型虽然在准确性、通用性上有优势,但也面临高成本、低效性、隐私保护等问题;小模型则以高效性、低成本、强隐私保护和高可解释性等优点崭露头角。文中列举了微软Phi-3系列、Google Gemma、Anthropic Claude 3 Haiku和Meta Llama 3等小模型的成功案例,展示了小模型在不同领域的应用潜力。随着技术进步、应用需求增长及政策推动,AI行业正逐步向轻量化转型,但仍需面对性能瓶颈、数据获取等挑战。文章最后展望了小模型与大模型结合的发展趋势,并强调了AI技术发展中伦理和法律问题的重要性。; 适合人群:对AI技术发展趋势感兴趣的从业者、研究人员、企业决策者以及相关领域的学生。; 使用场景及目标:①了解AI行业中大模型与小模型的特点和发展现状;②掌握小模型在各个领域的具体应用场景及其优势;③思考AI技术轻量化转型对企业和社会的影响。; 其他说明:文章指出AI行业的轻量化时代已经悄然来临,小模型凭借其独特的优势将在更多领域发挥作用。同时提醒读者关注AI技术发展中的伦理和法律问题,鼓励大家积极参与到这一变革中来。
内容概要:本文详细介绍了基于西门子S7-1200 PLC的物料分拣系统的设计与仿真。系统采用三个光电传感器进行物料检测和颜色识别,两个推料气缸用于分拣,以及一个传送带电机驱动物料传输。核心逻辑由梯形图和SCL语言编写,涵盖初始化、传感器处理、气缸动作控制和WinCC动画同步等功能。文中强调了急停连锁、颜色传感器信号保持时间和气缸动作延迟等关键细节,并提供了详细的代码片段和调试建议。此外,还介绍了WinCC动画的实现方法,确保仿真效果逼真。 适合人群:初学者和有一定经验的PLC程序员,尤其是希望深入了解PLC控制系统设计和仿真的技术人员。 使用场景及目标:①帮助读者掌握PLC编程的基本技能,特别是S7-1200系列PLC的应用;②提供完整的物料分拣系统仿真案例,便于理解和实践;③通过WinCC动画展示,增强对工业自动化系统的直观认识。 其他说明:本文提供的程序包可在GitHub上获取,建议使用TIA Portal V17打开。仿真过程中应注意变量绑定和时间参数的调整,以确保系统稳定性和动画同步。
内容概要:本文详细介绍了基于邻域粗糙集(NRS)、引力搜索算法(GSA)和支持向量机(SVM)的变压器故障诊断方法。首先,邻域粗糙集用于特征约简,减少数据维度并提高后续算法的效率。其次,引力搜索算法用于优化SVM的参数,找到最优的惩罚因子C和核函数参数gamma。最后,使用优化后的SVM对变压器故障进行分类诊断。这种方法显著提升了变压器故障诊断的准确性和效率,为电力系统的稳定运行提供了有力保障。 适合人群:从事电力系统维护、数据分析以及机器学习领域的研究人员和技术人员。 使用场景及目标:适用于需要高精度变压器故障诊断的电力系统,旨在提高故障检测的准确性,减少误报率,确保电力系统的安全稳定运行。 其他说明:文中提供了具体的Python代码示例,帮助读者更好地理解和应用这些技术。同时强调了特征工程和参数优化的重要性,指出不同的数据分布可能需要调整相关参数以获得最佳效果。
内容概要:本文详细介绍了使用MATLAB 2019b进行双馈风机的最大功率追踪(MPPT)、变速恒频以及直流母线稳压控制仿真的方法和技巧。首先,文章展示了双馈电机通过背靠背变流器连接电网的整体模型架构,分别阐述了转子侧和网侧变流器的功能及其核心控制算法。对于MPPT部分,采用了经典爬山法,并讨论了功率变化方向判断周期和步长参数的影响。接着,深入探讨了变速恒频控制中转子侧变流器的作用,强调了PI参数的选择和解耦补偿的重要性。最后,针对直流母线稳压控制,提出了梯形积分法和前馈补偿的应用,确保电压波动最小化。此外,文中还提供了多个调试技巧和注意事项,如仿真步长、PWM生成、锁相环参数调整等。 适合人群:从事风电领域研究的技术人员、研究生及以上学历的学生,尤其是那些希望深入了解双馈风机控制原理和MATLAB仿真应用的人群。 使用场景及目标:适用于风电系统的开发与优化项目,旨在提高双馈风机的效率和稳定性。具体目标包括实现高效的MPPT算法、稳定的变速恒频控制以及可靠的直流母线稳压机制。 其他说明:文中不仅包含了详细的数学公式和代码片段,还有丰富的实践经验分享,帮助读者更好地理解和解决实际工程中的问题。同时,作者提醒了一些常见的仿真错误,如变流器开关频率设置不当、PWM模块配置失误等,有助于初学者避免类似的问题。
内容概要:本文详细介绍了如何使用Matlab/Simulink构建300kW直驱永磁同步电机的风电并网仿真模型。首先,文章讲解了永磁同步电机的关键参数配置,如定子电阻、d轴和q轴电感、磁链强度以及极对数等。接着,深入探讨了逆变器控制部分的设计,包括锁相环(PLL)的参数设置、双闭环控制结构中的电流环PI参数调整方法。此外,还讨论了并网瞬间的波形处理技巧,如软启动逻辑和直流母线电压的平稳爬升。文中提供了多个调试秘诀,如直流母线电容的选择、坐标变换模块的正确使用等。最后,强调了仿真过程中需要重点关注的三个信号:发电机转矩脉动、网侧电流谐波含量和直流母线电压纹波。 适合人群:具有一定电力电子和控制系统基础知识的研究人员、工程师和技术爱好者。 使用场景及目标:适用于希望深入了解风电并网系统的原理和实现方式的技术人员。通过构建和优化仿真模型,可以更好地掌握永磁同步电机的工作机制及其在风电领域的应用。 阅读建议:读者可以在阅读过程中跟随作者逐步搭建仿真模型,同时关注各个模块的具体参数设置和调试技巧,以便更好地理解和掌握相关知识点。
项目功能说明 促销管理:零售出库、零售退货 采购管理:采购订单、采购入库、采购退货 销售管理:销售订单、物流信息、销售退货 仓库管理:其它入库、其它出库、调拨出库、组装单、拆卸单 成本核算:收入单、支出单、收款单、付款单、转账单、收预付款 药品溯源:库存状况、账户统计、进货统计、销售统计、入库明细、出库明细、入库汇总、出库汇总、客户对账、供应商对账、库存预警 药品管理:药品类别、药品信息、计量单位、序列号 基本资料:供应商信息、客户信息、会员信息、仓库信息、收支项目、结算账户、经手人管理 系统管理:角色管理、功能管理、机构管理、用户管理、日志管理、系统配置、商品属性、插件管理
内容概要:本文介绍了基于梯度下降的改进自适应短时傅里叶变换(STFT)方法,并展示了其在Jupyter Notebook中的具体实现。传统的STFT由于固定窗口长度,在处理非平稳信号时存在局限性。改进的方法通过梯度下降策略自适应调整窗口参数,从而提高时频分辨率。文中详细解释了算法的工作原理,包括信号生成、窗函数设计、损失函数选择等方面,并给出了具体的Python代码示例。此外,文章还讨论了该方法在多个领域的广泛应用,如金融时间序列、地震信号、机械振动信号、声发射信号、电压电流信号、语音信号、声信号和生理信号等。 适合人群:从事信号处理、数据分析及相关领域研究的专业人士,尤其是对时频分析感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要处理非平稳信号的研究和应用场景,旨在提高信号处理的精度和效率。具体目标包括但不限于:改善金融市场的预测能力、提升地震监测系统的准确性、增强机械设备故障诊断的效果、优化语音识别和合成的质量等。 其他说明:该方法不仅限于特定类型的信号,而是可以通过调整参数灵活应用于不同的信号类型。文中提供的代码可以在Jupyter Notebook环境中直接运行,便于实验和验证。
内容概要:本文详细介绍了VMD(变分模态分解)与NGO(北方苍鹰优化算法)结合形成的最优变分模态优化算法。该算法通过嵌套多种损失函数,尤其是包络熵,实现了对复合信号在频域上的最优拆分。文中不仅解释了算法的工作原理,还提供了具体的Python代码示例,展示了如何通过调整参数来优化信号拆分过程。此外,文章强调了该算法在特征工程领域的巨大价值,特别是在提高数据预测准确性方面的作用。通过实例演示,证明了VMD+NGO算法在处理非平稳信号、音频处理、图像处理等领域中的优越性能。 适合人群:从事信号处理、数据分析、机器学习等相关领域的研究人员和技术人员,尤其是那些希望深入了解并应用先进信号处理技术的人。 使用场景及目标:适用于需要从复杂复合信号中提取有用信息的各种应用场景,如工业设备状态监测、故障诊断、时间序列预测等。主要目标是提高信号处理的精度和效率,进而改善基于这些信号的预测模型的表现。 其他说明:文章提供了详细的代码片段和理论背景,有助于读者更好地理解和实施该算法。同时提醒读者注意某些实现细节,如参数的选择和优化策略的应用。
基于51单片机protues仿真的鱼缸环境监测系统(仿真图、源代码,AD原理图、流程图) 1、测量鱼缸水温、PH值、有害物质等,并显示 2、可以通过串口遥控控制制氧机和加热器的启停【没有自动控制功能】; 3、仿真图、源代码,AD原理图、流程图
内容概要:本文档《kotlin从入门到精通.pdf》详细介绍了Kotlin编程语言的核心概念和特性,内容涵盖了基本语法、类型系统、类与对象、继承、接口、泛型、扩展函数、委托属性、控制流、异常处理、注解、反射、动态类型等多个方面。文档不仅讲解了Kotlin的基本语法和特性,还深入探讨了其与Java和Scala的互操作性和对比。此外,文档还提供了关于如何在不同构建工具(如Maven、Ant、Gradle)中使用Kotlin的具体指导。 适合人群:适合有一定编程基础,特别是熟悉Java的开发人员,尤其是工作1-3年的研发人员。 使用场景及目标: 1. 学习Kotlin的基础语法和特性,了解其与Java的互操作性; 2. 理解Kotlin的高级特性,如扩展函数、委托属性、内联函数等; 3. 掌握Kotlin在不同构建工具中的配置和使用方法; 4. 比较Kotlin与其他语言(如Java、Scala)的优缺点,帮助开发者做出合适的技术选型。 阅读建议:由于Kotlin与Java有着良好的互操作性,且文档内容详尽,建议读者结合实际项目需求逐步学习。对于初学者,可以从基本语法和类型系统入手,逐步深入到高级特性和构建工具的使用。对于有经验的开发者,可以直接跳转到感兴趣的章节,如扩展函数、委托属性等,以提高学习效率。
应用交付之BIG-IP+LTM篇-Beta版