无名老卒BLOG

自己不能胜任的事情,切莫轻易答应别人,一旦答应了别人,就必须实践自己的诺言。


  • 首页

  • Linux基础

  • 工具教程

  • Docker&k8s

  • 性能优化

  • 抓包分析

  • shell教程

  • 其他

  • 标签67

  • 关于

  • 搜索

docker入门教程五:网络模式

发表于 2019-10-02 | 更新于 2019-10-20 | 分类于 Docker&k8s | 评论数:
本文字数: 11k | 阅读时长 ≈ 10 分钟

简介

Docker在1.9版本中引入了一整套docker network子命令和跨主机网络支持。这允许用户可以根据他们应用的拓扑结构创建虚拟网络并将容器接入其所对应的网络。

其实,早在Docker1.7版本中,网络部分代码就已经被抽离并单独成为了Docker的网络库,即libnetwork。在此之后,容器的网络模式也被抽像变成了统一接口的驱动。

为了标准化网络的驱动开发步骤和支持多种网络驱动,Docker公司在libnetwork中使用了CNM(Container Network Model)。CNM定义了构建容器虚拟化网络的模型。同时还提供了可以用于开发多种网络驱动的标准化接口和组件。

阅读全文 »

手把手教你将tar转rpm包

发表于 2019-09-25 | 更新于 2021-02-04 | 分类于 Linux基础 | 评论数:
本文字数: 46k | 阅读时长 ≈ 42 分钟

make编译安装

本节内容来源鸟哥私房菜,第二十二章、软件安装:原始码与 Tarball,有兴趣朋友建议看原版。

gcc相关知识

先编写一个C文件,其第一行表示包含文件在/usr/include/stdio.h下,如果没有申明,则需要使用参数-I /usr/include指定。

阅读全文 »

docker入门教程四:Dockerfile制作镜像与指令详解

发表于 2019-09-22 | 更新于 2019-10-02 | 分类于 Docker&k8s | 评论数:
本文字数: 34k | 阅读时长 ≈ 31 分钟

构建镜像docker bulid

简介

镜像构建的完整命令为docker build [OPTIONS] PATH | URL | -。在这条语句中,并没有指定Dockerfile路径,这是因为大家都习惯使用默认的文件名,实际上 Dockerfile 的文件名并不要求必须为 Dockerfile,而且并不要求必须位于上下文目录中,比如可以用 -f ../Dockerfile.php 参数指定某个文件作为 Dockerfile。

PATH指的是上下文目录,那么什么是上下文呢?首先我们要理解 docker build 的工作原理。Docker 在运行时分为 Docker daemon(也就是服务端守护进程)和docker client客户端工具。Docker 的引擎提供了一组 REST API,被称为 Docker Remote API,而如 docker 命令这样的客户端工具,则是通过这组 API 与 Docker 引擎交互,从而完成各种功能。因此,虽然表面上我们好像是在本机执行各种 docker 功能,但实际上,一切都是使用的远程调用形式在服务端(Docker 引擎)完成。也因为这种 C/S 设计,让我们操作远程服务器的 Docker 引擎变得轻而易举。

docker build 命令构建镜像,其实并非在本地构建,而是在服务端,也就是 Docker 引擎中构建的。所以才引入了上下文的概念。当构建的时候,用户会指定构建镜像上下文的路径,docker build 命令得知这个路径后,会将路径下的所有内容打包,然后上传给 Docker 引擎。这样 Docker 引擎收到这个上下文包后,展开就会获得构建镜像所需的一切文件。

阅读全文 »

docker入门教程三:数据卷与端口

发表于 2019-09-21 | 更新于 2019-10-01 | 分类于 Docker&k8s | 评论数:
本文字数: 6.6k | 阅读时长 ≈ 6 分钟

数据卷volume

简介

Docker的镜像是由一系列的只读层组合而来,当启动一个容器的时候,Docker加载镜像的所有只读层,并在最上层加入一个读写层。这个设计使得Docker可以提高镜像构建、存储和分发的效率,节省了时间和存储空间,然而也存在如下问题:

阅读全文 »

Win10安装Ubuntu子系统且开启SSH

发表于 2019-09-16 | 更新于 2019-09-28 | 分类于 工具教程 | 评论数:
本文字数: 3.8k | 阅读时长 ≈ 3 分钟

安装方法

