把网卡中断绑定到CPU,最大化网卡的吞吐量

2016-08-05
阅读 8 分钟
17k
我们看到全部的网卡中断都集中到了 CPU0, 因此在有巨大网络流量的时候CPU0可能过载, 让网卡的数据包收发出现延迟. 为了分散CPU处理网卡中断, 我们需要设把网卡绑定到特定的CPU核心. (我的服务器因为只有一个网卡, 一般2U的机架服务器都有4个网卡, 绑定到不同的CPU核心.)

Elixir Ecto: 使用Whatwasit追踪模型的变更和版本化

2016-08-01
阅读 11 分钟
2.4k
Whatwasit 是一个跟踪Ecto模型变化的一个包, 用于审计和版本化. 审计在某些情况下是我们非常需要的, 比如我们需要知道谁在系统中修改了什么, 可以形成审计日志备后期进行审查. 注意: Whatwasit(读作: What was it) 需要Elixir 1.2的支持, 所以要使用 Whatwasit 请首先升级到Elixir 1.2以上

Elixir Ecto: 多数据库跨库查询

2016-07-31
阅读 2 分钟
2.9k
这篇文章说明了如何在Elixir应用程序中使用多个Repo. Repo可以是不同的数据库, 运行在不同的操作系统上. 本文以一个收藏夹的应用来展示如何在Elixir应用程序中使用多个库进行跨库操作.

Elixir Ecto: 在Postgresql中插入二进制数据

2016-07-30
阅读 2 分钟
4.5k
首先我们要知道 Postgresql 中唯一一种二进制数据的类型为 bytea, 表示字节数组或字节序列. 对应于Oracle和MySQL中的 blob.

Elixir Ecto: 复合(多列)唯一约束的Changeset校验

2016-07-30
阅读 2 分钟
2.8k
我们有这么一张表的迁移脚本 20160718132517_create_vehicle_change_owner_table.exs 描述了机动车过户的记录

Elixir Phoenix: Gettext I18N

2016-07-21
阅读 1 分钟
3.2k
创建 <my_app>.Gettext 模块, 如果是通过 mix phoenix.new 创建的项目, 默认已经创建好了, 位于 web/gettext.ex

Brunch:入门上手

2016-07-20
阅读 5 分钟
6.3k
在 Phoenix 项目中遇到关于 Branch 这个 HTML5 构建工具的问题, 在这里为了剥离问题的复杂度, 独立创建一个 Branch 前端项目来探索如何使用 Brunch 这个全新的前端构建工具.

Elixir Ecto: 解决UTC时间戳和本地时间8小时时差的问题

2016-07-13
阅读 5 分钟
5.8k
Ecto 默认使用的是UTC时间, 它要比中国区的本地时间晚 8 小时. 2016-07-21 更新: 模块已经添加到 Hex.pm, 添加 {:ecto_timestamps, "~> 1.0"} 依赖到mix.exs即可, 详细信息参考项目Ecto Timestamps 项目页面 注意, :autogenerate 需要 Ecto 2.0的支持. 所以要使用这个自定义选项, 需要升级到 Ecto 2.0

Elixir Ecto: PostgreSQL大自增长主键的设置

2016-07-02
阅读 2 分钟
3k
要解决的问题 数据库中存储的行数超过了 serial 类型所能容纳的数量, 因此需要采用 bigserial 类型的整数作为主键serial 的取值范围为: 1 到 2147483647bigserial 的取值范围为: 1 到 9223372036854775807

SSH: 使用SSH+SOCAT中继UDP数据包

2016-06-26
阅读 2 分钟
14.1k
我们在阿里云开了一台服务器, 合作方那边的设备需要向服务器6000端口不停的发送UDP数据包, 我通过SSH和SOCAT把对服务器6000端口的数据包转发到我本地Macbook Pro的6000端口上以方便开发和测试工作. 目的是解决SSH仅支持TCP的问题

Erlang/Elixir: 使用 Leex 和 Yecc 解析领域语言(DSL)

2016-06-22
阅读 4 分钟
6.6k
本文需要对编译原理有一定的了解. Leex 是一个 Erlang 语言实现的词法分析器(Lexical Analyzer). 接收字符流输入, 产生符号流输出.Yecc 是一个 Erlang 语言实现的语法分析器(Syntactic Parser). 接收符号流输入, 产生AST.

