zoukankan      html  css  js  c++  java
  • linux系统信息查询及相关概念

    1.查看机器可以插几根内存条:
    /sbin/lspci  -v 或dmesg 或  dmidecode(需要root)
    2.查看机器有几块盘,是否做raid:
    blkid 或 fdisk -l 或 sfdisk -s
    3.查看cpu信息
    less /etc/cpuinfo 或 dmidecode 或 dmesg
    4.查看raid信息
    厂商提供的管理工具 或 less /proc/mdstat 或 dmesg
    5.查看IO占用最高的进程
    iotop 或  dstat -M topio -d -M topbio 或 打开系统IO监控,用dmesg查看,具体步骤:
    # sysctl vm.block_dump=1 or # echo 1 > /proc/sys/vm/block_dump
    然后就可以通过 dmesg 就可以观察到各个进程 IO 活动的状况了(dmesg -c):
    6.硬盘分区,分区格式化,分区挂载(/etc/fstab)
    硬盘分区:fdisk
    分区格式化:mkfs.xxx(mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat)
    挂载分区:[mkdir xxx]mount xxx
    7.cpu上下文切换:
            如果可运行的线程数大于CPU的数量,那么OS最终会强行换出正在执行的线程,从而使其他线程能够使用CPU。这会引起上下文切换,它会保存当前运行线程的执行上下文,并重建新调入线程的执行上下文。
           切换上下文是要付出代价的;线程的调度需要操控OS和JVM中共享的数据结构。你的程序与OS、JVM使用相同的CPU;CPU在JVM和OS的代码花费越多时间,意味着用于你的程序的时间就越少。但是JVM和OS活动的花费并不是切换上下文开销的唯一来源。当一个新的线程被换入后,它所需要的数据可能不在当前处理器本地的缓存中,所以切换上下文会引起缓存缺失的小恐慌,因此线程在第一次调度的时候会运行得稍慢一些。即使有很多其他正在等待的线程,调度程序也会为每一个可运行的线程分配一个最小执行时间的定额。就是因为这个原因:它分期偿付切换上下文的开销,获得更多不中断的执行时间,从整体上提高了吞吐量(以损失响应性为代价)。
    CPU-上下文切换,运行队列和使用率
    8.cache 和 buffer的区别:
    cache是高速缓存,用于CPU和内存之间的缓冲;
    buffer是I/O缓存,用于内存和硬盘的缓冲

    cache最初用于cpu cache, 主要原因是cpu 与memory, 由于cpu快,memory跟不上,且有些值使用次数多,所以放入

    cache中,主要目的是,重复使用, 并且一级二级物理cache速度快,

    buffer 主要用于disk 与 memory, 主要是保护硬盘或减少网络传输的次数(内存数据表现dataSet).当然也可以提高速度(不会立即写入硬盘或直接从硬盘中读出的数据马上显示),重复使用,最初最主要的目的是保护disk,

    asp.net的cache有outputcahe与数据cache, 主要目的是 重复使用,提高速度,outputcache主要存储Reader后的页,一般是多次使用同一个HTML,建议不要varybyparam,不要存多version,

    数据cache,如dataSet, dataTable, 等

    @page buffer="true", 使用buffer,让buffer满后再显示读出或写入,(c中文件输出也是如此,主要目的是保护硬盘), 也可以提高下次的访问速度.   在client browse端表现是: true是一次性显示,要么不显示, 中间等, false是一次显示一些,
    这在网络输出也是如此表现.
    对于文件访问c中默认采用的是buffer = true, 这与asp.net一样,
    相当于Response.write();中当buffer满后输出,以减少网络的传输次数

    <%@ OutputCache Duration="60" VaryByParam="none"%>, 是将asp.net生成的HTML缓存起来,在指定的时间内不需要重新生成html, control.ascx.也有组件缓存(htmlCach)。 dataSet也是如此。DataCache,

    cache和buffer都是缓冲区, 在翻译上,cache翻译成高速缓冲区要好一点(因为主要是为下次访问加速), buffer翻译成缓冲区好点。都是缓冲的作用,可目的有点不同,主要是理解,不需要太咬文嚼字.

    Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于

    CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期, Cache中保存

    着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调

    用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1 Cache)

    和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现

    在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。

      Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据

    的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据

    时,速度快的设备的操作进程不发生间断。

      Free中的buffer和cache:(它们都是占用内存):

      buffer : 作为buffer cache的内存,是块设备的读写缓冲区

      cache: 作为page cache的内存, 文件系统的cache

      如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被

    cache住,那么磁盘的读IO bi会非常小。



  • 相关阅读:
    .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
    使用UI Automation实现自动化测试--1-4
    使用npm命令下载sass时出现Error: not found: python2
    CentOS上安装Python3
    解决electron打包时,下载超时导致失败
    FJ省队集训2021
    微信小程序自定义封装组件-showModal
    react性能优化
    认识react虚拟Dom
    前端FileReader读取文件信息
  • 原文地址:https://www.cnblogs.com/276815076/p/3878152.html
Copyright © 2011-2022 走看看