每当发现系统变慢时,通常会先执行top或者uptime命令,来了解系统负载情况。$ uptime02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88一、uptime每列含义02:34:03 //当前时间up 2 days, 20:14 //系统运行时间1 u
一、事务隔离提到事务,肯定不陌生,和数据库打交道的时候,总是会用到事务。最经典的例子就是转账,你要给朋友小王转100块钱,而此时你的银行卡只有100块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这100块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要
一、日志系统在工作中可能会听DBA同事说,MySQL可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢?还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键ID和一个整型字段c:mysql> create table T(ID int primary key, c int);如果要将ID=2这一行的值加1,SQL语句就会这么写:my
当发现容器镜像里存在一个bug,但因为网络配置问题,又不想为了重建pod去改变pod IP。然而kubernetes上没有restart pod这个命令。那么就只能让pod做原地重启,首先想到的就是在容器中使用kill pid 1的方式重启容器。一、理解init进程在模拟场景之前,先理解什么是init进程。在使用容器的时候,理想状态就是一个容器只启动一个进程。但是在实际生产环境中有时是做不到的。比
一、并发和并行并发(concurrency)两个或多个事件在同一时间间隔发生 并行(parallellism)两个或多个事件在同一时刻发生 二、协程2.1、进程分配系统资源(CPU时间、内存等)基本单位有独立的内存空间,切换开销大(可能多个进程映射到同一个物理内存空间地址,所以当做进程切换时,开销就比较大)2.2、线程同一进程中的多个线程共享内存空间,线程切换代价小
一、main函数每个Go语言程序都应该有个main packagemain package里的main函数是Go语言程序入口package mainimport ( "os")func main() { //Go语言通过os.Args获取入参 args := os.Args if len(args) != 0 { println("Do
一、控制结构1.1、Ifif条件判断有两个形式,第一种就是常见的基本形式,另一种是支持简短语法。基本形式//condition可以是任何bool类型的语句if condition1 { //do something}else if condition2{ //do something else}else{ //catch-all or default}简短语句同for一样,if语
大家应该都知道,Swap空间,简单地说其实就是磁盘开辟的一块空间。当内存写满的时候,就可以把内存中不常用的数据暂时置换到Swap空间上,如此,内存空间就可以释放出来,用来满足新内存申请的需求。它的好处是能应对一些瞬时突发的内存增大需求,不至于内存一时不够而导致OOM Killer,从而导致进程被杀死。那么问题来了,对于一个容器,特别是被设置了Memory Cgroup 之后,它还可以使用 Swap
对于OOM Killer想必都有一些了解,如果容器使用的物理内存超过了Memory Cgroup里的 memory.limit_in_bytes值,那么容器进程就会被OOM Killer 杀死。有个疑问,在一些容器的使用场景中,比如容器里的应用有很多文件读写,就会发现整个容器的内存使用量已经很接近Memory Cgroup的上限值,但是在容器中接着申请内存,还是可以申请出来,并没有发生OOM,那么
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号