在win10上面是可以开启ubuntu子系统的,安装好了之后,就可以使用ubuntu直接访问win系统里面的文件,这样对于要使用tar打包、或者简单对日志进行分析,就很方便了。如是,C盘是挂载在/mnt/c下,能直接访问的感觉真爽。

1
2
3
4
root@localhost:~# df -h |grep mnt
C: 81G 73G 8.2G 90% /mnt/c
D: 61G 41G 20G 68% /mnt/d
E: 98G 68G 31G 69% /mnt/e
阅读全文 »

docker入门教程二:镜像与容器

发表于 2019-09-12 | 更新于 2019-10-11 | 分类于 Docker&k8s | 评论数:
本文字数: 35k | 阅读时长 ≈ 32 分钟

镜像相关操作

镜像从使用上来看,有如下12个指令:

1
2
3
4
5
6
7
8
9
10
11
12
docker image build		Build an image from a Dockerfile
docker image history Show the history of an image
docker image import Import the contents from a tarball to create a filesystem image
docker image inspect Display detailed information on one or more images
docker image load Load an image from a tar archive or STDIN
docker image ls List images
docker image prune Remove unused images
docker image pull Pull an image or a repository from a registry
docker image push Push an image or a repository to a registry
docker image rm Remove one or more images
docker image save Save one or more images to a tar archive (streamed to STDOUT by default)
docker image tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

在一般情况下,可以省略images,即docker image pull可以简写为docker pull,但也有一些意外,如docker image ls的简写为docker images,docker image rm的简写为docker rmi等。

阅读全文 »

windows环境下搭建PHP环境的几种常用方法

发表于 2019-09-09 | 更新于 2019-09-17 | 分类于 其他 | 评论数:
本文字数: 7k | 阅读时长 ≈ 6 分钟

前言

在 https://windows.php.net/downloads/releases/archives/ 这边的下载链接里面可以看到有很多个版本,以5.3.29为例,可以找到以下版本:

1
2
3
4
5
8/28/2014  9:20 PM     40116224 php-5.3.29-nts-win32-VC9-x86.msi
8/15/2014 8:02 PM 17034827 php-5.3.29-nts-Win32-VC9-x86.zip
8/15/2014 8:02 PM 20869838 php-5.3.29-src.zip
8/28/2014 9:20 PM 40239104 php-5.3.29-win32-VC9-x86.msi
8/15/2014 8:02 PM 17182832 php-5.3.29-Win32-VC9-x86.zip

.msi是安装版,src.zip是源码包。我们都不使用,其他2个版本的区别是:

阅读全文 »

centos7内核升级或者降级的方法

发表于 2019-09-05 | 更新于 2020-04-02 | 分类于 Linux基础 | 评论数:
本文字数: 464 | 阅读时长 ≈ 1 分钟

升级到957的内核的命令如下:

1
2
3
4
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

yum install kernel-3.10.0-957.21.3.el7.x86_64 kernel-headers-3.10.0-957.21.3.el7.x86_64 kernel-tools-3.10.0-957.21.3.el7.x86_64 kernel-tools-libs-3.10.0-957.21.3.el7.x86_64 kernel-devel-3.10.0-957.21.3.el7.x86_64
阅读全文 »

软中断相关知识讲解以及优化方法

发表于 2019-09-02 | 更新于 2020-08-03 | 分类于 性能优化 | 评论数:
本文字数: 24k | 阅读时长 ≈ 22 分钟

中断简介

X86体系结构的计算机采用中断机制来协同处理器与其他设备的工作。当一个设备需要与处理器通信时,就会向处理器发出一个中断信号。例如敲击键盘时,键盘就会产生一个中断,通知操作系统有键被按下。在机器启动的时候,系统就已经识别了所有设备,并且也把相应的中断处理器加载到中断表中。所有的Linux操作系统都是基于中断驱动的,当我们在键盘上按下一个按键时,键盘就会对CPU说,一个键已经被按下。在这种情况下,键盘的IRQ线路中的电压就会发生一次变化,而这种电压的变化就是来自设备的请求,就相当于说这个设备有一个请求需要处理。

中断其实就是由硬件或软件所发送的一种称为IRQ(中断请求)的信号。中断允许让设备,如键盘,串口卡,并口等设备表明它们需要CPU。一旦CPU接收了中断请求,CPU就会暂时停止执行正在运行的程序,并且调用一个称为中断处理器或中断服务程序(interrupt service routine)的特定程序。

