发布于 2017

  • Unix命令: vmstat

    2017-09-07 @ 管理

    汇报虚拟内存统计信息 摘要 vmstat [-a] [-n] [-t] [-S unit] [delay [ count]] vmstat [-s] [-n] [-S unit] vmstat [-m] [-n] [delay [ count]] vmstat [-d] [-n] [delay [ count]] vmstat [-p disk partition] [-n] [delay [ count]] vmstat [-f] vmstat [-V] 最常用的用法是: vmstat …

    更多

  • Unix命令: top

    2017-09-07 @ 管理

    显示Linux任务 交互式操作 按下空格或回车强制刷新 使用h打开帮助 使用l,t,m收起摘要部分。 使用d修改刷新周期 使用z开启颜色高亮 使用u列出指定用户的进程 使用<>来改变排序列 使用P按CPU使用率排序 使用M按驻留内存大小排序 使用T按累计时间排序 1. 批处理模式 -b参数可以用于批处理模式,配合-n参数指定批次数目。同时-d参数可以指定批次的间隔时间 例如获取机器当前的负载使用情况,以0.1秒为间隔获取三次,获取最后一次的CPU摘要。 $ top -bn3 …

    更多

  • Unix命令: free

    2017-09-07 @ 管理

    显示系统的内存使用情况 free -b | -k | -m | -g | -h -s delay -a -l 其中-b | -k | -m | -g | -h 可用于控制显示大小时的单位(字节,KB,MB,GB,自动适配) -s可以指定轮询周期,-c指定轮询次数。 输出样例 $ free -m total used free shared buffers cached Mem: 387491 379383 8107 37762 182 348862 -/+ buffers/cache: …

    更多

  • Unix命令 iostat

    2017-09-07 @ 管理

    汇报IO相关统计信息 摘要 iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } [ device [...] | ALL ] ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [interval [ count ] ] 默认情况 …

    更多

  • Go数据库接口教程

    2017-08-24 @ 开发

    Go数据库教程: database/sql ​ Go使用SQL与类SQL数据库的惯例是通过标准库database/sql。这是一个对关系型数据库的通用抽象,它提供了标准的、轻量的、面向行的接口。不过database/sql的包文档只讲它做了什么,却对如何使用只字未提。快速指南远比堆砌事实有用,本文讲述了database/sql的使用方法及其注意事项。 1. 顶层抽象 ​ 在Go中访问数据库需要用到sql.DB接口:它可以创建语句(statement)和事务(transaction),执行查询,获 …

    更多

  • GO与PG实现缓存同步

    2017-08-03 @ 开发

    ​ Parallel与Hierarchy是架构设计的两大法宝,缓存是Hierarchy在IO领域的体现。单线程场景下缓存机制的实现可以简单到不可思议,但很难想象成熟的应用会只有一个实例。在使用缓存的同时引入并发,就不得不考虑一个问题:如何保证每个实例的缓存与底层数据副本的数据一致性(和实时性)。 ​ PostgreSQL在版本9引入了流式复制,在版本10引入了逻辑复制,但这些都是针对PostgreSQL数据库而言的。如果希望PostgreSQL中某张表的部分数据与应用内存中的状态保持一致,我们还 …

    更多

  • PgSQL审计触发器

    2017-06-09 @ 开发

    有时候,我们希望记录一些重要的元数据变更,以便事后审计之用。 PostgreSQL的触发器就可以很方便地自动解决这一需求。 -- 创建一个审计专用schema,并废除所有非superuser的权限。 DROP SCHEMA IF EXISTS audit CASCADE; CREATE SCHEMA IF NOT EXISTS audit; REVOKE CREATE ON SCHEMA audit FROM PUBLIC; -- 审计表 CREATE TABLE …

    更多

  • PgSQL 5分钟实现推荐系统

    2017-04-05 @ 开发

    推荐系统大家都熟悉,猜你喜欢,淘宝个性化什么的,前年双十一搞了个大新闻,还拿了CEO特别贡献奖。 今天就来说说怎么用PostgreSQL 5分钟实现一个最简单ItemCF推荐系统,以推荐系统最喜闻乐见的movielens数据集为例。 原理 ItemCF的原理可以看项亮的《推荐系统实战》,不过还是稍微提一下吧,了解的直接跳过就好。 Item CF,全称Item Collaboration Filter,即基于物品的协同过滤,是目前业界应用最多的推荐算法。ItemCF不需要物品与用户的标签、属性,只 …

    更多

发布于 2016

  • UUID性质原理与应用

    2016-11-06 @ 开发

    最近一个项目需要生成业务流水号,需求如下: ID必须是分布式生成的,不能依赖中心节点分配并保证全局唯一。 ID必须包含时间戳并尽量依时序递增。(方便阅读,提高索引效率) ID尽量散列。(分片,与HBase日志存储需要) 在造轮子之前,首先要看一下有没有现成的解决方案。 Serial 传统实践上业务流水号经常通过数据库自增序列或者发码服务来实现。 MySQL的Auto Increment,Postgres的Serial,或者Redis+lua写个小发码服务都是方便快捷的解决方案。这种方案可以保 …

    更多

  • MongoFDW安装部署

    2016-05-28 @ 管理

    更新:最近MongoFDW已经由Cybertech接手维护,也许没有这么不堪了。 最近有业务要求通过PostgreSQL FDW去访问MongoDB。开始我觉得这是个很轻松的任务。但接下来的事真是让人恶心的吐了。MongoDB FDW编译起来真是要人命:混乱的依赖,临时下载和Hotpatch,错误的编译参数,以及最过分的是错误的文档。总算,我在生产环境(Linux RHEL7u2)和开发环境(Mac OS X 10.11.5)都编译成功了。赶紧记录下来,省的下次蛋疼。 环境概述 理论上编译这 …

    更多