使用 Rust 语言开发 Erlang NIF

2016-06-22
阅读 3 分钟
6.6k
Rustler 是一个在安全的用 Rust 编写 Erlang NIF 的库. 这里安全的含义是, 它不会导致 BEAM(Erlang 虚拟机)的崩溃. 该库提供了一个设施用于生成与BEAM交互的模板, 处理Erlang Term的编码和解码. Rustler 适用于 Erlang 和 Elixir, Elixir 是首选的.

在Linux系统中收集硬件和系统信息

2016-06-08
阅读 6 分钟
4.6k
lshw(Hardware Lister)是另外一个可以查看硬件信息的工具, 不仅如此, 它还可以用来做一些硬件的benchmark. 这个工具其实就是用/proc里面读取一些文件来显示相关的信息, 它用到了如下文件和目录:

Edeliver 持续部署Checklist

2016-06-04
阅读 2 分钟
2.8k
Elixir 部署系列 Erlang/Elixir: 用Distillery替换Exam打包器Erlang/Elixir: Edeliver 持续部署 ChecklistErlang/Elixir: 使用 Edeliver 进行持续部署 本文是基于 Erlang/Elixir: 使用 Edeliver 进行持续部署 文章经过一周的试错, 总结出来的工作流. 1. 假定当前版本为0.1.16, 需要升级到0.1.17, 需要在mix.exs文件中提...

Erlang/Elixir: 使用 Edeliver 进行自动化的持续部署

2016-05-30
阅读 7 分钟
5.7k
增加 2016-08-19Erlang/Elixir: 用Distillery替换Exam打包器更新 2016-07-25这里有一篇Gitbooks上的文章专门简介如何搭建,配置一个Phoenix应用程序的自动化构建,部署的过程Phoenix持续部署 Edeliver 是一个基于 deliver 的构建和部署工具.它提供了一个 Bash 脚本来帮助你构建, 部署, 以及执行热代码升级

Erlang/Elixir: 使用 OpenCV, Python 搭建图片缩略图服务器

2016-05-30
阅读 7 分钟
5.3k
这篇文章是在OSX上测试和运行的的, Ubuntu下的安装和配置请移步到这里 应用程序进程树, 默认启动 Poolboy 时, 初始化10个用于处理图片的 Python 工作进程(Worker) 首先安装OpenCV需要的工具包 {代码...} 使用 Homebrew 的 Python 版本, 而不是 Mac OS X 系统自带的 Python {代码...} 创建 Elixir 项目 {代码...} Elixir ...

Elixir: Syn,一个分布式进程注册表的例子

2016-05-30
阅读 2 分钟
2.8k
文章 Elixir: Syn,一个分布式进程注册表和进程组管理器 阐述了如何使用 Mnesia 的仅内存表来运行分布式系统全局进程注册简介, 本文用一个实际的例子演示如何使用 Syn 进行分布式全局进程注册和查询

Erlang/Elixir: 有限状态机原理笔记

2016-05-22
阅读 6 分钟
5.2k
OTP 原理 有限状态机被描述为如下形式的一组关系集合. 含义可以解释为:如果在状态S的时候发生了事件E, 那么执行动作A并且使状态S过渡( transition )到状态S'. 对于使用 gen_fsm 行为的有限状态机来说, 状态过渡规则被实现为一些 Erlang 函数, 他们遵循如下的约定: {代码...} 对于这种形式的函数, 状态机存在多少个状态, ...

Erlang/Elixir 社区摘要: 2016-05-21

2016-05-21
阅读 2 分钟
2.3k
Elixir 雷达, 49期 [链接] 如何使用环境变量来配置Exrm发布的应用 [链接] Merkle Trees in Elixir Merkle Tree 是由计算机科学家 Ralph Merkle 在很多年前提出的,并以他本人的名字来命名。最广泛的用途就是用于分布式系统的数据完整性校验, 比如Git版本系统, ZFS文件系统, BT协议, 比特币等都用了Merkle树来对数据进行...

