- 博客(88)
- 收藏
- 关注
原创 常见数据结构
四、RedBlackTree(基于内存,有序,非持久化)三、LSMTree(基于内存和磁盘,可持久化)五、跳跃链表(基于内存,有序,非持久化)二、B+Tree(基于磁盘,可持久化)一、BTree(基于磁盘,可持久化)六、哈希表(基于内存,非持久化)
2024-07-26 11:15:48 141
原创 各类分布式数据库对比
7、PolarDB(阿里 注:云原生--部署在公有云,性能和容量可弹性伸缩)2、TiDB(国产,PingCAP)5、Oceanbase(阿里)6、GBase(天津南大通用)3、MongoDB(阿里)4、GaussDB(华为)1、HBase(阿帕奇)
2024-07-19 11:58:05 201
原创 xfs文件系统cd命令卡死,sync命令卡死问题
原因:终端进入到挂载点目录执行过ls、ll、ll -R等类似操作,默认的mount属性带有atime属性,当ls命令执行后会依次修改目录下所有文件的atime属性,这个修改时间不可预估(sync不会阻塞在系统修改atime过程中),如果此时程序sync && umount -l挂载点并iscsiadm登出磁盘,因磁盘已失效xfs文件系统将在修改atime的过程中死锁,导致后续sync命令永远不可用。注:这个问题只在redhat 7.0 7.1 7.2三个小版本中出现,其他版本均正常。
2024-04-08 21:44:58 337
原创 基于qcow2镜像的iscsi挂载,写入速度损耗验证
当iscsi直接使用分区进行挂载给目标端时,速度和原磁盘的写入速度基本一致。当使用qcow镜像加上iscsi一起挂载给目标端时,速度损耗较大,约为原盘写入速度的1/10到1/8。
2024-01-23 11:03:23 547
原创 网络传输(TCP)
以IP包头20字节TCP包头20字节为例,即当我们发送一个空报文是,协议会自动补6字节空数据(如下图),而当我们发送1MB的数据时协议则会将其切片分成1024*1024/1460=719个包逐个发送。(注:netcat工具发送的tcp包头带有套接字选项,头长度为32字节)我们tcpdump抓包时会看到除报文数据外,前面还有一段其他的数据,这段数据分为两部分,ip包头(一般20字节)和tcp包头(一般20字节),一般这两个头长度和为40,我们直接跳过抓取的数据前40字节及为我们需要分析的有效数据。
2024-01-11 18:16:39 1489
原创 TNS-12531: TNS: 无法分配内存
环境为windows server 2008,oracle监听突然失效外部无法连接,查看日志,alert_orcl.log报错ORA-00600,listener.log报错TNS-12531: TNS: 无法分配内存。人工误删了一个批处理文件,有一个程序会定期执行"start ***.bat"调用此脚本,当文件不存在时start命令会无限制循环重试。一开始以为是程序异常占用大量内存导致,重启观察一段时间监听再次报错,但是内存使用率仅50%,且cpu和文件句柄数其他都正常。记一次客户生产环境报错。
2023-09-14 12:06:02 513 1
原创 mysql逻辑备份和恢复
2 增量(1、刷新binlog 2、备份 上次切换binlog<包含> - 本次切换binlog<不包含>之间的日志)(PS:binlog所在目录在my.cnf中配置,若log-bin的值为mysql-bin则使用的是datadir路径)1 全备 (变量为密码、端口号、输出路径。--compress支持压缩)3 恢复(show processlist;
2023-09-13 14:05:39 284
原创 sysbench创建数据使用(mysql)
yum -y install sysbench (centos7环境示例)mysql -u root -p 123 后创建sbtest库。
2023-08-22 15:32:17 196
原创 rsync增量原理,及C++实现
代码示例如下, demo中BLOCK_SIZE设置为5方便比较(源码中的默认大小为700),且用的散列函数为相对简单的除余法(源码中的散列函数为其他)。1、目标端将目标文件按700字节为大小分块计算强弱校验值(强:md5 弱:adler32,注:弱校验码计算量小速度快,先比对弱校验码,弱校验值一样再比对强校验码),再结合块号组成一个校验列表发给源端。2、源端再将这些强弱校验信息利用散列函数存放入hash表(为了快速查询),源端一个字节一个字节逐个偏移文件指针比对块的校验值,组成重组信息发送给目标端。
2023-07-18 14:04:58 415 1
原创 redhat 7及以上版本crsctl start crs启动失败问题
因为rac老版本启动依赖的是init.d,而redhat 7及以上版本默认为systemd,两者的差异较大。导致redhat 7及以上版本启动crs的ohasd服务时会卡住一段时间且最后无法启动成功,strace日志则会显示无法找到/var/tmp/.oracle/npohasd文件。手动的方法:在执行crsctl start crs后马上再新开一个终端执行/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1。
2023-06-12 15:04:21 700
原创 centos安装多路径,及安装后新增磁盘无法格式化处理方法
multipath -ll 会输出mpath*** size***等信息(注:如果输出为空可重启看看。错误描述:/dev/*** is apparently in use by the system;方案:vi /etc/multipath.conf 在blacklist项增加需要格式化的设备路径,再重载multipathd服务即可。lsblk 命令输出除sda盘外其他的磁盘下多多出一个mpath*的分区。
2023-05-24 21:44:20 731
原创 docker的简单使用(centos7中为例)
安装并启动镜像: docker run -it docker.io/18703283952/mycentos /bin/bash。进入镜像: docker attach *** (命令docker ps -a看到的最后一个字段NAMES)启动镜像: docker start *** (命令docker ps -a看到的最后一个字段NAMES)停止镜像: docker stop *** (命令docker ps -a看到的最后一个字段NAMES)查看已安装镜像:docker ps -a。
2023-04-25 11:09:43 443
原创 linux创建虚拟磁盘的方法
依赖:下载内核对应nbd源码编译,insmod装载nbd驱动。yum install -y qemu**下载对应qemu工具。2、dd命令和loop驱动完成 (系统自带指令,无需另外安装依赖)1、qemu指令和nbd驱动完成(需另外安装依赖)
2023-04-04 14:34:23 1032
原创 vs编译常见报错
在“文件》高级保存选项》行尾”选择CRLF结尾后,确定保存,重新编译即可。vs2008编译linux迁移的工程时,会报出很多莫名的错误。
2022-10-09 15:04:59 299
原创 linux下socket套接字相关
1、只读取数据,不清socket区缓存,可重复读相同的数据块。 ssize_t recv(int sockfd, void *buf, size_t len, int flags); 第四个参数设置为MSG_PEEK即可,当需要清理时再设为0即可。2、状态3、setsockopt常用选项TCP_NODELAY,禁用Nagle算法,避免小包延时40ms发送,可保证通信的时效性。SO_KEEPALIVE,自动发送心跳,默认间隔两小时TCP_KEEPIDLE,心跳间隔,发送若干次探测包TCP_KEE
2022-08-03 12:31:18 215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人