Skip to main content

Command Palette

Search for a command to run...

Latest articles

  1. 新装Linux需进行的配置

    但凡喜欢折腾虚拟机或者云服务器什么的,总是免不了重装1,2,3...n...次Linux系统,有些操作只是无情的体力活,做个总结对照着操作当然会快上很多。不过这方面的总结已经烂大街了,而且我也不觉得自己写出来的东西能够比其他人更出色,所以此处只是一个无情的优质链接归类,用以归档一些新装Linux系统总是会执行的一些操作 磁盘 磁盘的格式化和分区:Linux 磁盘分区、格式化、目录挂载 磁盘的UUID与开机自动挂载:Linux磁盘分区UUID的获取及其UUID的作用 国内源 Linux自带的系...

    Sep 10, 20211 min read72
  2. PostgreSQL中的VFD机制

    概述 通常来说,操作系统对于单个进程中能打开的文件数是有限制的,而数据库需要频繁的操作文件。为了方便使用,pg实现了VFD(Virtual File Description,虚拟文件描述符)机制,本质是对与底层文件操作的一层封装,这样所有需要直接操作文件的地方可以调用VFD,避免上层还需要管理文件操作符。 这层封装主要是采用了一个LRU(Leaset Recently Used)缓存池来管理本进程中打开的所有VFD。当LRU池未满时,进程可以直接申请一个VFD用来打开一个物理文件;而当LRU池已...

    Aug 29, 20212 min read113
  3. PostgreSQL中的pg_stat

    pg_stat(包括pg_stat_xx)这一系列视图及其功能,在官方手册里都被划归在Postgresql统计收集器下面,用于收集信息和报告服务器的活跃性。各个视图的具体作用可以主要参照官方手册中的相应介绍 下述的分析内容皆为pg9.2版本源码 整体分析 pg_stat作为PostgreSQL数据库的状态统计和信息收集的作用,其触发点有多处: autovacuum launcher process stats collector process 手动vacuum和analyze 其中手动...

    Aug 29, 20214 min read57
  4. C和Cpp编译链接过程

    以下介绍中有2个约定: 下面介绍中使用的编译器为gcc/g++,所有执行命令中gcc可以与g++互换 gcc/g++编译命令允许跳过中间文件的生成,而直接得到所需的输出文件。但为了逻辑连贯,默认每一阶段将以上一阶段的输出文件作为源文件,后续不在赘述 整体介绍 C和Cpp代码编译链接的整体过程如下: 狭义上来说,编译就是指上图中从预处理文件到汇编语言文件的这个阶段,但是广义上来说,编译是链接之前的所有阶段。每个人的叫法并不相同,需要具体看待。不过下面的分析中,为了更详细的介绍,所以遵循狭义上...

    Aug 29, 20212 min read60