阅读全文 »

centos7编译安装LNMP:nginx1.16+mysql5.7+php7.2

发表于 2019-09-01 | 更新于 2019-09-02 | 分类于 Linux基础 | 评论数:
本文字数: 8.3k | 阅读时长 ≈ 8 分钟

nginx

nginx中的rewrite module、gzip module、Http SSL module需要安装PCRE、zlib、OpenSSL,这里为了方便,可以使用yum安装,也可以自行下载安装包,进行编译安装:

1
2
3
# 创建nginx运行用户
useradd -M -s /sbin/nologin www
yum -y install gcc gcc-c++ autoconf automake pcre pcre-devel zlib zlib-devel openssl openssl-devel gperftools gperftools-devel
阅读全文 »

nginx基础配置详解:基础篇

发表于 2019-08-29 | 更新于 2020-01-19 | 分类于 Linux基础 | 评论数:
本文字数: 12k | 阅读时长 ≈ 11 分钟

nginx简介

Nginx 是一款轻量的(相比 Apache、Lighttpd 而言)、高性能的 HTTP 服务器,同时也可以用作反向代理、负载平衡器和 HTTP 缓存。Nginx 采用了模块化、事件驱动的架构设计,使用了异步非阻塞的事件处理机制处理请求,使得在高负载下也能提供更可靠的性能。

Nginx 的内部结构是由核心部分和一系列的功能模块所组成。Nginx Core 实现底层的通讯协议,为其他模块构建了基本的运行时环境,并且构建了其他各模块的协作基础。

Nginx 程序在启动后,会以守护进程的方式在系统后台中运行,后台进程包含一个 master 进程和多个 worker 进程。

master 进程负责管理 Nginx 本身和其他 worker 进程,包含:接收来自外界的信号、向各 worker 进程发送信号、监控 worker 进程的运行状态、当 worker 进程退出后(异常情况下),会自动重新启动新的 worker 进程等。

阅读全文 »

详解https加密通信原理

发表于 2019-07-20 | 更新于 2021-02-25 | 分类于 抓包分析 | 评论数:
本文字数: 8.2k | 阅读时长 ≈ 7 分钟

对https是怎么样加密数据的,一直都不是太了解,在此深入了一下。

加密算法

对称加密

这是我们加密文件常用的方式,加密的时候输入一个密码,解密的时候也用这个密码,加密和解密都用同一个密码,所以叫对称加密。常见的算法有DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RC4、IDEA。对称安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。

非对称加密

非对称加密是一个很神奇的东西,它有两个不一样的密码,一个叫私钥,另一个叫公钥,私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人。

阅读全文 »

硬盘IO性能优化之套路篇

发表于 2019-07-10 | 更新于 2019-08-20 | 分类于 性能优化 | 评论数:
本文字数: 6.8k | 阅读时长 ≈ 6 分钟

此篇文章为我个人学习笔记,出自倪朋飞老师的Linux性能优化实战,强烈建议购买:https://time.geekbang.org/column/intro/140

文件系统

文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。在 Linux 中一切皆文件。不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。

为了方便管理,Linux 文件系统为每个文件都分配两个数据结构,索引节点(index node)和目录项(directory entry)。它们主要用来记录文件的元信息和目录结构。

阅读全文 »

内存性能优化之套路篇

发表于 2019-07-06 | 更新于 2019-07-20 | 分类于 性能优化 | 评论数:
本文字数: 13k | 阅读时长 ≈ 12 分钟

此篇文章为我个人学习笔记,出自倪朋飞老师的Linux性能优化实战,强烈建议购买:https://time.geekbang.org/column/intro/140

前言

内存,在计算机里面必不可少,也是明白其重要性,但是内存里面的一些原因,对于运维同学很是非常不理解,如虚拟内存、TLB、文件页、匿名页、主要缺页异常等,此文从linux系统来讲解下内存的原理。以及内存性能优化的方法。

阅读全文 »

CPU性能优化之套路篇

发表于 2019-06-30 | 更新于 2019-07-07 | 分类于 性能优化 | 评论数:
本文字数: 13k | 阅读时长 ≈ 12 分钟

此篇文章为我个人学习笔记,出自倪朋飞老师的Linux性能优化实战,强烈建议购买:https://time.geekbang.org/column/intro/140

基础原理

