- 博客(20)
- 收藏
- 关注
原创 万级并发服务器内核调优总结
问题模型tcp三次握手建立过程问题1:当n多个client在极短时间内同时发出多个syn=1请求建立连接时这时server端内核中的syn队列会发生溢出,部分连接请求会丢失。使用dmesg打印内核环形缓冲区会得到如下输出:possible syn flooding on port 30005出现这样的原因是因为syn队列设置的太小,使得短时间内syn队列溢出,让部分连接请求丢失。使用nstat可查看SNMP计数器。TcpExtListenOverflows:Accept queue队列超过上
2021-03-11 17:03:20
951
原创 笔试题目代码模板
1.滑动窗口窗口平移,保留长度信息int r=-1,l=0;while(r<n-1){ //l-r间状态信息 nums[r+1] if(//不满足状态){ //更新l-r状态 l++; } r++;}return r-l+1窗口不平移,跳跃更新int l=-1,r=0;while(r<n){ nums[r] if(//不满足条件){ l=r; } r++;}总结窗口平移和不平移的细微区别在于l和r的初始值设置。对于窗口平移,保留
2021-03-09 10:17:29
214
原创 redis+lua原子性扣除库存
if redis.call("exist",KEYS[1] == 1) then local productNum =tonumber(redis.call("get",KEYS[1])) local subNum = tonumber(ARGV[1]) if(productNum <= 0) then return -4 end if(subNum >= 0) then return -1 end if(productNum + subNum >=0)
2021-03-04 21:58:16
362
3
原创 Redis主从模式集群部署
redis集群部署1.创建NFS存储(ubuntu环境下)1.1 NFS的安装 命令⾏输⼊命令:apt-get install nfs-kernel-server####1.2 启动NFS服务命令⾏输⼊命令:etc/init.d/nfs-kernel-server restart1.3 修改nfs配置⽂件 修改/etc/exports⽂件,如下图所示 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210224223205794.png?x-
2021-02-24 22:43:58
520
1
原创 k8s集群部署
部署 Kubenetes 集群安装 Docker-CE注意:需要在所有节点上安装 docker-ce参考 docker-ce 官网的安装步骤(点击这里查看官网安装教程),把下载服务器替换为阿里云镜像,具体步骤如下:# 更新软件源sudo apt update# 安装必要的依赖包sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common# 安装
2021-02-24 20:38:59
133
原创 深度探索C++对象模型
LIST特性List 是个双向链表双向循环G2.9中STL实现的LIST,其NODE的next 和 prev是 void型指针所需要内存是一个数据 + 两个指针LIST的iterator后置++的实现一定是先实现了前置++= * 会先调用=的重载++ *this 同样会调用 前置++重载函数前置++返回引用,后置++返回普通这是因为看齐整数,++++i 可以,i++++禁用。Vector 扩充扩充只能在其他地方找空间,不能在连续的地方上直接扩充。Vector 三个指针,s
2020-08-07 14:59:00
516
原创 C++红黑树实现代码详解
#include <iostream>using namespace std;enum COLOR{RED,BLACK};template<typename K,typename V>struct RBTreeNode{ pair<K,V> _value; COLOR _color; RBTreeNode<K,V> * _pLeft; RBTreeNode<K,V> * _pRight; RBTr
2020-08-04 10:00:55
319
原创 Role,Rolebinding与serviceAccount
ServiceAccount单个pod可以通过/var/run/secrets/kubernetes.io/serviceaccount/token中的内容进行身份认证。使用命令进入pod中kubectl exec -it two-pod -c debian bash查看目录/var/run/secrets/kubernetes.io/serviceaccount/token下的内容,一...
2019-12-11 12:51:52
1269
原创 docker网络与veth-pair
1.docker的网络模式1.1 Host模式与宿主机在同一个网络中,没有独立IP地址,使用宿主机的端口资源。宿主机的ip地址就是该容器的ip地址,但是仍然使用和宿主机不同的文件系统。1.2 Container模式这个模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共...
2019-11-29 12:40:47
2700
原创 Prometheus + Grafana + Pushgateway部署
部署Prometheus&Grafanastep1.下载项目git项目 git clone https://github.com/coreos/kube-prometheus.git step2.拉取镜像因为某些镜像被墙了,所以需要手动从阿里云上拉取镜像该镜像是kube-state-metrics部署中所需要的一个镜像,下面进行镜像下载:addon-resizersudo...
2019-11-05 10:45:05
1238
原创 service工作原理与手动配置endpoint资源
1.service由RS和RC托管的pod,随时都会因为各类原因而死亡,或是因为物理节点宕机,或是因为pod中进程异常终止。为了保证集群中总是存在replica count个pod,RS和RC就会创建新的pod,而新的pod的ip地址不会与旧pod的ip地址一模一样。这样的行为,使得pod的ip地址总是在不停变化的。因此希望有一个组件能够对外提供一个固定单一的ip和端口地址,然后所有想要访问po...
2019-10-21 10:19:53
2709
原创 ReplicationController,ReplicationSet和DaemonSet的区别
1.ReplicationController用于控制和管理Pod资源,通常由label selector,replica count和pod temple三部分组成。replica count:pod个数。ReplicationController总是会保证集群中存在replica count个pod。若实际pod数少于replica coun那么就会新建pod使其数量达到replica c...
2019-10-16 18:01:31
934
原创 使用dockerfile将应用镜像化,及error context checking错误解决方法。
1.Dockerfile的用途Dockerfile的作用:Dockerfile用于指导docker完成应用的容器化。一个简单的Dockerfile内容。# Test web-app to use with Pluralsight courses and Docker Deep Dive book# Linux x64FROM alpineLABEL maintainer="nigel...
2019-10-14 12:17:50
3888
1
原创 在容器中启动第一个web应用
1 在容器中启动web应用命令:docker run -d --name webserver -p 120:8080 nigelpoulton/pluralsight-docker-ci-d:在后台启动该容器,该方式启动的容器将不会连接到终端显示。与之相反的是-it参数。-name:为该容器取名为“webserver”,取名字的好处在于在使用docker exec在容器中创建新进程时,可以方...
2019-09-24 19:42:19
404
原创 Docker命令操作
镜像操作命令格式1 拉取镜像1.1 拉取镜像基本操作docker pull <镜像名字> :<标签名>命令功能:从docker hub上拉取镜像至本地<镜像名字>:想要拉取的镜像名字<标签名>:若不指定标签名,通常会拉取标签名为“latest”的镜像,但有意思的是标签名为“latest”的镜像却不一定就是最新版本的镜像。Q:为什么需要&...
2019-09-23 21:48:20
236
原创 Docker引擎与Kuberneters与Docker镜像
1. Docker引擎架构关于Docker的一个简单模型由Docker client ,Docker daemon,containerD,shim,runc组成。需要明确的一点的是,这些东西从操作系统的层面上来看,都是进程。Docker client :类似于shell,解析用户输入的命令,解析用户命令之后,将其转换成合适的API并向下传递至Docker daemon。Docker daem...
2019-09-19 21:21:31
415
原创 容器的底层实现与linux
1 linux进程组概念进程组顾名思义,即是多个进程的集合。linux系统中每一个进程都属于一个进程组,每一个进程组都有唯一的一个进程组标识号。1.当任意父进程调用fork()函数生成子进程时,子进程和父进程同属于一个进程组2.每一个进程组都有一个组长进程,组长进程负责与其他进程组交换数据,但组长进程消亡,进程组并不会消失。3.直到进程组中最后一个进程死亡,进程组也随之死亡。1.1 ge...
2019-09-19 19:55:20
293
原创 容器与虚拟机本质区别及虚拟化技术分级
1.虚拟化技术层级分类1.1硬件级虚拟化在这一级别中,常见的就是虚拟内存,和虚拟机VMM(Hypervisor)。虚拟内存:在操作系统的请求分页机制,和硬件MMU基础之上构建出虚拟内存,为每一个进程虚拟出相同大小的虚拟内存空间,让每一个进程都误以为自己拥有整片RAM内存空间。虚拟机:用软件虚拟出CPU,RAM,I/O设备等,并在这之上安装操作系统。Q:为什么需要Hypervisor?A...
2019-09-19 12:32:43
1453
1
原创 计算机研究生复试面试题目
Q:堆排序与快排的区别A: 相同点:平均时间均为o(nlogn)。不同点:堆排最坏情况为o(nlong),快排最坏为o(n^2)。空间堆排o(1),快排o(logn)。Q:c语言栈溢出的一个例子/c语言没有可靠性检查(栈溢出)A:在一个过程A中分配了一个数组,数组的数据存储在栈上,将这个数组名传入到另一个过程B中,这时数组退化为指针,并在过程B中写该指针,若超出这个指针范围,那么就会使得返...
2019-09-19 12:20:45
15305
7
原创 google代码题—宏函数
代码题—宏函数题目回答拓展题目#include <stdio.h>#define SUB(x,y) x-y#define ACCESS_BEFORE(element,offset,value) *SUB(&element, offset) = valueint main() { int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8,...
2019-02-25 11:32:59
326
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人