• 等级
  • 1045647 访问
  • 97 原创
  • 582 转发
  • 1751 排名
  • 183 评论
  • 45 获赞

linux下内存的统计和内存泄露类问题的定位

转自 http://blog.chinaunix.net/uid-9543173-id-3571436.html 这篇文章查找内存泄漏的方式比较准确、合理。在产品的开发中,通过对当前系统消耗内存总量的统计,可以对产品所需内存总量进行精确的评估,从而选择合适的内存芯片与大小,降低产品的成本。在遇到内存泄露类问题时,经常会对此束手无策,本文通过对proc下进程相关的文件进行分析,精确评估系统消耗内存的...

2018-04-04 16:33:11

折磨半个月终于找到php脚本所谓的“内存泄露”原因!

转自 https://blog.csdn.net/tao_627/article/details/9532497——跟我遇到的问题一样。最近项目改版做2期,1期是我写的,当然2期也由我主要负责,我借鉴了同事和网上的多种可取方法,在性能上做了较大提升。项目是一个后台网页爬取程序,使用php开发,基于DOMDocument+Xpath+curl多线程异步,同时少量网页使用phpQuery处理,正则表达...

2018-04-04 16:23:26

Linux上查看造成IO高负载的进程

方法1:使用iotop工具这是一个python脚本工具,使用方法如:iotop -o方法2:使用工具dmesg使用dmesg之前,需要先开启内核的IO监控:echo 1 >/proc/sys/vm/block_dump或sysctl vm.block_dump=1然后可以使用如下命令查看IO最重的前10个进程:dmesg |awk -F: '{print $1}'|sort|uniq -c|...

2018-04-04 15:45:29

/proc/sys/vm/优化

/proc/sys/vm/优化1)      /proc/sys/vm/block_dump该文件表示是否打开Block Debug模式,用于记录所有的读写及Dirty Block写回动作。 缺省设置:0,禁用Block Debug模式2)      /proc/sys/vm/dirty_background_ratio该文件表示脏数据到达系统整体内存的百分比,此时触发pdflush进程把脏数据写...

2018-04-04 15:39:14

Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches

问题: 频繁的文件访问会导致系统的Cache使用量大增查看内存使用情况: $ free -m total used free shared buffers cached Mem: 3955 3926 28 0 55 3459 -/+ buffers/cache: 411 3544 Swap: 5726 0 5726现象: free内存减少到几十兆,系统运行缓慢解决办法: 1.运行 sync 将 d...

2018-04-04 15:37:03

Linux手动释放缓存的方法

转自 https://www.cnblogs.com/focai/p/5829897.html Linux手动释放缓存的方法Linux释放内存的命令:syncecho 1 > /proc/sys/vm/drop_cachesdrop_caches的值可以是0-3之间的数字,代表不同的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和inodes3:释放所有缓存释放完内存后...

2018-04-04 15:36:05

使用 Strace 和 GDB 调试工具的乐趣

使用 Strace 和 GDB 调试工具的乐趣使用 Strace 和 GDB 调试工具的乐趣在研究 UNIX 系统的过程中获取知识William Zimmerly2006 年 6 月 22 日发布WeiboGoogle+用电子邮件发送本页面 0UNIX 家族总是为用户提供了丰富的工具。UNIX 是一个工具财宝箱,有了这些工具,您不仅可以完成具有创造性的工作,还可以在深入研究该操作系统的同时得到教育...

2018-04-03 16:29:21

linux 常见内存问题检测工具

原文地址:http://blog.csdn.net/jinzhuojun/article/details/46659155C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题。如果crash的地方正是内存使用错误的地方,说明你人品好。如果crash的地方内存明显不是consistent的,或者内存管理信息都已被破坏,并且还是随机出现的,那就比较麻烦了。当然,祼看c...

2018-04-03 10:39:49

linux下利用valgrind工具进行内存泄露检测和性能分析

valgrind通常用来成分析程序性能及程序中的内存泄露错误一 Valgrind工具集简绍Valgrind包含下列工具:    1、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。    2、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。    3、cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。    4、helgrind...

2018-04-02 17:23:17

Linux查看实时网卡流量的几种方式

