Linux系统性能相关知识学习

目录

0.Windows中性能相关的内容  

1.网络通信

2.CPU・内存

3.1.循环往指定目录放入文件  ( 文件会被Splunk引擎传送走、并删除。 如果文件生成的过快,就会产生滞留)

3.2.不断监视,指定目录,文件个数 ( 查看此目录下, 文件是否有滞留发送)

4.工具与命令

4.1.Nmon   ---- 【工具】

・分析工具

・安装 nmon

4.2.wmstat

5.splunk  

15.daemon 守护进程

16.ps -aux | grep -e splunk -e USER  // 查看进程PID

17.top

     ・top -p PID

 ・Top命令之后,显示的结果中,每一行的含义    

18.free

19.交换空间(swap space)

20.free 与 available

21.buff/cache

22.更多命令

23.通过网页,对系统访问时,如何判断影响

■进程调度策略

・AIX 操作系统支持以下几种进程调度策略:

・AIX 操作系统默认进程调度策略:

・如何查看AIX系统 当前的性能调度策略

■batch性能提高

・提高启动时,堆内存参数



・工作中经常使用的单词

工作中使用到的单词(软件开发)_sun0322-CSDN博客

・Linux其他常用命令

Unix_Linux_常用命令总结_sun0322-CSDN博客

---

0.Windows中性能相关的内容  

1.网络通信

while true; do TIME=`date "+%H:%M:%S"`; RX=`ifconfig ens33 | grep "RX packets" | awk '{print $5}'`; TX=`ifconfig ens33 | grep "TX packets" | awk '{print $5}'`; echo "${TIME},${RX},${TX}";sleep 3; done

Excel中的图表制作(一) -各种商品销售量显示_sun0322-CSDN博客

2.CPU・内存

while true; do TIME=`date "+%H:%M:%S"`; CPU=`ps -aux | grep mysqld | grep -v grep | awk '{print $3}'`; MEM=`ps -aux | grep mysqld | grep -v grep | awk '{print $3}'`;echo "${TIME},${CPU},${MEM}";sleep 3; done

3.1.循环往指定目录放入文件  ( 文件会被Splunk引擎传送走、并删除。 如果文件生成的过快,就会产生滞留)

cp -p /home/sxz001/test001.txt /home/sxz001/testlog/test`date "+%Y%m%d%H%M%S"`.log

for ((c=1;c<=5;c++)); do cp -p /home/sxz001/test001.txt /home/sxz001/testlog/test`date "+%Y%m%d%H%M%S"`.log; sleep 3; done

遇到的坑:做了一个文件格式是二进制的log文件(file 命令查看,是data)

Linux中的file命令_sun0322-CSDN博客

====

3.2.不断监视,指定目录,文件个数 ( 查看此目录下, 文件是否有滞留发送)

while true ;do  TIME=`date "+%H:%M:%S"`; FILECOUONT=`ls -l /home/sxz001/testlog//test*.log | wc -l`  ; echo "${TIME},${FILECOUONT}" ; sleep 3; done

==

4.工具与命令

4.1.Nmon   ---- 【工具】

・分析工具

   分析   AIX与各种Linux  系统性能的工具。

nmon_analyser: A free tool for producing AIX performance reports - IBM Developer

==============

xxx.nmon文件需要此工具进行解析

-----点击按钮,选择加载nmon文件

========

https://developer.ibm.com/articles/au-nmon_analyser/

安装之后,会在服务器生成【serverNmae_yyyyMMdd_000.nmon】文件。

生成的位置,可以通过使用下面命令得知

ps -elf | grep nmon

通过命令执行的参数,可以得知nmon文件的位置!

----

之后,通过下载的文件,导入nmon文件,可以得到机器整体的性能分析!

・安装 nmon

Nmon使用_nmon监控工具使用方法-CSDN博客

==============

4.2.wmstat

用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况。
性能监控命令vmstat详解【杭州多测师】【杭州多测师_王sir】-CSDN博客

r:在运行队列中等待的进程数
b:在等待IO的进程数
cs:每秒的上下文切换的次数
us:用户进程使用的CPU时间(%)
sy:系统进程使用的CPU时间(%)
id:CPU空闲时间(%)
wa:等待IO所消耗的CPU时间(%)

===

5.splunk  

   ・【类    别】机器数据的引擎 

   ・【性    质】快速移动型计算机数据 

   ・【功    能】 日志聚合功能、搜索功能等

15.daemon 守护进程

系统为了某些功能必须要提供一些服务(不论是系统本身还是网络方面),这个服务就是service.实现这个service的程序称为daemon.

  