Logstash: 第一次体验记录

2016-05-20
阅读 2 分钟
3.8k
Logstash的基本骨架一个 Logstash 配置的基本组件包括, input, codec, filter, output, 其中过滤器filter, codec不是必须的.

Erlang/Elixir: 连接到远程节点

2016-05-20
阅读 2 分钟
3.9k
启动服务器, 同时设置SSH的系统目录和用户目录. 如果不设置, 系统目录默认为/etc/ssh(需要root权限), 用户目录为~/.ssh

Erlang/Elixir: 在Ubuntu上通过SystemTap对Erlang进行运行时的动态追踪

2016-05-20
阅读 13 分钟
4.6k
SystemTap 是监控和跟踪运行中的Linux 内核的操作的动态方法. 这句话的关键词是动态. 因为SystemTap 没有使用工具构建一个特殊的内核, 而是允许您在运行时动态地安装该工具.

Erlang/Elixir: 在OSX上通过DTrace对Erlang进行运行时的动态追踪

2016-05-19
阅读 11 分钟
5.5k
2018-02-17 更新对于 El Capitan, 以及之后的OSX系统, 需要禁用SIP(System Integrity Protection)参考: System Integrity Protection是什么 如何让Dtrace能够重新工作 系统完整性保护添加另外一层安全保护模型 EL Capitan中的Rootless是什么? Dtrace指南

Elixir Ecto: 在Exrm发布版中执行移植脚本

2016-05-16
阅读 2 分钟
2.3k
方法一: 直接执行 {代码...} {代码...} {代码...} 方法二: 需要编写任务 {代码...} 执行移植 {代码...}

Erlang/Elixir 社区摘要: 2016-05-16

2016-05-16
阅读 2 分钟
2.4k
[链接]Riak 集群配置工具 [链接]创建作为OTP应用程序Elixir库 [链接]Elixir中的进程名称注册 [链接]Tqdm 一个命令行的进度条工具 [链接][链接]状态监控工具 [链接]Webchat 媒体平台身份认证客户端库 [链接]十六禁止二进制转换工具 [链接][链接]SHA3散列函数 [链接]简单来说,OSC是一种网络传输协议,和MIDI一样。可以定...

Elixir Ranch: 监听器 (Listener)

2016-05-13
阅读 5 分钟
3.5k
一个监听器是一组进程, 它的用途是在一个指定的端口上监听新的TCP连接. 它管理着一个接收器进程池, 池中的每个接收器一直持续不断的接受连接. 当一个新的连接到达时, 它启动一个新的进程来执行协议处理代码, 所有的套接字编程通过使用传输处理模块进行抽象.

Elixir Ranch: 传输层抽象

2016-05-12
阅读 3 分钟
3.2k
Ranch 的传输层抽象了两个协议处理模块出来, 一个是用于普通的TCP传输层套接字 ranch_tcp, 另一个是SSL加密传输层套接字处理模块 ranch_ssl

Elixir Ranch: Embedded 模式

2016-05-11
阅读 4 分钟
5.4k
嵌入模式允许你把 Ranch 监听器直接插入到你的监控树中. 如果整个应用程序其他部分挂掉了, 可以通过关闭监听器的方法, 来提供更好的容错控制.

Elixir: Syn,一个分布式进程注册表和进程组管理器

2016-05-10
阅读 6 分钟
2.9k
全局进程注册表, 用单个 Key 在集群中的所有节点上注册一个进程. 其作用类似于 DNS 服务器的作用: 通过域名获取一个IP地址, 这里的进程注册表的作用是: 通过 Key 获取进程, 简单的说就是通过索引Key 去进程 Hash 表中查询对应的 Pid.

Elixir: 开发和发布Elixir库

2016-05-05
阅读 5 分钟
4.6k
创建 Elixir 项目 {代码...} Mix 生成了如下目录结构 {代码...} 开发代码 在 lib 下创建 simple_statistics 子目录, 和包名称一样, 用于存放其他模块. {代码...} {代码...} 编写文档 使用 @moduledoc 和 @doc 编写函数和模块的文档. 应该在模块中编写每一个主要函数的文档. {代码...} 添加文档测试 {代码...} 把 doctest...