工作中,我们经常需要查看服务器的实时网卡流量。通常,我们会通过这几种方式查看Linux服务器的实时网卡流量。1. sar -n DEV 1 2sar命令包含在sysstat工具包中,提供系统的众多统计数据。其在不同的系统上命令有些差异,某些系统提供的sar支持基于网络接口的数据统计,也可以查看设备上每秒收发包的个数和流量。 sar –n DEV 1 2命令后面1 2 意思是:每一秒钟取1次值,取...

2018-03-30 14:55:40

用ping ,mtr ,traceroute 进行网络丢包分析

转自 https://blog.csdn.net/hankerzero/article/details/67062617 一、丢包原因  网络丢包原因很多,但是一般都是链路问题:骨干拥塞链路某个交换机背板坏了交换机负载不均导致  此外,还有主机本身原因:系统CPU负载高,数据包到网卡后CPU不能及时处理,但是缓冲区溢出,从而丢包。网卡故障   丢包时一般先分析下网络层面的,主机本身的还是原因较少的...

2018-03-26 12:13:10

UDP主要丢包原因及具体问题分析

一、主要丢包原因  1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv.  2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个udp包,不切割直接通过sen...

2018-03-26 11:46:53

ifconfig 下面的一些字段(errors, dropped, overruns)

ifconfig 下面的一些字段(errors, dropped, overruns)一台机器经常收到丢包的报警,先看看最底层的有没有问题:# ethtool  em2 | egrep 'Speed|Duplex'        Speed: 1000Mb/s        Duplex: Full# ethtool  -S em2 | grep crc     rx_crc_errors: 0S...

2018-03-22 10:52:43

Linux网络编程-UDP接收数据丢包解决方案

转自 http://blog.csdn.net/baidu_35692628/article/details/76165337序言项目涉及基于UDP的socket通信,该部分的基本情况如下:发端程序:主函数开启4个发包线程,每个线程发送一定量的数据,通过限制发包速率限制发包流量。收端程序:主函数对应开启4个收包线程,每个线程收取对应端口的数据,收到数据包即时封装处理。其他说明:本地收发。如果不限制...

2018-03-21 12:12:27

使用 iPerf 测试并排查 UDP 丢包问题

转自 https://help.aliyun.com/knowledge_detail/58656.html 现象描述使用高速通道打通同一个地域(Region)下的两台 VPC 网络类型的 ECS 实例后,通过 iPerf 测试两台实例内网之间 UDP 丢包率,测试带宽达到 50 Mbps 以上时出现了丢包现象,且随着带宽的增加,丢包率出现增长趋势。如下图:问题分析假设两台网络类型的 ECS 实例...

2018-03-21 11:42:20

Linux编程之UDP SOCKET全攻略

Linux编程之UDP SOCKET全攻略这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到。尽可能做到,读了一篇文章之后,大家对udp socket有一个比较全面的认识。本文分为两个专题,第一个是常用的upd socket框架,第二个是一些udp socket并不常用但又相当重要的知识点。 一、基...

2018-03-06 12:30:22

TCP 和 UDP 在socket编程中的区别

一、TCP与UDP的区别 基于连接与无连接   对系统资源的要求(TCP较多,UDP少)   UDP程序结构较简单   流模式与数据报模式   TCP保证数据正确性,UDP可能丢包   TCP保证数据顺序,UDP不保证           部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息   拥有大量Client   对数据安全性无特殊要求   网络负担非常重,但对响应...

2018-03-05 12:04:55

开发板上syslog使用方法小结

首先我们需要先确认我们的开发板上是否安装了syslog服务,在开发板的文件系统下输入syslogd help命令查看如果不支持就是busybox的版本太低了。 当确定安装了后我们根据help显示的默认配置文件来查看该配置文件是否存在,如果不存在我们需要创建一个配置文件如:touch /etc/syslog.conf,同时使用syslogd -f /etc/syslog.conf来进行绑定。

2018-02-06 15:06:33

class_create(),device_create自动创建设备文件结点

从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一 点,udev是应用层的东东,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_c

2018-02-01 11:46:09

linux 调试利器gdb, strace, pstack, pstree, lsof

linux 调试利器gdb, strace, pstack, pstree, lsof 1) 如何使用strace+pstack利器分析程序性能? http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html 此文有详细介绍怎么用strace和pstack 2) Linux下多线程查看工具(pstree

2018-01-31 00:00:24

简单并快乐着

关注
  • 中国
奖章
  • 持之以恒