From: http://hustcat.github.io/about/ Linux中进程内存与cgroup内存的统计 在Linux内核,对于进程的内存使用与Cgroup的内存使用统计有一些相同和不同的地方. 进程的内存统计 一般来说,业务进程使用的内存主要有以下几种情况: (1)用户空间的匿名映射页(Anonymous pages in User Mode address spaces),比如调用malloc分配的内存,以及使用MAP_ANONYMOUS的mmap:当系统内存不够时,内核可以…
1.进程标识 每个进程都有一个非负整型表示的唯一的进程ID.进程ID标识符总是唯一的.  虽然进程ID是唯一的,但某个ID被回收后,ID号是可以复用的. ID为0的进程通常是调度进程(其常常被称交换进程)是系统进程.进程 1通常是init进程,在自举过程结束时由内核调用.init进程绝不会终止,是一个普通的用户进程但以超级用户进程特权运行. 除了进程id,进程还有其他标识符, Linux中通过以下函数返回这些标识符(这些函数都是系统调用). #include <unistd.h> pid_t…
在网络课程中,有讲到Socket编程,对于tcp讲解的环节,为了加深理解,自己写了Linux下进程Socket通信,在学习的过程中,又接触到了其它的几种方式.记录一下. 管道通信(匿名,有名) 管道通信,在一个进程之中,只能单一的对其写或者是读,而不可以及执行写操作又执行读操作.这一点,我们可以将其想象成我们的水管,分别连着不同的两端,在有水流的时候,一端只能进行输入,另一端只能进行输出,而不可以同时输入和输出. 管道又分为有名管道和匿名管道,两者的区别在于对于匿名管道,其只能在具有亲缘关系的父…
Linux中task_struct用来控制管理进程,结构如下: struct task_struct { //说明了该进程是否可以执行,还是可中断等信息 volatile long state; //Flage 是进程号,在调用fork()时给出 unsigned long flags; //进程上是否有待处理的信号 int sigpending; //进程地址空间,区分内核进程与普通进程在内存存放的位置不同 mm_segment_t addr_limit; //0-0xBFFFFFFF for…
目录 1.ps命令介绍 2.ps aux命令示例 3.ps -le命令示例 4.pstree命令 1.ps命令介绍 ps命令是用来静态显示系统中进程的命令. 不过这个命令有些特殊,它部分命令的选项前不能加-,比如命令ps aux,其中aux是选项,但是这个选项前不能加-. 这是因为ps命令的部分选项需要遵守BSD操作系统的格式,所以ps命令的常用选项的组合是固定的. 命令如下: # 查看系统中所有进程,使用BSD操作系统格式. # aux选项组合是一个习惯用法. [root@localhost…
目录 1.top命令介绍 2.top命令示例 3.top命令输出项解释 4.top命令常用的实例 1.top命令介绍 top命令是用来动态显示系统中进程的命令. [root@localhost ~]# top [选项] 选项: -d秒数:指定top命令每隔几秒更新.默认是3秒. -b:使用批处理模式输出.一般和"-n"选项合用,用于把top命令重定向到文件中. -n次数:指定top命令执行的次数.一般和"-b"选项合用. -p:指定PID.只查看某个PID的进程.…
Linux採用两种不同的优先级范围,一种是nice值.还有一种是实时优先级. 1.nice值 nice值得范围是-20~19,默认值是0. 越大的nice值意味着更低的优先级.也就是说nice值为-20的优先级最高. 2.实时优先级 实时优先级的范围是0~99.其值得意义与nice值相反.即:越高的实时优先级数值意味着进程优先级越高. Linux的进程可分为普通进程和实时进程.实时进程都是一些对响应时间要求比較高的进程.因此实时进程的优先级比普通进程的优先级要高. 3.优先级比較 Linux中的…
Linux 的进程信号 1  HUP  挂起 2  INT  中断 3 QUIT  结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能终止 17 STOP 无条件终止运行,但不终止 18 TSTP 停止或暂停,但继续在后台运行 19 CONT 在STOP或TSTP 之间回复运行 kill -s HUP 3940…
前言:在生产环境中经常发生服务器内存溢出,假死或者线程死锁等异常,导致服务不可用.我们经常使用的解决方法是通过分析错误日记,然后去寻找代码到底哪里出现了问题,这样的方式也许会奏效,但是排查起来耗费时间比较多,或者说本身代码本身就没有错,而是访问量大时候消耗内存太多,垃圾对象没有及时回收等等其他情况导致的,这样排查异常起来异常困难,那么有没有一些可视化的工具,帮助我们可以详细地查看当前应用服务的内存情况,从而为我们在解决异常.优化代码.优化服务等方面提供一些建议呢?幸好,jdk为我们免费提供一个这…
今天在编译一个使用信号量实现进程同步时,出现了库函数不存在的问题.如下图 编译结果实际上是说,没include相应的头文件,或是头文件不存在(即系统不支持该库函数) 但我man shm_open是可以找到帮助文件的(说明系统支持),原因何在??? 注意到link with -lrt  就是说需要使用-lrt 来链接库函数 使用  gcc -lrt sample10_server.c 命令仍然出错(有人这样编译通过了) 使用  gcc  sample10_server.c  -lrt 然后编译通过…