自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux容器基础-namespace-3(pid)

当pid namespace中pid=1的进程退出或终止,内核默认会发送SIGKILL信号给该pid namespace中的所有进程以便杀掉它们(如果该pid namespace中有子孙namespace,也会直接被杀)。pid=1的进程是每一个pid namespace的核心进程(init进程),它不仅负责收养其所在pid namespace中的孤儿进程,还影响整个pid namespace。/proc目录是内核对外暴露的可供用户查看或修改的内核中所记录的信息,包括内核自身的部分信息以及每个进程的信息。

2024-08-21 14:55:01 513

原创 linux容器基础-namespace-2(net)

用户可以将veth的其中一端放在某个network namespace中,另一端保留在root network namespace中。让某个network namespace和root network namespace或其他network namespace之间保持通信是一个非常常见的需求, 这一般通过veth虚拟设备实现。因为network namespace中具有独立的网络协议栈,因此每个network namespace中都有一个lo接口,但lo接口默认未启动,需要手动启动起来。

2024-08-21 14:53:50 418

原创 linux容器基础-namespace-1(mnt)

(用户通常使用mount命令来挂载普通文件系统,但实际上mount能挂载的东西非常多,甚至连现在功能完善的Linux系统,其内核的正常运行也都依赖于挂载功能,比如挂载根文件系统/。通过这个小实验我们能看到linux也支持挂载点的隔离,那不同的容器挂载不同的mnt namespace,这样每个小盒子里大家看到的都是自己“私密”的东西了~mount namespace可隔离出一个具有独立挂载点信息的运行环境,内核知道如何去维护每个namespace的挂载点列表。内核将每个进程的挂载点信息保存在。

2024-08-19 17:24:21 195

原创 linux容器基础-namespace

在聊容器之前,我们先回顾一下linux,linux的作用是管理硬件的资源分配,对于使用操作系统的人来说,我们就是为了让其运行我们的程序,这样就可以理解成我们将想运行的程序交给操作系统,操作系统来给我们的程序分配对应的资源。,要做到的效果是:如果某个 namespace 中有进程在里面运行,它们只能看到该 namespace 的信息,无法看到 namespace 以外的东西。我们动手实践玩一玩,(这里需要一个linux的机器,文中使用的是ubuntu22.04,5.15的内核),就能有更深刻的认识。

2024-08-19 17:21:27 622

原创 内存tmpfs问题—tmpfs占用太多内存导致服务oom

首先我们监控系统的容器内存使用率算法:container_memory_usage_bytes - container_memory_cache, 这个算出来和rss是基本一致的,从这个角度看没什么问题。分析了一下oom的dump,计算rss(需要*4,因为是rss是按照4k一个page去分配的) 这一列相加 大概是6G,这个数据和监控也符合大概75%的实际使用率(容器分配的是8G)。那这里还有个问题,就是cache里到底被什么占用了,为什么cache这么大:在进程挂掉之后,还是有2g的cache。

2024-08-16 14:45:11 373

原创 应用线程的内存问题—容器中的业务频繁fullgc

开始以为是gc线程数的问题,因为知道容器中jvm会拿物理机的cpu作为gc的线程数,-XX:ParallelGCThreads=8 -XX:ConcGCThreads=4。对比docker和kvm的dump,docker中的线程内存大小是正常的,不正常的是数量,同样是分配8c16g的kvm和docker,为啥docker是64个,而kvm是16?在dump kvm中的应用内存,进行分析,es创建的netty线程是16个,每个大小是16M,16*16=256M。应用jvm参数如下(截取部分性能相关参数)

2024-08-16 14:40:36 291

原创 内存碎片问题—容器启动状态卡在ContainerCreating

kubelet后来发现这个pod还是没创建成功,一直在重试,但是每次检查的时候发现pod sandboxstatus不是ready状态然后一直重试,直到pod被删掉。关于内存的buddy系统。内存碎片相关内容,后续会在内存总结文章详细梳理。第一次检查发现此pod的sandbox(应该就是default)没有,开始去创建。调用RunPodSandbox方法返回了错误,这个错误应该是docker返回的。分析半天也没发现是什么问题~

2024-08-15 15:12:34 704

原创 深入理解linux 内存cache

linux中的内存是以page为单位进行管理的,Page Cache是Linux内核中的一种缓存机制,用于缓存文件系统中的数据和元数据。当应用程序读取文件时,文件的内容会被缓存到Page Cache中,如果下次再次读取该文件,内核会直接从Page Cache中读取数据,而不必再次访问磁盘。page cache是存储在内存中的Page的一种特殊用法。那page cache是如何产生的?又是如何释放的?pagecache和磁盘又有什么联系呢?先看看drop cache里放的是什么:https://www

2024-08-15 14:53:51 1023

原创 支付业务大规模超时,等着被开了~

ARP 缓存打满之后,Pod 就会网络不通。如果不是看了内核日志可能还是怀疑网络的问题,而查到了是arp gc问题,也需要深入linux原理,详细去了解他背后的知识,而不是问题解决就完了。

2024-08-14 16:26:13 971

原创 linux cpu问题排查及性能优化

系统优化CPU 绑定:把进程绑定到一个或者多个 CPU 上,可以提高 CPU 缓存的命中率,减少跨 CPU 调度带来的上下文切换问题 (如上面讲到的AMD 多L3问题)CPU 独占:跟 CPU 绑定类似,进一步将 CPU 分组,并通过 CPU 亲和性机制为其分配进程。这样,这些 CPU 就由指定的进程独占,换句话说,不允许其他进程再来使用这些 CPU。(现在大核心的kvm采用的方式,不同kvm独占不同的cpu)优先级调整:使用 nice 调整进程的优先级,正值调低优先级,负值调高优先级。

2024-08-14 15:19:08 1291 1

原创 Docker镜像仓库Harbor主从镜像同步

一、部署主机角色说明主机角色IP地址操作系统摘要主节点(Master)hz01-prod-ops-harbor-01(172.16.8.228)CentOS Linux release 7.3.1611 (Core) x86_64harbor安装及配置从节点(Node)hz01-prod-ops-harbor-02(172.16.8.245)CentOS Linux release 7.3.161...

2018-03-22 16:27:33 11147 1

原创 Rabbitmq集群(双磁盘双内存节点) + Haproxy + keepalived

一、系统功能概述Rabbitmq:AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务器端用...

2018-03-19 19:07:14 5144

原创 Centos6.5 下Openldap管理各系统账号

一、系统环境Centos6.4 二、openldap安装及配置2.1 openldap服务端安装及配置2.1.1 关闭防火墙及selinux[root@ldap-test ~]# service iptables stopiptables:将链设置为政策 ACCEPT:filter [确

2017-04-20 16:57:00 3029

原创 Cenots6.4下mysql5.6安装及主从配置

一、卸载旧版本[root@iZbp17vlqunx6kul3no7r4Z data01]# rpm -qa |grep mysql mysql-libs-5.1.73-3.el6_5.x86_64[root@iZbp17vlqunx6kul3no7r4Z data01]# yum remove mysql-libs二、安装mysql下载三个mysql的rpm软件包

2016-12-09 11:34:30 682

原创 KVM学习笔记(二)--虚拟机克隆

一、KVM创建虚拟机创建磁盘文件[root@ckcest04 images]# ll /var/lib/libvirt/images/ #kvm存放虚拟机的路径[root@kvmaster2 images]# qemu-img create ckcest07.img 30G Formatting 'ckcest07.img', fmt=raw size=3

2016-08-04 11:18:35 1346

原创 linux运维人员必会的30道shell编程面试题

一、序言前几天一个做开发的朋友发给我一个链接,http://oldboy.blog.51cto.com/2561410/1632876?from=singlemessage&isappinstalled=0是老男孩出的企业面试题培训叫做:合格linux运维人员必会的30道shell编程面试题及讲解,于是乎,,我打算每个都自己写一遍,,PS:我是不是闲的蛋疼!!!

2016-07-28 17:27:41 32977

原创 KVM学习笔记(一)--安装配置篇

[root@server 桌面]# service iptables stop[root@server 桌面]# cat /proc/cpuinfo |grep -E 'vmx|svm'[root@server 桌面]# yum install kvm virt-* libvirts bridge-utils qemu-img[root@server 桌面]# yum upgrade

2016-07-25 17:14:27 1145

转载 /proc详解

内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统。 Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。基于

2016-07-20 14:08:15 15646 2

原创 Nagios搭建配置及监控脚本开发

一、Nagios服务端安装1.1 环境介绍          OS:Centos6.4          nagios-server:10.10.5.44          nagios-client:10.10.5.401.2 安装基础套件#yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl

2016-07-11 16:25:45 5627 1

原创 Nginx正反向代理、负载均衡等功能实现配置

系统环境:VirtualBox ManagerCentos6.4nginx1.10.0IP对应的机器名: IP 机器名 角色名10.0.0.139 [elk] client10.0.0.136 [lvs-master] nginx server10.0.0....

2016-06-07 11:20:20 68719 15

原创 Python selenium爬虫

一、Firefox 上插件安装               1.XPath Checker:一个交互式编辑XPath表达式,在网页中选择 'View XPath' 可看到XPath路径,例如:                               2.Firebug:Firebug 为你的 Firefox 集成了浏览网页的同时随手可得的丰富开发工具。你可以对任

2016-05-06 09:27:16 5776 3

linux操作系统

自己制作的初学者学习的ppt,参考了很多资料,花费 了1天的时间才制作好,是领导让我培训新员工用的linux的ppt

2012-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除