JohnShen's Blog.

JohnShen's Blog.

Docker 引擎结构与底层原理
Docker 引擎结构曾经的Docker曾经的Docker引擎主要包含两部分:LXC和Docker daemon: Docker daemon是单一的二进制文件,包含诸如Docker客户端、Docker API、容器运行时、镜像构建等。 LXC提供了对诸如命名空间(Namespace)和控制组(CGroup)等基础工具的操作能力,它们是基于Linux内核的容器虚拟化技术。 这两者皆有弊端: LXC 是基于Linux,无法做到跨平台。此外,过度依赖外部组件,影响发展。后开发 Libcontainer 取代LXC成为默认的执行驱动。 Docker daemon:难以变更,且运行较慢。...
Greenplum-Spark 数据传输工具: Greenplum-Spark Connector
Greenplum-Spark Connector 简称 GSC ,目前使用的版本为v1.6: https://greenplum-spark.docs.pivotal.io/1-6/index.html Greenplum-Spark Connector Version Greenplum Version Spark Version Scala Version 1.6.1, 1.6.2 4.3.x, 5.x, 6.x 2.3.1 and above 2.11 1.6.0 4.3.x, 5.x 2.1.2 and above 2.11 概述 Spark appl...
Linux性能优化-网络性能篇
网络基础网络模型国际标准化组织制定的 OSI 网络模型: 应用层,负责为应用程序提供统一的接口。 表示层,负责把数据转换成兼容接收系统的格式。 会话层,负责维护计算机之间的通信连接。 传输层,负责为数据加上传输表头,形成数据包。 网络层,负责数据的路由和转发。 数据链路层,负责 MAC 寻址、错误侦测和改错。 物理层,负责在物理网络中传输数据帧。 OSI 模型过于复杂,没有提供一个可实现的方法。所以在 Linux 中实际上使用的是四层模型,即 TCP/IP 网络模型: 应用层,负责向用户提供一组应用程序,比如 HTTP、FTP、DNS 等。 传输层,负责端到端的通信,比...
Linux性能优化-CPU篇
平均负载平均负载提供了一个快速查看系统整体性能的手段。平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。 可运行状态进程,是指正在使用 CPU 或者正在等待 CPU 的进程( ps 命令看到的处于 R 状态 Running 或 Runnable)的进程 不可中断状态进程:是正处于内核态关键流程中的进程,这些流程不可打断,如等待硬件设备的 I/O 响应( ps 命令中看到的 D 状态 Uninterruptible Sleep,也称为 Disk Sleep)的进程 可以简单理解为,平均负载其实就是平均活跃进程...
[Untitled Post]
Spark特点: Speed / Generality / Ease of use / Runs Everywhere 快的原因: 基于内存,而非基于磁盘。 基于DAG 有向无环图 的执行引擎 MR是进程级别运行,Spark是基于线程模型(线程池) local模式: ./spark-shell –master local[2] standalone模式 spark-env.sh 123SPARK_WORKER_CORES=2SPARK_WORKER_MEMORY=2gSPARK_WORKER_INSTANCES=1 slaves 文件slave启动在哪些机器上 ./sbin/sta...
Redis-持久化
RDB1. 触发可以分为手动触发和自动触发: 手动触发 bgsave 命令,Redis 进程执行 fork 操作创建子进程,RDB过程由子进程负责,完成后自动结束。阻塞只发生在 fork 阶段,一般时间很短。 save 命令,已舍弃,会阻塞 Redis 直至 RDB 完成。 自动触发内部自动触发使用的都是 bgsave 的形式 配置文件中的 save 配置:save m n 表示m秒内数据集存在 n 次修改时,自动触发 bgsave。 从节点执行全量复制操作,主节点自动执行 bgsave 生成 RDB 文件并发送给从节点。 执行 shutdown 时,如果没有开启 aof,则会...
Docker 网络综述
Docker 网络综述1. Docker 网络模型Docker的网络架构由三个主要部分构成:CNM(Container Networking Mode 容器网络模型)、Libnetwork、驱动。CNM 是设计标准,该方案是开源且支持插接式连接。而 Libnetwork 是 CNM 的具体实现,通过 Go 语言编写实现了 CNM 中列举的核心组件。驱动则以实现特定网络拓扑的形式达成模型扩展。 CNM CNM 中定义了几个基本元素: Sandbox 沙盒:Sandbox 作为一个独立的网络栈,管理着网络接口、DNS配置、路由表等。一个 Sandbox 可以包含来自多个网络的不同 End...
Redis 复制
复制复制是高可用 Redis 的基础,哨兵和集群都是在复制的基础上实现高可用的。 Redis实例分为主节点和从节点,默认情况下都是主节点。每个从节点只有一个主节点,主节点可以同时具有多个从节点。复制的数据流是单向的,只能从主节点复制到从节点。 复制的相关配置 关键词:slaveof <ip> <host>; slaveof no one; info replication;masterauth;repl-disable-tcp-nodelay 建立复制一. 配置文件中加入 slaveof 配置: 1slaveof <masterip> <mas...
avatar
John Shen
功不唐捐,殊途同归。