erl_0018《硝烟中的erlang》 读书笔记005 “进程信息"

  对一个运行中的Erlang系统来说,进程绝对是重要的组成部分。正因为进程是所有运行实体的基础,因此会想去了解它们的更多信息。幸运的是,VM提供了大量的可用信息,其中有些可以安全使用,有些在生产环境中使用是不安全的(因为会返回非常大的数据集合,拷贝到shell以及打印所需的内存量会造成节点崩溃)。

  进程的所有信息都可以通过调用process_info(Pid, Key)或者process_info(Pid, [keys])86得到。

  下面是一些常用的键值:

时间: 2024-11-02 19:47:02

erl_0018《硝烟中的erlang》 读书笔记005 “进程信息"的相关文章

《Linux内核设计与实现》读书笔记之进程管理

1.进程描述符及任务结构 Linux内核把进程存放在叫做任务队列的双向循环链表中.链表中的每一项都是类型为task_struct,称为进程描述符的结构.进程描述符包含一个具体进程的所有信息. task_struct相对较大,在32位的机器长,它大约有1.7K字节.进程描述符中的数据能完整的描述一个正在执行的程序:它打开的文件.进程的地址空间.挂起的信号.进程的状态,还有其他更多信息(参见下图). 内核在每个进程的内核栈底创建一个struct thread_info结构,使它记录下相应进程的tas

APUE读书笔记:进程控制

重点函数:fork,exit,_exit 一.fork 函数原型: #include <unistd.> pid_t fork(void) 函数说明:fork函数将创建一个子进程,该函数调用一次,但是有两次返回.子进程返回值为0,父进程的返回值是该子进程的进程ID. 小技巧:父进程能够拿到该次fork生成的子进程的ID,这是唯一的机会.而子进程不需要关心自己的进程ID.通过是否关心子进程id,就能明确地区分是父进程还是子进程. 相关的函数: 获取自己的进程ID:getpid() 获取父进程ID

erl_0015 《硝烟中的erlang》 读书笔记002 “为过载做计划”

为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关37.解决这类问题的方法有很多,不过只有在深入.全面的理解系统后,才能做出正确的选择.    基本上,我从事的所有项目都可以简化类比成一个非常大的浴室水槽.用户请求和数据从龙头流入.Erlang系统则是水槽和管道,可以把水流出的地方(数据库,外部API或者服务,等等)看作是下水道系统. 当Erlang节点由于队列溢出而死亡时,找到原因所在是至关重要的.是流入槽中的水太多了吗?是下水道

硝烟中的Erlang -- Erlang生产系统问题诊断、调试、解决指南

英文原名:Stuff Goes Bad: Erlang In Anger 英文作者:FRED HEBERT 下载地址:http://vdisk.weibo.com/s/iGQ-rFuJU0-4 译者序 在我近20年的软件开发工作中,除了Erlang,还使用过许多其他编程语言.有工作需要的C/C++.Java,也有作为业余爱好使用的Lisp.Haskell.Scala等,其中我最喜欢的当属Erlang.除了因为我的电信软件开发背景外,还有一个很重要的原因是Erlang独特的设计哲学和解决问题方式.

oracle中sql优化读书笔记1-优化器

我们写一条sql语句给Oracle,Oracle是需要将他解析之后才去执行的,也就是要明确先干啥后干啥.这就是所谓的执行计划. 优化器就是用来得出最后的执行计划的工具,Oracle的优化器有两种一种是基于规则的,一种是基于成本的. 1.基于规则的,就是明确了步骤,比如说必须是先把where 条件中最后一个条件用于过滤,再在此基础上用倒数第二个条件过滤. 2.基于成本的,就是先收集一下当前的数据量有多大,各种条件的数据量有多大(这就得有Oracle的统计的东西做支持了),通过判断找出来过滤出最少的

《UNIX环境高级编程》读书笔记之进程关系

1.进程组 每个进程除了有一进程ID之外,还属于一个进程组.进程组中的各个进程接受来自同一终端的各种信号.每个进程组有唯一的进程组ID. #include <unistd.h> pid_t getpgrp(void)//得到调用进程的进程组ID 每个进程组都有一个组长.组长进程的进程组ID等于其进程ID. 进程可以调用setpgid加入一个现有的进程组或者创建一个新的进程组. #include <unistd.h> int setpgid(pid_t pid,pid_t pgid)

《Linux内核设计与实现》读书笔记之进程地址空间

1.进程的内核区域包含各种内存对象 进程的内核区域包含各种内存对象,比如: 1.可执行文件代码可以包含各种内存映射,称为代码段(text section). 2.可执行文件的已初始化全局变量的内存映射,称为数据段(data section). 3.包含未初始化全局变量,也就是bss段的零页(页面中的信息全部为0值,所以可以用于映射bss段等目的)的内存映射. 4.用于进程用户空间栈的内存映射. 5.每一个诸如c库或动态链接程序等共享库的代码段.数据段和bss段也会被载入进程的地址空间. 6.任何

《UNIX环境高级编程》读书笔记之进程环境

1.进程终止 有八种方式使进程终止 (1)从main返回 (2)调用exit; (3)调用_exit或者_Exit: (4)最后一个线程从其启动历程返回 (5)最后一个线程调用pthread_exit: 异常终止方式有三种: (6)调用abort(): (7)接到一个信号: (8)最后一个线程对取消请求做出相应 三个函数用于正常终止一个程序: #include <stdlib.h> void exit(int status); void _Exit(int status); #include

《UNIX环境高级编程》读书笔记之进程控制

1.进程标识 每个进程都有非负整型标示的唯一进程ID.系统中有一些特殊的进程,如ID为0的进程为调度进程,常被称为交换进程(swapper).进程ID为1的进程为init进程,此进程负责启动UNIX系统.init进程是一个普通的用户进程,但是它是以超级用户权限运行的.init进程会成为所有孤儿进程(父进程已死亡的进程)的父进程. 除了进程ID,UNIX进程还有其他一些标示符.他们可以通过下列函数得到: #include<unistd.h> pid_t getpid(void)//返回进程ID