自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 编译版本太低(4.8)内核版本高引起的编译错误

升级到内核版本所要求的编译器版本。升级的时候网上有教程。

2023-08-09 15:50:27 348

原创 make: *** /lib/modules/3.10.0-957.el7.x86_64/build: No such file or directory.

重启之后,uname -r,显示,升级成功,并且和开发包的版本是一致的。按照某个博主的方式:yum update kernel,安装成功,/usr/src/kernels/有了,升级内核之后,需要重启!

2023-07-14 15:14:25 1856

原创 qemu 上安装aarch64架构iso流程和问题

宿主机:在zstack上,配置了gcc 7.4, bios使用的是QEMU_EFI.fd ,qumu命令:qemu-system-aarch64,使用说明参考help。1创建虚拟盘qcow ,qemu-img create -f qcow2 xxx-temp.qcow2 36G。遇到问题,iso安装的时候,莫名其妙卡住。后面修改了参数,增加了参数,qemu 加载镜像成功。3qemu发起从虚拟盘启动,启动的时候加载bios。2qemu模拟装载镜像到qcow盘。配置了桥接网卡,麒麟的iso,

2023-07-13 13:51:19 1035

原创 kvm设置桥接网卡失败,ssh连接失败

桥接之后,出的问题,ssh连接失败,ping不通外网。

2023-07-12 16:54:30 296

原创 qemu源码安装遇到的缺少的lib库

出错:../meson.build:463:2: ERROR: Dependency "pixman-1" not found, tried pkgconfig。安装qemu报错“ERROR: glib-2.48 gthread-2.0 is required to compile QEMU”缺少:yum install glib2 glib2-devel。下载:https://download.qemu.org/

2023-07-12 14:25:44 175

原创 gcc 源码安装遇到问题以及解决

遇到的问题:configure: error: C preprocessor “/lib/cpp” fails sanity check。安装之后,加载软连接,升级到安装版本。因为qemu可能使用的gcc版本是7.4以上的版本,系统自带的有点低了,更换版本。最后还缺少一个:glibc-kernheaders。安装版本:gcc 7.4。

2023-07-12 14:22:06 272

原创 greenplum数据库运维常见参数

work_mem(全局参数):建议设置为物理内存的2%-4%,用来限制segmen实例在运 行 sort,hash时候可用内存的大小,也就是用来限制postgresql在对大表分片排序合并的临时文件数,导致swap过大引起内存不足。effective_cache_size:可以缓存数据的内存大小,仅使用master。max_prepared_transactions:值和max_prepared_transactions一致,数据库启动后处于prepared状态事务最大数。

2023-05-12 11:50:55 946

原创 greenplum数据库概况

数据库架构:3节点,master+standby master +segment(mirror segment为segment提供高可用支持)。greenplum数据库核心组件:interconnect(并行查询生成,分发,协调数据节点查询)2>内存带宽测试:测量无cpu计算情况下,内存带看低于cpu理论带宽,会导致cpu花费等待时间长。1>磁盘io测试:测试建议,文件尺寸按照主机山ram的2倍计算,以便绕过内存缓存。greenplum基本数据类型:数值,货币,字符,日期/时间,布尔类型。

2023-05-11 17:10:46 384

原创 gp集群参数优化

gpstart的时候出错:gpstart error: Do not have enough valid segments to start the array.参数单位写错,正确的格式gpconfig -c wal_buffers -v 256MB。进入gpstart (gpstart -a -m)紧急模式,覆盖原有参数。修改参数:gpconfig -c wal_buffers -v 256M。

2023-04-27 16:49:42 429

原创 pgbench源码安装趟坑避坑

cd ..(解压目录)/postgresql-9.2.24/contrib/pgbench/cd 到解压目录的根目录下(postgresql-9.2.24/)执行 :./configure。cd 到解压目录的根目录下(postgresql-9.2.24/)执行 :make。源码解压安装目录:非/root目录,考虑到普通用户的访问权限,最好不要放在这个目录下。重新执行:cd contrib/pgbench/7重新执行:cd contrib/pgbench/安装环境:centos7。9原因:没有必要的链接库。

