引入Nginx线程池功能使性能提升9倍!

Posted Posted in Web, 笔记, 菜鸟, 运维

前言
Nginx以异步、事件驱动的方式处理连接。传统的方式是每个请求新起一个进程或线程,Nginx没这样做,它通过非阻塞sockets、epoll、kqueue等高效手段,实现一个worker进程处理多个连接和请求。

一般情况下下是一个CPU内核对应一个worker进程,所以worker进程数量固定,并且不多,所以在任务切换上消耗的内存和CPU减少了。这种方式很不错,在高并发和扩展能力等方面都能体现。

看图说话,任务切换不见了。

但是异步事件模式很不喜欢阻塞(blocking)。很多第三方模块使用了阻塞模式的调用,有时候,用户乃至模块作者都不知道到阻塞调用会大大降低 ….[阅读全文]

超好用的Nginx日志分析工具GoAccess使用详解

Posted Posted in 监控, 笔记, 菜鸟, 运维

如果把运维看做是医生给病人看病,则日志就是病人对自己的陈述,很多时候医生需要通过对病人的描述中得出病人状况,是否严重,需要什么计量的药,什么类型的药。所以古人有句话叫对症下药,这个症就是病人的描述加医生的判断,在重一点的病在加上很多的化验。在医生看病时病人的描述和化验单上的数据对医生是非常重要的。同理日志在运维中的作用也是类似的,但非常不幸,日志在很多运维中被严重低估,直到磁盘空间不足的时候才想到,这有个大的日志文件把他删了,这样可以节省空间。

….[阅读全文]

你了解Kubernetes(k8s)吗?一文让你理解k8s核心概念

Posted Posted in Kubernetes, 云计算, 笔记, 菜鸟

一、云原生是什么

CNCF给出的定义是:

容器化微服务容器可以动态调度我认为云原生实际上是一种理念或者说是方法论,它包括如下四个方面:

容器化:作为应用包装的载体持续交付:利用容器的轻便的特性,构建持续集成和持续发布的流水线DevOps:开发与运维之间的协同,上升到一种文化的层次,能够让应用快速的部署和发布微服务:这是应用开发的一种理念,将单体应用拆分为微服务才能更好的实现云原生,才能独立的部署、扩展和更新一句话解释什么是云原生应用:云原生应用就是为了在云上运行而开发的应用

….[阅读全文]

Docker中文文档(十):DockerCompose项目实战

Posted Posted in Docker, 云计算, 笔记, 菜鸟

Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用。

本章将介绍 Compose 项目情况以及安装和使用。

1、简介

Compose 项目目前在 Github 上进行维护。

Compose 定位是“defining and running complex applications with Docker”,前身是 Fig,兼容 Fig 的模板文件。

Dockerfile 可以让用户管理一个单独的应用容器;而 Compose 则允许用户在一个模板(YAML 格式)中定义一组相关联的应用容器(被称为一个 project,即项目),例如一个 Web 服务容器再加上后端的数据库服务容器等。

….[阅读全文]

Docker中文文档(九):C/S架构以及底层实现原理

Posted Posted in Docker, 云计算, 笔记, 菜鸟

Docker使用客户端-服务器(client-server)架构模式。Docker客户端会与Docker守护进程进行通信。Docker守护进程会处理复杂繁重的任务,例如建立、运行、发布你的Docker容器。Docker客户端和守护进程可以运行在同一个系统上,当然你也可以使用Docker客户端去连接一个远程的Docker守护进程。Docker客户端和守护进程之间通过socket或者RESTful API进行通信。

 

….[阅读全文]

Docker中文文档(八):Dockerfile的详细解析

Posted Posted in Docker, 云计算, 笔记, 菜鸟

Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。对于开发人员:可以为开发团队提供一个完全一致的开发环境;对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;对于运维人员:在部署时,可以实现应用的无缝移植。

1、基本结构

Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。

一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

….[阅读全文]

Docker中文文档(七):BasicSecurity基本安全功能介绍

Posted Posted in Docker, 云计算, 笔记, 菜鸟

Docker作为最重视安全的容器技术之一,在很多方面都提供了强安全性的默认配置,其中包括:容器root用户的Capability能力限制、Seccomp系统调用过滤、Apparmor的 MAC 访问控制、ulimit限制、pid-limits的支持,镜像签名机制等。

1、内核名字空间

Docker 容器和 LXC 容器很相似,所提供的安全特性也差不多。当用 docker run 启动一个容器时,在后台 Docker 为容器创建了一个独立的名字空间和控制组集合。

….[阅读全文]

Docker中文文档(六):networks高级网络配置实战

Posted Posted in Docker, 云计算, 笔记, 菜鸟

1、快速配置指南

下面是一个跟 Docker 网络相关的命令列表。

其中有些命令选项只有在 Docker 服务启动的时候才能配置,而且不能马上生效。

  • -b BRIDGE or –bridge=BRIDGE –指定容器挂载的网桥
  • –bip=CIDR –定制 docker0 的掩码
  • -H SOCKET… or –host=SOCKET… –Docker 服务端接收命令的通道
  • –icc=true|false –是否支持容器之间进行通信
  • –ip-forward=true|false –请看下文容器之间的通信
  • –iptables=true|false –禁止 Docker 添加 iptables 规则
  • –mtu=BYTES –容器网络中的 MTU

….[阅读全文]

Docker中文文档(五):networks容器网络与互联

Posted Posted in Docker, 云计算, 笔记, 菜鸟

Docker自己的网络方案比较简单,就是每个宿主机上会跑一个非常纯粹的Linux Bridge,这个Bridge可以认为是一个二层的交换机,但它的能力有限,只能做一些简单的学习和转发。

1、外部访问容器

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。

当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。

使用 docker ps 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。

….[阅读全文]

Docker中文文档(四):volumes数据卷使用实战

Posted Posted in Docker, 云计算, 笔记, 菜鸟

Docker的镜像是由一系列的只读层组合而来的,这个设计使得Docker可以提高镜像构建、存储和分发的效率,节省了时间和存储空间,然而也存在如下问题: 不能在宿主机上很方便地对容器中的文件进行访问;多个容器之间的数据无法共享;当删除容器时容器产生的数据将丢失。为了解决这些问题,Docker引人了数据卷(volume)机制。volume是存在于一个或多个容器中的特定文件或文件夹,这个目录以独立于联合文件系统的形式在宿主机中存在。

 

….[阅读全文]