平均负载

平均负载是指单位时间内,系统处于**可运行状态和不可中断状态**的平均进程数,也就是平均活跃进程数,它和 CPU 使用率并没有直接关系。

所谓可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态(Running 或 Runnable)的进程。

不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程。

阅读全文 »

dell omsa安装以及常用使用方法

发表于 2019-06-27 | 更新于 2019-09-13 | 分类于 工具教程 | 评论数:
本文字数: 5.6k | 阅读时长 ≈ 5 分钟

简介

OMSA全称为Dell OpenManage Server Administrator,专为系统管理员设计,可用于管理本地系统及网络中的远程系统。OMSA提供了一个全面的一对一系统管理解决方案包,可使系统管理员专注于整个网络的管理工作。

OMSA系统管理方案可以全面解决系统管理人员最关心的系统部署、系统监控和系统变更三大系统管理问题。它通过提供以下两种方式来对本地和远程的服务器进行管理和监控。

1、基于Web浏览器的集成图形用户界面(GUI)

2、操作系统的命令行界面(CLI)工具

阅读全文 »

centos7初始化配置

发表于 2019-06-25 | 更新于 2023-01-29 | 分类于 Linux基础 | 评论数:
本文字数: 3.1k | 阅读时长 ≈ 3 分钟

经常会安装centos 7 mini版安装系统来做实验,每次安装之后就需要重新部署很多东西,以后就来看这篇文章吧。入门级别。

配置源

使用aliyun源的做为yum源。

1
2
3
4
5
6
rm -f /etc/yum.repos.d/*.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum groupinstall "System Management" "Development tools" -y
yum -y install tcpdump bash glibc nmap dstat vim-enhanced screen curl dos2unix expect net-snmp net-snmp-utils libicu libicu-devel libstdc++ gcc-c++ libgcc libgcc.i686 sysstat lshw python-simplejson tcptracert lrzsz wget mtr unzip net-tools strace bind-utils bash-completion ntpdate lsof psmisc dos2unix jq bridge-utils epel-release
阅读全文 »

centos7部署ELK7.1.1教程

发表于 2019-06-21 | 更新于 2019-08-26 | 分类于 Linux基础 | 评论数:
本文字数: 13k | 阅读时长 ≈ 12 分钟

此篇文章主要参考的是ELK-7.1.1 安装部署数据收集展示,有兴趣可以看原创文章。

ELK简介

ELK是Elasticsearch+Logstash+Kibana的简称:

  • ElasticSearch是一个基于Lucene的分布式全文搜索引擎,提供 RESTful API进行数据读写
  • Logstash是一个收集,处理和转发事件和日志消息的工具
  • Kibana是Elasticsearch的开源数据可视化插件,为查看存储在ElasticSearch提供了友好的Web界面,并提供了条形图,线条和散点图,饼图和地图等分析工具

总的来说,ElasticSearch负责存储数据,Logstash负责收集日志,并将日志格式化后写入ElasticSearch,Kibana提供可视化访问ElasticSearch数据的功能。

安装java

有2台测试机上面都需要安装jdk 8,有2个方法,一是直接通过yum install java java-devel来安装,喜欢折腾的朋友可以按以下方法:

打开https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载jdk-8u211-linux-x64.tar.gz包,下载需要oracle的账号。下载到机器上面之后,运行:

阅读全文 »

网络性能优化之套路篇

发表于 2019-06-17 | 更新于 2019-07-07 | 分类于 性能优化 | 评论数:
本文字数: 14k | 阅读时长 ≈ 13 分钟

此篇文章为我个人学习笔记,出自倪朋飞老师的Linux性能优化实战,强烈建议购买:https://time.geekbang.org/column/intro/140

Linux 网络收发流程

网络包的接收流程

当一个网络帧到达网卡后,网卡会通过 DMA 方式,把这个网络包放到收包队列中;然后通过硬中断,告诉中断处理程序已经收到了网络包。

接着,网卡中断处理程序会为网络帧分配内核数据结构(sk_buff),并将其拷贝到 sk_buff 缓冲区中;然后再通过软中断,通知内核收到了新的网络帧。

阅读全文 »

1…345
wumingx

wumingx

98 日志
8 分类
67 标签
RSS
GitHub E-Mail
闽ICP备19024148号-1 © 2023 wumingx | 1.1m | 16:28
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v7.1.1
|
0%