2023-04-27 11:27:31 380

原创 安装数据库greenplum-db

安装的时候,yum出了未知情况,不能使用,搜索了在各种网上的solution之后并没有解决问题,重启了一下可以正常使用,可能的原因是python库的问题,也可能是跟vm有关系,不知具体的是那种情况。最粗暴的方法:删除原有的用户,创建新的用户,重新设置。1:每个vm禁用selinux ,在/etc/selinux/config中 修改SELINUX=disable;1>修改 /etc/hosts 格式 IP 主机名,同时写vm1,vm2,vm3,并同步到3个vm。设置过程中,免密登录出的问题:设置不生效。

2023-04-24 17:50:19 221

原创 c和python混编

2编译中如果是找不到Python.h文件,应该是缺少了 python-devel,需要做的是:yum install python-devel。3编译报错dynamic module does not define init function,可能是少了上面的参数,重新编译。调用关系:_pslinux.py调用作为模块的_psutil_linux,模块名在_psutil_linux.c中的结构体标明。.c文件又有:_psutil_linux.c,.py文件有:_pslinux.py,2目标文件成为.so。

2023-04-24 17:45:44 107

原创 leetcode:重排链表

给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。解题思路:1查找链表的中间,分为偶数和奇数两种2找到中间端之后,断链3对链表的后半段入栈操作4合并两个链表代码如下,有些乱:/** * Definition for singly-linked l

2022-05-13 12:38:29 342

原创 leetcode,有效的括号(对不齐的思维)

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。数组实现:始终是不能向官方对齐啊,思维差别真的很大,由于白天板砖,晚上休息时间在(象征性)干互联网无关的副业啊。成年人的时间。。char match(char s){ if(s==')') return s='('; if(s==']') return s='['; if(s=='..

2022-04-21 17:52:15 213

原创 leetcode 有效的括号,stack实现。

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。实现的思路(传统方式):1压栈的是左括号([,(,{)2遇到右括号出站。3stack为空,字符串为空的情况下返回true不足:额外申请空间,代码长又长,还不如使用指针和数组做啊(凋零)struct list { char str; struct list *next;};

2022-04-20 09:52:53 215

原创 leetcode判断是否是回文链表

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。解题思路:1 0<=inode<listlen/2,压入stack中,后半段与压入栈中的数据做比较,所有相同则返回true2奇偶情况不同bool isPalindrome(struct ListNode* head){ struct ListNode *stack; struct ListNode *np; struct ListNode

2022-04-14 17:37:23 434

原创 leetcode 合并两个链表,cai

给你两个链表list1 和list2,它们包含的元素分别为n 个和m 个。请你将list1中下标从 a 到 b 的全部节点都删除,并将list2接在被删除节点的位置。struct ListNode* mergeInBetween(struct ListNode* list1, int a, int b, struct ListNode* list2){ struct ListNode *head; struct ListNode *start; stru...

2022-04-13 11:58:44 1024

原创 leetcode反转链表,写成了链表转化为stack,输出,算不算思路不对?

给你单链表的头节点head,请你反转链表,并返回反转后的链表。struct ListNode* reverseList(struct ListNode* head){ struct ListNode *cur=NULL; struct ListNode *save; struct ListNode *stack; if(!head) return NULL; while(head) { save=head->n..

2022-04-01 17:27:37 636

原创 leetcode 旋转链表

给你一个链表的头节点head,旋转链表,将链表每个节点向右移动k个位置。解题思路:(传统的思维模式aaaa(笨办法))根据旋转k值,拆分和拼接链表的结果:struct ListNode* rotateRight(struct ListNode* head, int k){ int listlen=0; int listep=0; struct ListNode *listail; struct ListNode *nodestep; nodestep...

2022-04-01 15:03:22 250

原创 leetcode 有序链表合并

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。解题思路:传统做法:设置虚拟节点,一个pointer。遍历。(lk)struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){ struct ListNode *listhead; struct ListNode *cur; if(!list1||!list2)

2022-03-29 10:23:11 990

原创 ubuntu使用了国内tsinghua的源,upgrade,reboot之后登录报“faill to load ‘ubuntu‘ session“,登录失败。求解问题原因?

一下是使用的源:deb http://mirrors.4.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.4.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiversedeb http://mirrors.4.tuna.tsinghua.edu.cn/ubuntu/

2022-03-28 10:20:01 572 2

原创 leetcode 两两交换链表中的节点

解题中注意的问题:1手动草稿纸上绘图:传统思维模式:使用pointer1,pointer2,pointer3交换链表节点。2 交换节点的时候,注意被交换节点->next的继承,防止丢失3每次step控制控制步数。代码是普通思维模式的下交换链表节点。为了遍历的时候方便,加入虚拟头节点hd。struct ListNode* swapPairs(struct ListNode* head){ struct ListNode * step1; struct List

2022-03-25 10:47:04 316

原创 刷题不尽我意,跟官方思路差了好远

给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ struct ListNode *np; struct ListNode *node=NULL; int listlen=0; int first=0; int last=0; int inode=0; np=head; while(np) ..

2022-03-22 09:54:06 490

原创 leetcode 两数相加,在ubuntu上编译通过,显示结果了,在leetcode上报错了,找错在哪?

给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头 * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* a...

2022-03-16 15:38:39 689 1

原创 两个栈实现一个队列

用两个栈实现队列,支持队列的基本操作。实现基本思路是:对栈做两次压入(push)操作,第一次压栈是先入后出的操作,比如1,2,3,4,5,6,如栈后按照入栈顺序由栈顶到栈底部为6,5,4,3,2,1,第二次对入栈的数字,再次push,顺序由从栈顶到栈底为1,2,3,4,5,6,最后对栈pop,出栈顺序为1,2,3,4,5,6.从第一次入栈到出栈,模拟队列,实现先进先出的顺序。datatype get_stack_data(lstack *ls){ struct node * inode;

2022-03-04 14:30:55 131

原创 push and pop list_stack ,get mindata ,print it

实现一个特殊的栈,在实现栈的基础上,在实现返回栈中最小元素的操作。int if_push_stack(lstack * datastack,lstack *minstack,datatype data){ datastack=push_stack(datastack,data); if(!datastack) return -1; if(minstack==NULL) { minstack=push_stack(minstack,dat

2022-03-03 10:42:43 130

原创 队列的基本操作和实现

初始化队列的函数:void init_lkqueue(lkqueue *lq){ pointer node; node=(pointer)malloc(sizeof(*node)); if(!node) return; lq->fron=lq->rear=node; node->next=NULL;}判断队列是否为空:int empty_lkqueue(lkqueue *lq){ if(lq->re

2022-03-01 16:00:40 649

原创 sort data of stack from max to min

栈内元素为整形,实现从栈顶到栈底大到小的排序。要求:最多只许申请一个栈,可以申请新的变量,但是不能申请新的数据结构。int sort_data_of_stack(lstack * stack){ lstack * help=NULL; datatype stackdata,cure; help=(pointer)malloc(sizeof(*help)); if(!help) return -1; help->top=NULL;

2022-02-28 13:57:03 255

原创 stack of list

int push_lkstack(lkstack *st,datatype data){ struct node *inode; inode=(struct node *)malloc(sizeof(*inode)); if(!inode) return -1; inode->next=st->top; inode->data=data; st->top=inode; return 1;}int po.

2022-02-28 09:54:37 69

原创 qemu上加载centos

1 创建一个大小为36G的镜像文件,镜像文件的格式qcow2:qemu-img create -f qcow2 centos-temp.qcow2 36G2给镜像文件加载centos镜像:qemu-system-x86_64 -cpu host -smp 2 -m 4096 -enable-kvm -boot menu=on -vnc :99 -usb -device usb-ehci -device usb-kbd -device usb-mouse -device usb-tablet -h

2022-02-25 09:51:31 1954

原创 double list

尾插法创建双链表dlklist create_d_list(dpointer dlist){ dpointer dnode,rear; int i; dlist=(dpointer) malloc(sizeof(*dlist)); if(!dlist) return NULL; rear=dlist; for (i=1;i<12;i++) { dnode=(dpointer)malloc(sizeof(..

2022-02-25 09:45:19 267

原创 code list

创建链表的时候减少了null pointer的检测次数,体现在给链表加入了一个表头,这样就不用每次判断链表是否为空的情况,在尾端插入链表节点的时候,每加入一个节点就把rear指针指向新加入的节点,减少了每次插入前需要遍历链表的烦恼。lklist create_list_fron(){ pointer node,hlist; hlist=(pointer)malloc(sizeof(*hlist)); if(!hlist) return NULL; hl

2022-02-24 16:30:01 493

原创 获取iSCSI LunGroup列表代码

int iscsi_target_get_groupsinfo(struct getgroupsinfo *groupsinfo,int len){ struct t10_alua_lu_gp * lu_gp; struct getgroupinfo *groupinfo; struct t10_alua_lu_gp_member *lu_gp_mem; stru...

2019-10-16 17:32:10 196

原创 dmeventd在thin 设备自动扩容的作用

注册事件(REGISTER_FOR_EVENT):在初始化的时候去注册一个事件。包括注册事件进程ID ,q序列号,初始化事件定义为DM_EVENT_CMD_HELLO。注册的id和q都是关于进程的 ,是为了作为客户端的dmevrntd进程在获取到动态连接库的调用之后,才事件有真正的事件注册,即:int _register_for_event(struct message_data *mes...

2019-02-27 14:07:14 911 5

原创 Multipath-tools discovery

 最近在做mutipath-tools 源码的阅读,以下是个人的理解,会断断续续的写一些文档出来。作为个人理解。目前看到multipath源码流程大致分为:发现路径(discovery),聚合路径(coalesce_path),聚合映射(coalesce_map),事件监听(这个是重点)。以后的会再次补充。连接聚合路径和聚合映射的数据结构是;struct vectors { struct mute...

2018-05-17 20:13:40 537

原创 Multipath-tools install 错误记录

1安装版本:multipath-tools_0.7.4.orig.tar.gz2解压之后#make 出现错误:CC1:error:unrecognized command line option‘-fstack-protect-strong’出现这样的报错,就是GCC版本的问题。我用的本机版本4.6.3.切换后的版本是5.4.1.下面的链接地址是gcc版本更新新和切换的:https://www.l...

2018-05-14 16:38:30 537

原创 最近的零零碎碎的做了python的笔记以便以后翻阅

python本身是C语言写成的,所以作为笔记,目的就是速记以便之后和C语言做对比。2.4 运算符:** 表示乘方运算符,具有运算符的最高优先级。//除法运算符,对浮点数的除法(结果四舍五入)2.5:变量和赋值:变量名大小写敏感,无需声明变量的类型。不支持自增和自减的运算2.6数字支持复数运算:比如-J2.7 字符串:1引号之间的字符集和合,支持成对的单引号双引号三引号。2+

2017-10-22 10:34:31 214

原创 创建属于自己的内核PROC文件实现链表搜索并打印iscsi信息

有关内核proc文件的函数目录都在“linux/proc_fs.h”下面。创建一个属于自己的内核proc文件的需要的是加载一个完整的内核模块,所以主要的是以下。static int tl_proc_init(void){ Log_dir=proc_mkdir("iscsi_log",NULL); proc_create("initiator_target",S

2016-11-14 11:12:35 467

原创 iscsi阶段性总结

iscsi的主干函数是以下的六个: 一:Iscsi 入口函数:static int __init iscsi_target_init_module(void)(iscsi_target.c:470) 二:Iscsi退出函数:static void __exit iscsi_target_cleanup_module(void)(iscsi_target.c:571) 三:Iscsi targe

2016-09-20 18:18:00 1853 1

原创 <<程序员面试金典>>的题

去国图,偶尔翻动一下面试题,于是记录自己感兴趣的。面试金典1:给定两个两个排序好的数组A和B,其中A 的末端有足够大的缓冲来容纳B,编写一个程序将B并入A 并且排序。int * ABFindSorting(int aa[],int bb[],int lastA,lastB){ int index,A,B; index=lastA+lastB; while((lastA!=

2016-02-23 21:20:07 438

空空如也

空空如也

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

TA关注的人

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