自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不才的专栏

不积跬步无以至千里

  • 博客(11)
  • 收藏
  • 关注

原创 mysql定时清理任务

随着时间的推移,数据库中积压的数据越来越多,数据文件越来越大,查询越来越慢。在历史数据不重要的情况下,我们可以对数据表中的过期数据进行清理。让数据库运行在一个平稳的环境中,主要方法是通过定时事件,触发清理任务。查看是否开启了事件功能mysql> show variables like '%event_sc%';+-----------------+-------+| Variable_name | Value |+-----------------+-------+| event_

2021-01-22 23:25:19 883

原创 docker基本原理和安装使用

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm2设置源, 优先国内,速度快yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum-config-manager \ .

2021-01-21 22:23:24 99

原创 HDFS分布式文件系统简介

分布式文件系统(Distributed File System,DFS),通过网络连接大量主机,将不同的磁盘、不同逻辑分区的数据组织在一起,提供海里的数据存储, 一般是PB级别(1PB=1024TB,1TB=1024GB),这是单机存储所无法比拟的。Google File System 是谷歌三大论文之一,而HDFS(Hadoop Distributed File System)是它的一种重要实现。另外一篇论文BigTable 则为这个文件系统提供了搜索支撑。谷歌确实是很牛的一家公司。G..

2021-01-20 20:48:39 221

翻译 [effective c++] 构造析构

条款7, 为多态基类声明virtual析构函数Car *c = new YellowCar();delete c;c指向了一个YellowCar的对象,但c是一个Car指针,如果Car的析构函数不为虚函数,那么delete时,只会调用Car的析构函数。如果YellowCar中有动态申请的内存,这块的释放逻辑通常在它的析构函数来完成,那么delete时,无法调用到YellowCar的析构,所以就造成了内存泄漏。不过要注意,如果没有用到多态,也就是说基类中没有虚函数,而把基类的析构函数声明为虚,这种做

2021-01-20 20:47:18 119

原创 cpu亲和性

1. 概述CPU亲和性,是指进程在指定的CPU长时间运行,而尽量不向其他CPU迁移。在多核CPU的机器上,每个CPU都有自己的缓存,如果进程不显式的绑定CPU,那么有可能在操作系统的调度下,在不同的CPU之间切换,那么原先CPU上的缓存数据就没什么用了,新CPU上的缓存又没有之前的数据,这就造成了缓存命中率降低。如果设置了CPU亲和性,一个进程绑定了CPU之后,那么缓存的命中率就能保持在一个较高的水平,从而提高程序性能,这就是为什么要设置CPU亲和性的原因。另一个好处是提高特定进程调度的优先级,比如

2021-01-14 18:31:46 3413 2

原创 linux常见的性能分析工具和方法

查看系统负载 uptime[root@localhost ~]# uptime 10:18:27 up 6 days, 17:24, 3 users, load average: 0.00, 0.01, 0.05当前时间、系统已经运行了多长时间、有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。平均负载的最佳值是1,这意味着每个进程都可以立即执行不会错过CPU周期。单核CPU,1-2是正常的,多核CPU,核心数为n,那么n-2n之间也是正常的。free 查看空闲内存和已使.

2021-01-11 21:52:58 321

原创 gdb调试多进程和多线程

1. gdb调试多进程调试多进程有一种笨方法就是在fork之后子进程执行的代码中sleep一下。然后利用这段时间,通过gdb attach 子进程id。不过在linux系统上(2.5.46之后),gdb是支持调试调试fork和vfork这种类型的多进程程序的。#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]) { pid_t pid = fork(); if

2021-01-09 21:12:00 490

原创 MySQL双机热备

主机: 192.168.1.22[root@localhost ~]# mysql -Vmysql Ver 15.1 Distrib 5.5.65-MariaDB, for Linux (x86_64) using readline 5.1从机: 192.168.1.148[root@kafka3 opt]# mysql -Vmysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.10. 准备,

2021-01-07 19:05:31 666 6

原创 数据库的存储结构

B树和B+树主要用于构建磁盘中的高速索引,比如文件系统和数据库。数据库中数据的储存主要有两种方式,一种是行存储,一种是列存储。行存储,就是数据库中的一行数据存储在一段连续的磁盘块上。同理,列存储,就是一列数据存储在一起。行存储的优点就是,单挑记录集中,适合事务。缺点是,聚合查询慢。因为聚合涉及多条行记录,那么就要从磁盘的多个非连续的块中读取数据。多次IO访问,导致查询慢。列存储的有点是,聚合查询快,聚合计算快。因为它的列数据是放在一起的,IO读取一次或几次,就能把数据加载到内存。缺点也很明显

2021-01-06 21:52:44 4827

原创 协程基础 自实现setjmp和longjmp 进行上下文切换

setjmp和longjmp可以实现跨函数跳转,由于自由度非常高,所以一直被很多人诟病,以至于很多公司的规范中明令禁止使用这个两个函数,甚至goto也在内。这次来实现它们,是为了下一步研究协程做准备,我们来看下,怎么做子过程的上下文切换。1. 上下文的组成%rax 作为函数返回值使用。%rsp 栈指针寄存器,指向栈顶%rdi,%rsi,%rdx,%rcx用作函数参数,依次对应第1参数,第2参数。。。%rbx,%rbp 用作数据存储%rip 下一条指令一个函数在执行的时候,某一时刻的状态,就

2021-01-02 17:28:52 748

原创 简单定时器

本文基于循环数组实现了一个简单的时间轮定时器。定时器可以出发单次或者循环触发。定时器,每隔一秒往下走一个格子,并扫描数组节点中有无要触发的事件。一个格子中可能有多个节点,触发层级为0的节点。这个例子比较简单,通过alarm系统调用来实现的,alarm会发SIGALRM信号,触发tick函数执行。#include <signal.h>#include <stdio.h>#include <unistd.h>#define TIME_WHEEL_S.

2021-01-01 13:33:05 408

空空如也

空空如也

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

TA关注的人

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