Linux服务器运行一段时间后,由于其内存管理机制,会将暂时不用的内存转为buff/cache,这样在程序使用到这一部分数据时,能够很快的取出,从而提高系统的运行效率,所以这也正是Linux内存管理中非常出色的一点,所以乍一看内存剩余的非常少,但是在程序真正需要内存空间时,Linux会将缓存让出给程序使用,这样达到对内存的最充分利用,所以真正剩余的内存是free+buff/cache
今天主要分享一个shell脚本,用来获取linux系统CPU、内存、磁盘IO等信息。
Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。它用来从许多平台收集系统和处理信息。
基本概念 物理CPU:物理CPU就是插在主机上的真实的CPU硬件,在Linux下可以数不同的physical id 来确认主机的物理CPU个数。 核心数:物理CPU下一层概念就是核心数,我们常常会听说多核处理器,其中的核指的就是核心数。在Linux下可以通过cores来确认主机的物理CPU的核心数。 逻辑CPU:核心数下一层的概念是逻辑CPU,逻辑CPU跟超线程技术有联系,假如物理CPU不支持超线程的,那么逻辑CPU的数量等于核心数的数量;如果物理CPU支持超线程,那么逻辑CPU的数目是核心数数目的两倍。在Linux下可以通过 processors 的数目来确认逻辑CPU的数量。 超线程:超线程是英特尔开发出来的一项技术,使得单个处理器可以象两个逻辑处理器那样运行,这样单个处理器以并行执行线程。这里的单个处理器也可以理解为CPU的一个核心;这样便可以理解为什么开启了超线程技术后,逻辑CPU的数目是核心数的两倍了。 在Linxu下查看物理cpu、核心数、逻辑CPU和是否支持超线程 关于CPU的一些信息可在 /proc/cpuinfo 这个文件中查看,这个文件显示的内容类似于下图所示
很多朋友工作学习中需要在 Windows 上安装 Linux 系统,最常用的就是使用 VMware Workstation 虚拟机。
本文讨论的 swap基于Linux4.4内核代码 。Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑。
Linux的swap相关部分代码从2.6早期版本到现在的4.6版本在细节之处已经有不少变化。本文讨论的swap基于Linux 4.4内核代码。Linux内存管理是一套非常复杂的系统,而swap只是其中一个很小的处理逻辑。希望本文能让读者了解Linux对swap的使用大概是什么样子。阅读完本文,应该可以帮你解决以下问题:
先从swap产生的原理来分析,由于linux内存管理比较复杂,下面以问答的方式列了一些重要的点,方便大家理解:
作为一名 Linux 工程师,会写好的脚本不仅能提高工作效率,还能有更多的时间做自己的事。最近在网上冲浪的时候,也注意收集一些大佬写过的脚本,汇总整理一下,欢迎收藏,与君共勉!
一、安装Linux下面的一个邮件客户端Msmtp软件(类似于一个Foxmail的工具)
项目中的一个需求是获取操作系统的相关信息, 在网上找了相关的资料,发现了一个好的玩意,就是Sigar,它是通过java api的方式来调用程序,基本上能够获取操作系统的全部信息,感觉挺强大的。Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的,它可以被多种语言调用,包括C/C++、java、Perl、Ruby、PHP等,可以收集的信息包括:
1、下载安装:http://downloads.sourceforge.net ... 206451&big_mirror=0 # tar jxvf msmtp-1.4.16.tar.bz2 # cd msmtp-1.4.16 # ./configure --prefix=/usr/local/msmtp # make # make install 2、创建msmtp配置文件和日志文件(host为邮件域名,邮件用户名test,密码123456) # vim ~/.msmtprc account default host 126.com from test@126.com auth login user test password 123456 logfile ~/.msmtp.log # chmod 600 ~/.msmtprc # touch ~/.msmtp.log 3、mutt安装配置:(一般linux下有默认安装mutt) # vim ~/.muttrc set sendmail="/usr/local/msmtp/bin/msmtp" set use_from=yes set realname="memory" set from=test@126.com set envelope_from=yes set rfc2047_parameters=yes set charset="utf-8" 4、邮件发送测试(-s邮件标题,-a表加附件) # echo "邮件内容123456" | mutt -s "邮件标题测试邮件" -a /scripts/test.txt test@126.com
(1) 物理内存free值:# free -m | grep Mem | awk '{print $4}'
魏艾斯博客之前发布过几篇对 Vultr VPS 日本线路的评测,正好手里有的两个某宝购买的 VPS,把这三个 VPS 的内存使用情况放在一起对比了一下,卧槽真的是不比不知道,下面用事(tu)实(pian)来说明真相。 以下三个 VPS 分别放在日本、中国香港和美国,都运行着 wordpress 博客程序,日本 VPS 的网站每天有 1500 左右的访问量,另外两个几乎为 0。 📷 Vultr 日本 VPS 内存 📷 某宝中国香港 VPS 📷 某宝美国 VPS 大家看图就明白
最近笔者在看性能分析相关的是知识,就特意针对内存整理了这一篇文章,在这里笔者主要从下面三个方面来介绍这方面的知识: 1.内存的作用是什么,他在操作系统中的基础知识都有哪一些? 2.查看内存和内存相关问题涉及到的工具都有哪一些,他们的使用方式是什么样子的? 3.碰到内存问题的时候,我们需要怎么去定位呢?
时间在回到一周前,测试跑过来跟我说:压测500w同步数据失败了。我保持以往的态度,莫慌莫慌,多大点事儿,然后打开运行日志,然后一看居然是内存不足,如下图:
Part1Linux性能优化 1性能优化 性能指标 高并发和响应快对应着性能优化的两个核心指标:吞吐和延时
在没有监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况。 一、安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具)
定长内存池就是一个固定内存申请或释放大小的内存池,其特点是:①性能达到极致。②不需要考虑内存碎片问题。
linux查看硬盘信息要用的几个命令:df命令、du命令、statfs结构及函数,这里用图文说明一下使用方法。
性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。 性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。
性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。
周六在家闲来无事学习了一下利用Sigar获取本机服务器、系统、CPU、JVM、内存等信息
在物理机上使用虚机搭建RAC环境时碰到了很多“坑”和关键点,这里慢慢一一回味总结下。
快速提问:你的驱动器剩余多少剩余空间?一点点还是很多?接下来的提问是:你知道如何找出这些剩余空间吗?如果你碰巧使用的是 GUI 桌面( 例如 GNOME、KDE、Mate、Pantheon 等 ),则任务可能非常简单。但是,当你要在一个没有 GUI 桌面的服务器上查询剩余空间,你该如何去做呢?你是否要为这个任务安装相应的软件工具?答案是绝对不是。在 Linux 中,具备查找驱动器上的剩余磁盘空间的所有工具。事实上,有两个非常容易使用的工具。
1、某分行部署的某台服务器内存占用过高,导致死机; 2、代码层面检查暂未发现问题,服务器硬重启持续一段时间后(3-5天)再次占满。
进程是一个非常重要的概念,我们都知道,操作系统合理地组织、调度计算机的工作与资源。而在引入线程前,进程是操作系统进行资源分配和调度的基本单位。所以,探究Linux进程以及与进程有关的检测与控制是非常有意义的。这次内容如下。
通过获取Linux中的 /proc/stat 文件中的内容可以获取系统内存的详细信息:
在上篇文章 《深入理解 Linux 物理内存分配全链路实现》 中,笔者为大家详细介绍了 Linux 内存分配在内核中的整个链路实现:
(1)用户猜数字 #!/bin/bash # 脚本生成一个 100 以内的随机数,提示用户猜数字,根据用户的输入,提示用户猜对了, # 猜小了或猜大了,直至用户猜对脚本结束。 # RANDOM 为系统自带的系统变量,值为 0‐32767的随机数 # 使用取余算法将随机数变为 1‐100 的随机数 num=$[RANDOM%100+1] echo "$num" # 使用 read 提示用户猜数字 # 使用 if 判断用户猜数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于
(15)编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机
回顾上篇,解释了场景“2”中的四个标签,也介绍了对应着Windows Server中的四个功能在日常运维中究竟起到什么作用以及如何去驾驭他们。
脚本 #!/bin/sh ############################## ## 名称: MonitorES.sh ## 描述: 主机利用率超过阈值 判断top占用内存的进程 匹配ES
常用限流算法有漏桶算法和令牌桶算法,本文借助Redis的redis_cell模块来实现令牌桶算法限流。
我们之前在生产环境上遇到过很多起由操作系统的某些特征引起的性能抖动案例,其中 THP 作案次数较多,因此本文将和大家分享 THP 引起性能抖动的原因、典型的现象,分析方法等,在文章的最后给出使用THP 时的配置建议及关闭方法。
磁盘的io是一个非常重要的指标,所以要更详细的查看磁盘状态,需要用到iostat命令,如果之前已经安装了sysstat包的话,在安装sysstat包时iostat命令就已经被安装了。
在上篇文章 《深入理解 Linux 物理内存管理》中,笔者详细的为大家介绍了 Linux 内核如何对物理内存进行管理以及相关的一些内核数据结构。
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130872.html原文链接:https://javaforall.cn
监控系统状态 free 查看内存使用情况 free -m / -g / -h buffer/cache区别 公式:total=used+free+buff/cache avaliable包含free和buffer/cache剩余部分 free命令 free命令,查看内存使用情况 在centos7和centos6中显示的结果是不同的 在centos7中,则更加直观 默认单位:kb 共有三行,我们需要关注的是第二行,内存的使用情况 第一行,是说明 第二行,是内存的使用情况 第三行,是swap交换分区的使用情
这里在实验之前需要下载 Bochs-win32-2.6.11 作者使用的是Linux版本的,在Linux写代码不太舒服,所以最好在Windows上做实验,下载好虚拟机以后还需要下载Nasm汇编器,以及GCC编译器,为了能够使用DD命令实现磁盘拷贝,这里你可以安装windows 10 下面的子系统Ubuntu,需要使用命令时可以直接切换。
OSHI是一个免费的基于JNA(本机)的Java操作系统和硬件信息库。它不需要安装任何其他本机库,旨在提供 跨平台实现以检索系统信息,例如操作系统版本、进程、 内存和 CPU 使用率、磁盘和分区、设备、传感器等。
free 命令用于显示内存的使用情况,显示可用和已用物理内存和交换内存的总数,以及内核使用的缓冲区。
领取专属 10元无门槛券
手把手带您无忧上云