首页 » 标签存档: linux

Tag Archives: linux

linux下redis执行bgsave时,报overcommit_memory错误问题

 

现象 一台机器如果内存用完,在进行bgsave时,可能会报错。错误信息大概如下: [1946] 23 Mar 15:21:02.308 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the comm ...

如何找出发生SEGV内存错误的程序

 

前言 这个可以说是《小心,apc可能导致php-fpm罢工!》的续。因为这篇文章有个问题没说清楚,而且映雪同学昨天又问起这个问题。 ​ ​问题 ​18-Feb-2014 15:48:45] WARNING: [pool www] child 11274 exited on signal 11 (SIGSEGV) after 0.089068 seconds from start 显然11274进程运行过程中遇到了段错误导致进程异常 ...

怎样用core文件调试你的linux程序?

 

core dump 文件对于诊断linux中程序的问题非常有用。当程序异常退出的时候,可能会生成core文件。如,程序写一个不属于他的内存,操作系统出于保护,会发信号给程序,程序可能会因此而退出,退出的时候可能会生成core文件。我们可以通过分析core文件,找出程序中那里有内存问题。这篇文章主要是阐述生成core文件需要做 ...

linux下cp,mv进行动态库覆盖问题分析

 

本文是引用@五牧同学在阿里ata上发表的文章。感觉分析的比较透彻,分享给大家。 问题的起因在来源于周会上钟老板提出的一个问题,cp新的so文件替换老的so,会导致程序core掉。这个问题引起了大家的热烈讨论,其中提及了的名词有inode,dentry,buserror等,比较混乱,由于功力浅薄,当时也没有十分清楚引起core掉的原因 ...

/var/spool/clientmqueue目录文件清理

 

今天对服务器磁盘占用情况进行检查时发现有台服务器的/var 目录已经占用90%。需要清理。 使用 sudo du -m --max-depth=2 /var/ 命令查看/var/目录的磁盘占用情况。命令在检查 /var/spool/clientmqueue 时出现了卡死的情况。 可以肯定 /var/spool/clientmqueue 这个目录文件很多了,必须清理了。 如果单纯的用rm 命令删 ...

linux中使用valgrind检测内存泄露

 

众所周知,c或者c++编写的程序很容易出现内存泄露问题。valgrind是一个很好的工具,可以检测程序中的内存泄露问题。 什么是内存泄露 内存泄露可以分为两种: 一种是,程序中有指针指向通过malloc或者new申请的内存,但是在程序结束前,一直未收回。如果这种内存一直增加的话,可能导致内存耗尽。不过程序结束后系统会自 ...

【IPC通信】基于管道的popen和pclose函数

 

标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。 这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。 popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数。下在给出popen、pclose的定 ...

linux中c语言errno的使用

 

在linux中使用c语言编程时,errno是个很有用的动动。他可以把最后一次调用c的方法的错误代码保留。但是如果最后一次成功的调用c的方法,errno不会改变。因此,只有在c语言函数返回值异常时,再检测errno。 errno会返回一个数字,每个数字代表一个错误类型。详细的可以查看头文件。/usr/include/asm/errno.h 如何把errno ...

linux man page 命令手册

 

Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。 Linux的man手册共有以下几个章节: 1 Executable programs or shell commands 2 System calls (functions provided by the kernel) 3 Library calls (functions within program libraries) 4 Special files (usually foun ...

linux查看进程端口号,进程id,运行环境变量等信息

 

如何查看进程的端口号? $ netstat -lnp | grep exf tcp 0 0 0.0.0.0:9101 0.0.0.0:* LISTEN 5791/exfilter 注释:上面命令中的exfilter是进行名称.上面的9101就是监控的端口号,5791是进程的进程id。 如果进程没有像exfilter一样监控一个端口,如何查看进程的id? ps aux | grep exfilter ro ...

如何观察进程的内存占用情况

 

概述       想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。当然如果 ...