首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏初见Linux

    11-3 激活修改

    三、修改环境 现在用户已经知道了系统启动文件的位置和内容,就可以修改启动文件,来自定义我们的环境。(准) 1.用户应当修改哪些文件 一般来说,在 PATH 中添加目录或定义额外的环境变量,需要将这些更改放入到 .bash_profile 文件中(或者是其它的等效文件,这取决于系统的发行版本,比如 Ubuntu 系统使用的是 .profile 文件),其它的改变则应录入 .bashrc 文件中。除非是系统管理员需要修改用户公用的默认设置,普通用户只需对主目录下的文件作出修改即可。当然用户也可以修改其它目录

    69710发布于 2020-08-11
  • 来自专栏山河已无恙

    Linux 系统内存监控:Linux 内存调优之系统内存全面监控

    写在前面 博文内容涉及 Linux 全局内存监控 监控方式包括传统工具 vmstat/top/free/sar/slabtop ,以及 systemd-cgtop,proc 内存伪文件系统 监控内容包括系统内存使用 ----《明朝那些事儿》 持续分享技术干货,感兴趣小伙伴可以关注下 ^_^ 内存的全局监控 内存资源的全局监控一般用于系统级别内存数据实时观测,用于快速定位内存瓶颈(如内存使用率持续超过80%或Swap 频繁触发),避免因内存不足导致的响应延迟或服务中断,这里我们也介绍几种方式,关于 通过 BPF 实现全局内存监控会单独拿出来讲。 在学习实际的监控方式之前,我们先来看几个内存相关的术语 交换(物理内存不足) 所有系统RAM芯片的物理内存容量都是固定的。 sar 上面讲的系统内存监控工具都是实时工具,有时候可能当尝试去解决问题的时候,问题已经发生完成了,即错过了解决问题的最佳时机,所以我们需要查看历史监控数据,所以就有了 sar sar [-B][-rl

    2.3K10编辑于 2025-04-13
  • 来自专栏零域Blog

    监控进程内存

    缘由 需要获取某程序运行过程中的内存消耗,一般情况可以使用 top 命令来人工分析,不过我遇到一个程序其内部调用包括 python, R, 以及一系列 linux 命令,这就导致人工统计不太现实 问题变成统计进程及其子进程的内存使用 维护一个表,记录与待查询进程相关的子进程及其内存,初始化只有待查询进程 遍历所有进程: 如果当前进程的父进程在表中: 将此进程及对应内存加入表 /pm 25201 2 监控 id 为25201的进程,刷新间隔为2秒 结果输出: 2020-09-18 17:37:05 1932 2020-09-18 17:37:07 1932 2020-09-18 17:37:09 1932 这里输出的内存单位是 KB 注意:由于需要进程启动之后才能开启监控,导致进程内存无法从0开始;当进程结束,则监控程序也会退出 关于结果展示,直接将输出结果的第二列和第三列拷贝到 Excel 中,插入折线图即可看到内存随时间变化情况

    1.7K10编辑于 2022-03-28
  • 来自专栏山河已无恙

    Linux 进程内存监控:Linux 内存调优之进程内存深度监控

    写在前面 博文内容涉及 Linux 进程内存监控 监控方式包括传统工具 ps/top/pmap ,以及 cgroup 内存子系统,proc 内存伪文件系统 监控内容包括进程内存使用情况, 内存全局数据统计 ,内存事件指标,以及进程内存段数据监控 理解不足小伙伴帮忙指正 :),生活加油 我看远山,远山悲悯 持续分享技术干货,感兴趣小伙伴可以关注下 ^_^ 监控进程的内存使用量 这里分析的工具主要是原生工具 ,后面还会分享一些 BPF 相关的内存观察工具以及系统内存的全局监控 PS/TOP 一般的内存监控工具,对于进程级别的,会使用如 ps/top 命令, 通过指标 VIRT 或 VSZ 和 RES 或 RSS 内存详细信息指标监控 下面一组是内存详细信息的数据统计 参数 作用 memory.numa_stat NUMA 节点的内存使用统计(适用于多 CPU 架构)。 内存事件指标监控 下面为内存事件指标依次来看一下 参数 作用 memory.usage_in_bytes 当前物理内存使用量(包括匿名内存、文件缓存等)。

    2.2K42编辑于 2025-04-13
  • 来自专栏面朝大海春暖花开

    zabbix监控jvm内存

    Zabbix自带监控系统的内存利用率和CPU利用率,但是系统内存并不能反应JVM内存情况 在本地我们可以通过jconsole或者jvisualvm进行监控jvm内存情况 不过正是环境一般都是部署在linux 再通过命令进行查看,比如查看非堆内存使用情况 java -jar cmdline-jmxclient-0.10.3.jar - 39.105.97.50:12345 java.lang:type=Memory jvm内存情况集成jmx步骤逻辑 在zabbix服务器上安装配置zabbix-java-gateway,并且配置相关参数。 如果是红色,查看具体原因,可能是端口暴露问题,或者是启动的参数设置问题 5.自定义图形和监控项 jmx为绿色,标志着添加成功,之后自定义图形,设置监控项即可 第一步创建图形 ? 第二步,添加你需要的监控项即可 ? 这里选取四项,查看效果图 ?  ok,其余的配置再摸索,监控多个java进程的jvm还须研究

    5.7K30发布于 2019-09-12
  • 来自专栏山河已无恙

    如何使用 BPF 监控 Linux 内存情况:Linux 内存调优之 BPF 内存监控分析

    全系统范围内创建了哪些内存映射,哪些应用程序代码路径正在申请内存分配? 内存溢出(OOM Kil)事件发生时系统状态如何? 是否有分配一段时间后还是没有释放的内存,定位可能内存泄露的进程? 这里我们简单看看下上面提到的几个BPF关键名词: 动态跟踪点: kprobes 和 uprobes,类似于内核态和用户态的方法埋点,比较灵活,可以任意监控 kprobes:  通过在内核函数入口或指定指令位置插入断点指令 例如,可监控 kmalloc、kfree 等内核内存管理函数的行为。 uprobes: 通过修改用户程序的 ELF 文件指令,在库函数(如 malloc)或应用程序的自定义内存分配器处插入探测点。 静态跟踪点:USDT 探针,用户态会将稳定的事件名字编码到软件代码中,监控点都是编译的时候写死的 USDT :探针在程序编译阶段通过宏定义(如 dtrace_probe、stap_probe)插入代码中 )持续申请内存,导致系统物理内存耗尽。

    67510编辑于 2025-07-08
  • 来自专栏微信终端开发团队的专栏

    Matrix-iOS 内存监控

    微信急需一个有效的内存监控工具来发现问题。 一 实现原理 微信内存监控最初版本是使用Facebook的FBAllocationTracker工具监控OC对象分配,用fishhook工具hook malloc/free等接口监控内存分配,每隔1秒 不过这方案有不少缺点: 1、监控粒度不够细,像大量分配小内存引起的质变无法监控,另外fishhook只能hook自身app的C接口调用,对系统库不起作用; 2、打log间隔不好控制,间隔过长可能丢失中间峰值情况 修改malloc_default_zone函数返回的malloc_zone_t结构体里的malloc、free等函数指针,也是可以监控内存分配,效果等同于malloc_logger;而虚拟内存分配只能通过 3.数据上报 由于内存监控是存储了当前所有存活对象的内存分配信息,数据量极大,所以当出现FOOM时,不可能全量上报,而是按某些规则有选择性的上报。

    8.6K53发布于 2019-05-16
  • 来自专栏WeTest质量开放平台团队的专栏

    iOS微信内存监控

    本文介绍如何实现离线化的内存监控工具,用于App上线后发现内存问题。 ---------- FOOM(Foreground Out Of Memory),是指App在前台因消耗内存过多引起系统强杀。 微信急需一个有效的内存监控工具来发现问题。 一、实现原理 ------ 微信内存监控最初版本是使用Facebook的FBAllocationTracker工具监控OC对象分配,用fishhook工具hook malloc/free等接口监控内存分配 不过这方案有不少缺点: 1、监控粒度不够细,像大量分配小内存引起的质变无法监控,另外fishhook只能hook自身app的C接口调用,对系统库不起作用; 2、打log间隔不好控制,间隔过长可能丢失中间峰值情况 [8.png] 3.数据上报 由于内存监控是存储了当前所有存活对象的内存分配信息,数据量极大,所以当出现FOOM时,不可能全量上报,而是按某些规则有选择性的上报。

    3.9K50发布于 2018-03-01
  • 来自专栏微信终端开发团队的专栏

    iOS微信内存监控

    微信急需一个有效的内存监控工具来发现问题。 一 实现原理 微信内存监控最初版本是使用Facebook的FBAllocationTracker工具监控OC对象分配,用fishhook工具hook malloc/free等接口监控内存分配,每隔1秒 不过这方案有不少缺点: 1、监控粒度不够细,像大量分配小内存引起的质变无法监控,另外fishhook只能hook自身app的C接口调用,对系统库不起作用; 2、打log间隔不好控制,间隔过长可能丢失中间峰值情况 修改malloc_default_zone函数返回的malloc_zone_t结构体里的malloc、free等函数指针,也是可以监控内存分配,效果等同于malloc_logger;而虚拟内存分配只能通过 3.数据上报 由于内存监控是存储了当前所有存活对象的内存分配信息,数据量极大,所以当出现FOOM时,不可能全量上报,而是按某些规则有选择性的上报。

    2K30编辑于 2023-02-20
  • 来自专栏WeTest质量开放平台团队的专栏

    iOS微信内存监控

    WeTest 导读 目前iOS主流的内存监控工具是Instruments的Allocations,但只能用于开发阶段。本文介绍如何实现离线化的内存监控工具,用于App上线后发现内存问题。 微信急需一个有效的内存监控工具来发现问题。 一 实现原理 微信内存监控最初版本是使用Facebook的FBAllocationTracker工具监控OC对象分配,用fishhook工具hook malloc/free等接口监控内存分配,每隔1秒 不过这方案有不少缺点: 1、监控粒度不够细,像大量分配小内存引起的质变无法监控,另外fishhook只能hook自身app的C接口调用,对系统库不起作用; 2、打log间隔不好控制,间隔过长可能丢失中间峰值情况 3.数据上报 由于内存监控是存储了当前所有存活对象的内存分配信息,数据量极大,所以当出现FOOM时,不可能全量上报,而是按某些规则有选择性的上报。

    2.3K50发布于 2018-10-29
  • 来自专栏运维ABC

    JVM内存监控shell脚本

    该shell脚本主要用于监控: 1.各个进程的jvm内存使用情况; 2.端口监控; 3.访问的页面是否正常。 *-Dweblogic.Name=//g'|awk '{print $1}'` #jvm内存监控 echo ############################################## BEGIN{printf "%.0f\n",x*y}'` perm1=`gawk -v x=$perm -v y=1000 'BEGIN{printf "%.0f\n",x*y}'` #取对应进程的jvm内存值 perm1} -ge "99999" ] then jvm=$jvm+${name1}+":Perm Generation:"+${perm}+"%超阀值 " fi echo $jvm done #端口监控 an |grep $port|grep LISTEN|grep $addr` if [ "$net" = "" ] then p1=$p1+${port}+"端口异常" fi done #url监控

    2.1K30发布于 2019-09-10
  • 来自专栏AI机器学习与深度学习算法

    机器学习入门 11-3 Soft Margin SVM

    本系列是《玩转机器学习教程》一个整理的视频笔记。前面两个小节具体介绍了Hard Margin SVM算法的思想,并将这种思想转换为数学中的最优化问题。这一小节:

    1K31发布于 2020-07-02
  • 来自专栏葫芦

    linux 监控 内存使用率

    示例:点击 -> 性能监控 /proc/meminfo   used=total-(buffers+cached+free) [root@wangzi go]# cat /proc/meminfo MemTotal 77724 kB MemAvailable: 51692 kB Buffers: 8468 kB Cached: 59584 kB python监控代码

    3.8K30发布于 2019-04-17
  • 来自专栏山河已无恙

    如何使用eBPF监控Linux内存 OOM killer:Linux内存调优之eBPF监控内存 OOM killer 事件

    写在前面 博文内容涉及 使用 eBPF 监控内存 OOM killer 事件,并且采集当前系统的部分相关指标数据 介绍了传统的监控方式以及使用 BPF/eBPF 的方式 关于 OOM killer 是什么 传统的 OOM Killer 内存事件监控 传统的 OOM killer 历史数据查看一般通过内核日志,或者是Cgroup 内存子系统的事件计数器。 yes 使用 BPF 的方式 对于 BPF 的监控,主要通过 BPF 和 bpftrace 的 oomkill 工具,我们可以在触发 OOM killer 事件之后,观察到系统平均负载等一些其他的信息 用内存测试工具简单复现一下 OOM killer,我们看看如何监控,这里需要把交换分区禁用掉,要不换页进程(kswapd)疯狂的输出,不太容易触发 OOM Killer [root@liruilongs.github.io :"); cat("/proc/meminfo"); } 修改脚本后的再次监控指标采集 [root@developer tools]# vim oomkill.bt [root@developer

    70100编辑于 2025-05-19
  • 来自专栏全栈程序员必看

    使用zabbix监控redis内存使用

    本篇提到的监控环境是有条件的,即默认单机只运行一个redis实例,且默认运行的端口是6379(也可以是其他端口,需要通过sed -i ‘s/6379/你修改的端口/g’ xml模板文件 修改模板文件里的端口号 2、客户端key配置 在被监控的主机上,打开/etc/zabbix/zabbix_agentd.conf 配置文件,在最后一行加入: UserParameter=redis_stats[*],redis-cli # zabbix_get -s 172.20.0.20 -k redis_stats[6379,total_connections_received] 2249669 上面正常从被监控主机上取得了数据, 5、查看监控图 通过monitoring —– graphs 可以查看刚刚添加的监控项的监控图,这里只截下内存使用情况图 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    80620编辑于 2022-08-30
  • 来自专栏程序员历小冰

    一文了解 Redis 内存监控内存消耗

    所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。 防止所用的内存超过服务器物理内存,导致 OOM 后进程被系统杀死。 maxmemory 限制的是 Redis 实际使用的内存量,也就是 used_memory 统计项对应的内存。 所以,如果你有 10GB 的内存,最好将 maxmemory 设置为 8 或者 9G 内存消耗划分 Redis 进程内消耗主要包括:自身内存 + 对象内存 + 缓冲内存 + 内存碎片,其中 Redis [1240] 对象内存 对象内存是 Redis 内存占用最大的一块,存储着用户所有的数据。 输入输出缓冲区在大流量场景中容易失控,造成 Redis 内存不稳定,需要重点监控。可以定期执行 client list 命令,监控每个客户端的输入输出缓冲区大小和其他信息。

    1.3K00发布于 2019-10-15
  • 来自专栏AustinDatabases

    MYSQL 内存机制分析与监控

    种数据库都有它自己的内存机制,如果说汽车的三大件,发动机,变速箱,底盘。数据库的内存机制算是数据库核心的核心,一个没有好的内存管理和分配的数据库,一定是不会有好的性能。 关于MYSQL的内存,这个话题比较大,只能限定INNODB 操作因为的数据库内存的分析。 是的内存在数据库中其实就是为了性能,试想如果磁盘的速度和内存一样快,还需要内存,buffer pool ,缓存吗? 2 Buffer pool 缓存,内存,到底在MYSQL 中起到了什么作用? 5 内存中的数据是否有退出机制? 回答是一定的,任何数据库的内存的数据都有退出的机制,否则内存难道要和数据的大小一致,在目前的硬件技术上,这是不大可能的,所以内存必须有退出的机制。 6 内存中涉及管理内存页的是怎么做的 MYSQL 中的内存管理主要使用的是 LRU 算法(变种),Least Recently Used,在MYSQL 的 BUFFER POOL 中是包含 New SUBLIST

    2.2K30发布于 2019-06-21
  • 来自专栏程序员历小冰

    一文了解 Redis 内存监控内存消耗

    所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。 ? 内存使用统计 通过 info memory 命令可以获得 Redis 内存相关的指标。 当 Redis 内存超出可以获得内存时,操作系统会进行 swap,将旧的页写入硬盘。从硬盘读写大概比从内存读写要慢5个数量级。 所以,如果你有 10GB 的内存,最好将 maxmemory 设置为 8 或者 9G 内存消耗划分 Redis 进程内消耗主要包括:自身内存 + 对象内存 + 缓冲内存 + 内存碎片,其中 Redis 对象内存 对象内存是 Redis 内存占用最大的一块,存储着用户所有的数据。 输入输出缓冲区在大流量场景中容易失控,造成 Redis 内存不稳定,需要重点监控。可以定期执行 client list 命令,监控每个客户端的输入输出缓冲区大小和其他信息。 ?

    1.4K20发布于 2019-12-06
  • 来自专栏码农沉思录

    一文了解 Redis 内存监控内存消耗

    所以,监控 Redis 的内存消耗并了解 Redis 内存模型对高效并长期稳定使用 Redis 至关重要。 内存使用统计 通过 info memory 命令可以获得 Redis 内存相关的指标。 当 Redis 内存超出可以获得内存时,操作系统会进行 swap,将旧的页写入硬盘。从硬盘读写大概比从内存读写要慢5个数量级。 所以,如果你有 10GB 的内存,最好将 maxmemory 设置为 8 或者 9G 内存消耗划分 Redis 进程内消耗主要包括:自身内存 + 对象内存 + 缓冲内存 + 内存碎片,其中 Redis 对象内存 对象内存是 Redis 内存占用最大的一块,存储着用户所有的数据。 输入输出缓冲区在大流量场景中容易失控,造成 Redis 内存不稳定,需要重点监控。可以定期执行 client list 命令,监控每个客户端的输入输出缓冲区大小和其他信息。 ?

    1.6K11发布于 2019-11-12
  • 来自专栏菲宇

    Linux监控内存free命令详解

    free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。 系统的总物理内存:255268Kb(256M),但系统当前真正可用的内存b并不是第一行free 标记的 16936Kb,它仅代表未被分配的内存。 的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换 空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux 语  法: free [-bkmotV][-s <间隔秒数>] 补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。 参  数: -b  以Byte为单位显示内存使用情况。 -k  以KB为单位显示内存使用情况。 -m  以MB为单位显示内存使用情况。 -o  不显示缓冲区调节列。

    2.1K10编辑于 2022-12-21
领券