最近遇到MySQL 报警,cpu突然飙高的情况,上去想看看是什么原因,运维找了过来。这个过程接触了 show processlist,于是整理和记录一下。 MySQL使用show processlist查看正在执行的SQL语句,通过show processlist查看正在执行的sql的情况以及及时kill死锁的SQL,通过EXPLAIN分析需要优化的sql语句。 命令行登录MySQL mysql … 继续阅读
分类目录归档:编程
Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 我的理解是,除了String意外,其他数据类型本质上都是容器,对这些数据类型的操作,就是对这些数据类型的读写,对其进行CRUD。 String string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 ke … 继续阅读
Netty中的零拷贝
最近看了一些netty的文章,对操作系统零拷贝和netty的零拷贝起了点兴趣,于是整理了相关的知识。 操作系统的零拷贝 传统的零拷贝指的是数据传输过程中,不需要CPU进行数据的拷贝。主要是数据在用户空间与内核中间之间的拷贝。 操作系统的零拷贝,这种方式需要四次数据拷贝和四次上下文切换: 1. 数据从磁盘读取到内核的read buffer 2. 数据从内核缓冲区拷贝到用户缓冲区 3. 数据从用户缓冲 … 继续阅读
零拷贝
什么是零拷贝 零拷贝主要的任务就是避免CPU将数据从一块存储拷贝到另外一块存储,主要就是利用各种零拷贝技术,避免让CPU做大量的数据拷贝任务,减少不必要的拷贝,或者让别的组件来做这一类简单的数据传输任务,让CPU解脱出来专注于别的任务。这样就可以让系统资源的利用更加有效。 操作系统的零拷贝 非零拷贝的拷贝过程: 零拷贝的拷贝过程: 如何减少数据拷贝的次数呢?一个很明显的着力点就是减少数据在内核空间 … 继续阅读
awk命令
最近上服务器看东西,看到有几个shell脚本都有awk命令,对这个命令不是很熟悉,于是整理了一下这个命令的用法。 Linux awk 命令 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 语法 1.命令行方式 … 继续阅读
IO多路复用(multiplexing)
IO多路复用(multiplexing) I/O模型 目前Linux系统中提供了5种IO处理模型: 1. 阻塞IO 传统的IO模型。 2. 非阻塞IO 默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库 3. IO多路复用: 即经典的Reactor设计模式,有时也称为异步阻塞IO,Java中的Select … 继续阅读