- 博客(363)
- 收藏
- 关注
转载 Linux 内核的 4 大 IO 调度算法
IO调度器算法的选择,既取决于硬件特征,也取决于应用场景。在传统的SAS盘上,CFQ、DEADLINE、ANTICIPATORY都是不错的选择;对于专属的数据库服务器,DEADLINE的吞吐量和响应时间都表现良好。
2023-12-05 20:20:44
447
转载 linux 修改网卡名
输入命令:mv /etc/sysconfig/network-scripts/ifcfg-ens192 /etc/sysconfig/network-scripts/ifcfg-ens199。输入命令: vi /etc/sysconfig/network-scripts/ifcfg-ens199。输入:ip a 可以查看到名称已经成 ens192变成了ens199。可以看到网卡名为ens192,状态是state up(启用的)。可以看到网卡已经成ens192变成了ens199。可以看到网卡已经启动。
2023-10-21 00:23:34
382
转载 PG的两种集群技术:Pgpool-II与Postgres-XL
由此可见,Pgpool-II与PG是解耦合的,基于这样的机制,Pgpool-II可以搭建在已经存在的任意版本的PG主从结构上,主从结构的实现与Pgpool-II无关,可以通过slony等工具或者PG自身的流复制机制实现。除了主从结构的集群,Pgpool-II也支持多主结构,称为复制模式,该模式下PG节点之间是对等的,没有主从关系,写操作同时在所有节点上执行,这种模式下写操作的代价很大,性能上不及主从模式。其中Pgpool-II的前身的Pgpool-I,Postgres-XL的前身是Postgres-XC。
2023-10-11 19:48:47
926
转载 PostgreSQL 利用pg_upgrade升级版本
根据官方文档介绍,PostgreSQL 每次升级主要体现在系统表的改变,对于数据文件的格式基本不做改动,因此利用这个特性,只要重建所有系统表,复用原有数据文件,即可完成升级。需要注意的是,即便如此,该方法也有一定的限制,在官方文档的NOTE部分有详细说明。一是使用pg_dump/pg_restore,该方法比较耗时,也即是停机时间比较长,特别是大数据量下,但是 稳定且易于操作。二是和MySQL那样利用复制的方式,停机时间短,但操作相对复杂。2. 安装新版PostgreSQL。3. 停止新旧数据库服务。
2023-08-31 15:09:52
517
转载 dirty_ratio与dirty_background_ratio参数区别--系统优化必选
之前一直错误的一位dirty_ratio的触发条件不可能达到,因为每次肯定会先达到vm.dirty_background_ratio的条件,后来才知道自己理解错了。确实是先达到vm.dirty_background_ratio的条件然后触发pdflush进程进行异步的回写操作,但是这一过程中应用进程仍然可以进行写操作,如果多个应用进程写入的量大于pdflush进程刷出的量那自然会达到vm.dirty_ratio这个参数所设定的坎,此时操作系统会转入同步地处理脏页的过程,阻塞应用进程。
2023-05-04 15:39:04
641
转载 postgresql流复制原理、流复制和逻辑复制的区别
逻辑复制也是基于WAL文件,在逻辑复制中把主库称为源端库,备库称为目标端数据库,源端数据库根据预先指定好的逻辑解析规则对WAL文件进行解析,把DML操作解析成一定的逻辑变化信息(标准SQL语句),源端数据库把标准SQL语句发给目标端数据库,目标端数据库接收到之后进行应用,从而实现数据同步。物理复制也叫流复制,流复制的原理是主库把WAL发送给备库,备库接收WAL后,进行重放。流复制主库上的事务提交不需要等待备库接收到WAL文件后的确认,逻辑复制相反。
2023-05-04 15:35:04
364
转载 反人类Win11之文件右键菜单改回Win10
前言:前段时间不知道电脑怎么更新到win11了,体验了一下大部分功能还不错,就是右键菜单使用起来太麻烦了,所以想切换回win10右键菜单,以下发现的是最方便的一种方式。
2023-03-22 14:34:55
297
转载 MobaXterm中文乱码问题解决
但是MobaXterm(由于Xshell不给用了,最近使用了替换工具MobaXterm)却不行,这个工具里默认的字符编码就是UTF-8(Unicode)的,而且还没有GBK2312,换了各种字符编码都不行,最后将字符编码修改为ISO-8859-1(West Europe)才解决。2)字符编码设置为UTF-8(Unicode),复制中文粘贴到里面和复制里面的中文粘贴出来,都不乱码了。1)字符编码设置为ISO-8859-1(West Europe),文件里显示的中文不乱码。
2023-03-03 09:57:02
9882
2
转载 PostgreSQL数据库xlog文件命名
那么再来看看lsn的低32位,lsn的低32位除以16M的大小,16M等于2的24次方,285C6080除以2的24次方相当于向左移动6位,商就是logid,余数就是xlog的偏移量,也就是28是logseg,也就是第一个图中最后一个文件,当然老版本是xlog用时分配,新版本好像规则改成了xlog提前申请,会提前生成还未使用的xlog文件;首先说下lsn的位数,因为lsn标识着xlog的位置,这个位置在数据库启动后就是在不断增加的,所以32位的lsn肯定是不够用的。
2023-02-28 14:30:15
459
转载 将Linux脚本中的正常输出,警告,错误等信息输出到文件中
而系统默认的stdin,stdout,stderr,都是屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的。相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。
2022-11-04 14:46:33
2127
转载 数据库的“读写分离”
其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构。一个主从同步集群,通常被称为是一个“分组”。数据库水平切分,也是一种常见的数据库架构,是一种通过算法,将数据库进行分割的架构。一个水平切分集群中的每个数据库,通常称为一个“分片”。每一个分片中的数据没有重合,所有分片中的数据并集组成全部数据。水平切分架构解决什么问题呢?
2022-10-31 10:49:12
416
转载 识别密文加密方式
编码:Base 系列、Unicode、Escape、URL、Hex;算法:MD5、SHA 系列、HMAC 系列、RSA、AES、DES、3DES、RC4、Rabbit、SM 系列;混淆:Obfuscator、JJEncode、AAEncode、JSFuck、Jother、Brainfuck、Ook!其他:恺撒密码、栅栏密码、猪圈密码、摩斯密码、培根密码、维吉尼亚密码、与佛论禅、当铺密码。
2022-10-24 17:17:26
3673
原创 解决Linux运行脚本时 $‘\r‘ 错误
由于Linux上项目每次都需要输入一堆的命令,而且需要修改目录。于是自己写了个一键执行的脚本。脚本是在Windows上完成的,上传到Linux服务器上,一运行就开始报$'\r'错。用vi/vim命令打开脚本文件,输入“:set fileformat=unix”,回车,保存退出。用notepad++编译器打开脚本,编辑->文档格式转换->转换为UNIX格式,然后保存。刚开始以为代码的问题,但是类似的脚本在linux完成的没有此问题,于是百度了这个错误。重新执行脚本,问题不在出现。重新上传、运行,问题解决。
2022-10-11 17:24:45
1919
转载 PostgreSQL中Oid和Relfilenode的映射
这个博客主要阐述了在PostgreSQL中表的oid和relfilenode映射的两种不通表现形式,你只要记住使用永远会得到正确的结果,从pg_class系统表中查询则可能会得到错误的结果。
2022-09-23 14:18:43
376
转载 【Shell】while 循环中的变量无法保存|无法获取while中的变量|管道中的函数变量无法获取问题
原来是因为管道|创建了新的子进程,而子进程是在独立的进程空间(Context)运行了. 需要跟父进程通信的话, 得使用进程间通信机制. 不是简单的变量问题。
2022-09-05 10:47:36
543
转载 Linux三剑客(grep、awk、sed)
Linux 三剑客是(grep,sed,awk)三者的简称,他们通常结合正则一起使用。grep擅长查找,sed擅长修改文件。awk擅长取列。
2022-08-29 14:38:50
589
1
原创 Shell_Linux Shell 中实现字符串切割的几种方法
我们在shell 脚本编程中,经常需要用到切割,即将字符串切割为一个数组,类似java 中的split 函数,下面对几种常见的方式做一个总结。
2022-08-25 18:20:35
5909
转载 shell date 命令详解
使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]date -d "-1 day" "+%Y%m%d %A" 或 date --date="1 day ago" "+%Y%m%d %A"显示时间后跳行,再显示目前日期 : date +%T%n%D。...
2022-08-25 18:13:01
3405
原创 git报错error: Your local changes to the following files would be overwritten by merge
git pull时的一个报错error: Your local changes to the following files would be overwritten by merge,出现的原因是git pull时本地分支的更改没有保存下来。一般解决方法分为两种。还有一种特殊情况,即文件读写等权限的变更。
2022-08-24 10:55:08
4444
2
转载 windows与linux多线程对比
但是线程的实现在类Unix下并不相同,基本上分为内核支持方式和用户空间支持方式,如果线程的上下文切换是在内核中实现的,我们就称之为内核方式实现,但如果线程的切换是在用户空间进行的我们就称之为用户方式实现,内核并不知情,当然还有两种方式的混合方式,用户空间中的多个线程在内核空间有相应的内核线程与之对应(通常我们称此内核线程为LWP-轻级进程)。一个独立的程序默认是使用一个线程,不过它可以将自己分解为几个独立的线程来执行,例如,其中的一个线程可以发送一个文件到打印机,而另一个可以响应用户的输入。
2022-08-22 14:05:26
856
转载 __declspec(thread)
编程中, 同一个变量, 如果要让多个线程共享访问, 那么这个变量可以使用关键字volatile进行声明;呵呵, 这个办法就是TLS, 线程本地存储. 它的使用非常之简单, 只要对变量的声明使用__declspec(thread)就OK了. 下面我来举一个例子, 结合注释, 相信大家马上就能知道其”奥秘”了.当然, 更复杂的TLS, 就会需要用到Windows TLS的API: TlsAlloc, TlsFree, TlsSetValue, TlsGetValue了;//创建线程, 并立即启动它。
2022-08-22 10:27:12
648
原创 Leetcode 1190. 反转每对括号间的子串
给出一个字符串 s(仅含有小写英文字母和括号)。请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。注意,您的结果中 不应 包含任何括号。示例 1:输入:s = “(abcd)”输出:“dcba”示例 2:输入:s = “(u(love)i)”输出:“iloveu”示例 3:输入:s = “(ed(et(oc))el)”输出:“leetcode”示例 4:输入:s = “a(bcdefghijkl(mno)p)q”输出:“apmnolkjihgfedcb
2021-05-26 10:40:28
153
原创 Leetcode 500. 键盘行
给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。美式键盘 中:第一行由字符 “qwertyuiop” 组成。第二行由字符 “asdfghjkl” 组成。第三行由字符 “zxcvbnm” 组成。示例 1:输入:words = [“Hello”,“Alaska”,“Dad”,“Peace”]输出:[“Alaska”,“Dad”]示例 2:输入:words = [“omk”]输出:[]示例 3:输入:words = [“adsdf
2021-05-25 22:51:58
139
原创 idea第一个dubbo项目
前期准备: Java开发环境(JDK) maven下载地址:http://maven.apache.org/download.cgi zookeeper 我选择的是jdk1.8 + maven3.6.1 配置环境变量 新增变量 MAVEN_HOME 值 D:\apache-maven-3.3.9 查看环境变量下有无Path变量,没有则新增,追加或者设置值 %MAVEN_HOME%\bi...
2021-03-16 10:36:35
168
转载 Could not transfer artifact
idea报错:Could not transfer artifact cn.pinyougou:pinyougou-dao:pom:1.0-SNAPSHOT from/to nexus意思是说我的项目的一个模块无法找不到另一个模块的依赖,从网上下载了并且下载失败,但是我查看项目的时候发现项目成功打包了,后来一拍脑壳才想起来,这是因为只package了,并没有将项目安装到本地仓库,才会导致这种现象,后来重新clean–>install了一下,项目就成功启动了。说明一下,Maven中package
2021-03-10 11:03:59
2508
2
原创 mvn tomcat7:run遇到的问题
运行mvn tomcat7:run时出现错误解决方法:在该模块pom文件中,如下操作,然后再执行mvn tomcat7:run<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <exclusions> &l..
2021-02-22 09:43:45
753
原创 python四种方法实现保留两位小数
a = 5.5461方法一:round(a,2)方法二:float('%.2f' % a)方法三:‘%.2’ %a方法四:from decimal import DecimalDecimal('5.026').quantize(Decimal('0.00'))当需要输出的结果要求有两位小数的时候,字符串形式的:'%.2f' % a 方式最好,其次用Decimal。需要注意的:1. 可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮
2020-09-17 12:23:22
5168
转载 理解字节序 大端字节序和小端字节序
以下内容参考了http://www.ruanyifeng.com/blog/2016/11/byte-order.htmlhttps://blog.csdn.net/yishengzhiai005/article/details/39672529https://www.cnblogs.com/gremount/p/8830707.html1.计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。举例来说,数值0x2211使.
2020-07-08 09:30:17
178
原创 磁盘调度算法——FCFS、SSTF、SCAN、CSCAN、LOOK、CLOOK
为了减少对文件的访问时间,应采用一种最佳的磁盘调度算法,以使各进程对磁盘的平均访问时间最少。由于在访问磁盘时主要是寻道时间。因此,磁盘调度的目标是使磁盘的平均寻道时间最少。一.先来先服务(FCFS)1.方法根据进程请求访问磁盘的先后顺序进行调度2.优点公平、简单、每个进程请求都能依次得到处理,不会出现某一进程的请求长期得不到满足。3.缺点平均寻道时间有点长,适用于磁盘I/O进程数目较少的场合4.举例从100号磁道访问FCFS调度算法 被访问的下一个磁道号 移..
2020-07-08 09:27:27
16285
6
转载 First集和Follow集的求法
自上而下分析:FIRST集求法First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。1.直接收取:对形如U->a…的产生式(其中a是终结符),把a收入到First(U)中2.反复传送:对形入U->P…的产生式(其中P是非终结符),应把First(P)中的全部内容传送到First(U)中【意思就是只需要把第一个非终结符...
2020-06-29 11:06:38
568
原创 python中让输出无换行无空格
Python2.x换行python2.x中输出是默认换行的,为了不换行,可以在最后加一个逗号空格 python2.X中,在开头加上from__future__importprint_function,使用print就像python3.X那样加括号使用。Python3.x换行可以使用print(x, end="")使输出不换行,双引号之...
2020-02-07 12:51:02
9358
原创 Python中append和extend的区别
>>> a = [1, 2, 3]>>> b = [4, 5, 6]>>> a.append(b)>>> a[1, 2, 3, [4, 5, 6]]使用append的时候,是将b看作一个对象,整体打包添加到a对象中。>>> a = [1, 2, 3]>>> b =...
2020-01-19 11:03:13
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人