daemon主要分为两类

  stand alone:此daemon可以自行单独启动服务

  super daemon:一个特殊的daemon来同一管理

  这个特殊的daemon被称为super daemon ,即 xinetd.特点在于,当没有客户端的请求时,各项服务都是未启动的情况,等到有来自客户端的请求时,super daemon 才唤醒对应的服务。当客户端的请求结束后,被唤醒的这个服务也会关闭并释放系统资源。

  这两类 daemon 可以同时存在于内存中。




  文件 /etc/services 中存有端口号与服务的一一对应,不建议修改,除非要建设一个地下网站。

16.ps -aux | grep -e splunk -e USER  // 查看进程PID

    

17.top

     ・top -p PID

top - 13:51:37 up 1 day, 16:01,  2 users,  load average: 0.61, 0.45, 0.45
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
%Cpu(s): 10.1 us,  6.2 sy,  0.0 ni, 80.2 id,  3.5 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8144936 total,  4041064 free,   450600 used,  3653272 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  7387540 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
 29519 root      20   0 4051632 152344  18140 S  0.7  1.9   3:39.70 java

 ・Top命令之后,显示的结果中,每一行的含义    

 linux top命令查看内存CPU使用情况_xtggbmdk的博客-CSDN博客_linux top查看cpu使用率

■第一行:
    10:08:45 — 当前系统时间
    10 days, 3:05 — 系统已经运行了10天3小时5分钟(在这期间没有重启过)
    1 users — 当前有1个用户登录系统
    load average: 0.00, 0.00, 0.00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

  ※load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

■第二行:
    Tasks — 任务(进程),系统现在共有135个进程,其中处于运行中的有1个,134个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

■第三行:cpu状态
    0.3% us — 用户空间占用CPU的百分比。
    0.0% sy — 内核空间占用CPU的百分比。
    0.0% ni — 改变过优先级的进程占用CPU的百分比
    99.7% id — 空闲CPU百分比
    0.0% wa — IO等待占用CPU的百分比
    0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
    0.0% si — 软中断(Software Interrupts)占用CPU的百分比

 在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间,需要充充电了。

■第四行:内存状态
    3808060k total — 物理内存总量(4GB)
    3660048k used — 使用中的内存总量(3.6GB)
    148012k free — 空闲内存总量(148M)
    359760k buffers — 缓存的内存量 (359M)

■第五行:swap交换分区
    4184924k total — 交换区总量(4G)
    0k used — 使用的交换区总量(0M)
    4184924k free — 空闲交换区总量(4G)
    2483956k cached — 缓冲的交换区总量(2483M)

第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:148M+259M+2483M = 2990M。

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

■第六行是空行

■第七行以下:各进程(任务)的状态监控
    PID — 进程id
     USER — 进程所有者
    PR — 进程优先级
    NI — nice值。负值表示高优先级,正值表示低优先级
    VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
     RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
     SHR — 共享内存大小,单位kb
     S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU — 上次更新到现在的CPU时间占用百分比
    %MEM — 进程使用的物理内存百分比
    TIME+ — 进程使用的CPU时间总计,单位1/100秒
    COMMAND — 进程名称(命令名/命令行)

18.free

---

https://www.jb51.net/article/135410.htm

total 列显示系统总的可用物理内存和交换空间大小。
used 列显示已经被使用的物理内存和交换空间。
free 列显示还有多少物理内存和交换空间可用使用。
shared 列显示被共享使用的物理内存大小。
buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
available 列显示还可以被应用程序使用的物理内存大小。

Mem 行(第二行)是内存的使用情况。
Swap 行(第三行)是交换空间的使用情况。

---

-h, --human
              Show all output fields automatically scaled to shortest three digit unit and display the units of print out.  Following units are used.

                B = bytes
                K = kibibyte
                M = mebibyte
                G = gibibyte
                T = tebibyte
                P = pebibyte

19.交换空间(swap space)

swap space 是磁盘上的一块区域,可以是一个分区,
也可以是一个文件。
所以具体的实现可以是 swap 分区也可以是 swap 文件。当系统物理内存吃紧时,
Linux 会将内存中不常访问的数据保存到 swap 上,
这样系统就有更多的物理内存为各个进程服务,
而当系统需要访问 swap 上存储的内容时,
再将 swap 上的数据加载到内存中,这就是常说的换出和换入。
交换空间可以在一定程度上缓解内存不足的情况,
但是它需要读写磁盘数据,所以性能不是很高。


现在的机器一般都不太缺内存,
如果系统默认还是使用了 swap 是不是会拖累系统的性能?理论上是的,
但实际上可能性并不是很大。并且内核提供了一个叫做 swappiness 的参数,
用于配置需要将内存中不常用的数据移到 swap 中去的紧迫程度。
这个参数的取值范围是 0~100,0 告诉内核尽可能的不要将内存数据移到 swap 中,
也即只有在迫不得已的情况下才这么做,而 100 告诉内核只要有可能,
尽量的将内存中不常访问的数据移到 swap 中。在 ubuntu 系统中,
swappiness 的默认值是 60。如果我们觉着内存充足,
可以在 /etc/sysctl.conf 文件中设置 swappiness:

20.free 与 available

在 free 命令的输出中,有一个 free 列,
同时还有一个 available 列。这二者到底有何区别?
free 是真正尚未被使用的物理内存数量。至于 available 就比较有意思了,
它是从应用程序的角度看到的可用内存数量。Linux 内核为了提升磁盘操作的性能,
会消耗一部分内存去缓存磁盘数据,就是我们介绍的 buffer 和 cache。
所以对于内核来说,buffer 和 cache 都属于已经被使用的内存。
当应用程序需要内存时,如果没有足够的 free 内存可以用,
内核就会从 buffer 和 cache 中回收内存来满足应用程序的请求。
所以从应用程序的角度来说,available = free + buffer + cache。
请注意,这只是一个很理想的计算方式,实际中的数据往往有较大的误差。

21.buff/cache

shared:  被多个进程共享的内存;
buffers: 用于存放要输出到disk(块存储)的数据,
      在这里buff是指被OS buffer住的内存(written to disk);
cached:  存放从disk上读出的数据;buffer和cache是为了提高IO性能并由OS管理。
=======
・块:操作系统中文件系统的最小寻址单元,也叫 "文件块" 或 "I/O 块"。
・扇区:设备的最小寻址单元,也叫 "硬扇区" 或 "设备块"。

ーーー

扇区是设备的最小寻址单元,也叫 "硬扇区" 或 "设备块"。
块是操作系统中文件系统的最小寻址单元,也叫 "文件块" 或 "I/O 块"。
每个块包含一个或多个扇区,但大小不能超过一个页面,
所以一个页可以容纳一个或多个内存中的块。

当一个块被调入内存时,它要存储在一个缓冲区中。
每个缓冲区与一个块对应,它相当于是磁盘块在内存中的表示

22.更多命令

【Linux】一步一步学Linux系列教程汇总(更新中......)_嵌入式开发工程师---欢迎大家一起交流-CSDN博客_csdn dengjin

23.通过网页,对系统访问时,如何判断影响

Chrome浏览器 开发者工具中的 Performance_sun0322-CSDN博客

.。。。

==================

■进程调度策略

・AIX 操作系统支持以下几种进程调度策略:

AIX 操作系统支持以下几种进程调度策略:

  1. 先来先服务 (FCFS): 根据进程到达的顺序进行调度,先到达的进程先被执行。

  2. 最短作业优先 (SJF): 优先调度执行执行时间最短的进程。

  3. 最高优先权调度 (Priority Scheduling): 每个进程有一个优先级,调度器选择具有最高优先级的进程来执行。

  4. 轮转调度 (Round Robin): 每个进程被分配一个小的时间片,当时间片结束时,进程被重新放回到就绪队列中,然后调度器选择下一个进程来执行。

  5. 多级反馈队列调度 (Multilevel Feedback Queue): 将就绪队列分成多个级别,每个级别具有不同的时间片大小,进程根据其执行时间在不同级别队列之间移动。

这些是 AIX 操作系统中常见的进程调度策略,不同的调度策略适用于不同的应用场景和系统需求。

xx

・AIX 操作系统默认进程调度策略:

AIX 操作系统的默认进程调度策略是轮转调度(Round Robin)。在轮转调度中,每个进程被分配一个时间片,当时间片用完时,进程会被放回到就绪队列,然后调度器选择下一个就绪进程来执行。这种调度策略适用于多任务环境,并且能够有效地平衡各个进程的执行时间,确保公平性和响应性。如果需要更改默认的进程调度策略,AIX 操作系统也提供了相关的配置选项和工具来实现。

xx

・如何查看AIX系统 当前的性能调度策略

schedo -L

===========

■batch性能提高

・提高启动时,堆内存参数

JVM 提高 堆内存 大小 ,可以提高性能吗,为什么会提高性能?

++++GPT 回答

是的,提高JVM堆内存大小可以提高性能。

=====

堆内存是JVM中用于存储对象实例的区域,提高堆内存大小可以使JVM能够存储更多的对象实例,从而减少频繁的垃圾回收操作。这样可以减少程序的暂停时间,提高程序的响应速度和整体性能。

=====

此外,提高堆内存大小还可以减少内存碎片化,减少因为频繁的内存分配导致的性能损失。因此,合理提高JVM堆内存大小可以有效地提高程序的性能。

===

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值