自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 C语言结构体内存对齐(#prama / __attribute__)

本文测试机器为X86_64架构,系统为ubuntu-16.04 LTS,gcc version 7.4.0一、默认的内存对齐首先,通过一个例子来介绍什么是内存对齐。#include <stdio.h>int main( ){ struct data { float a; char b; int c; }...

2019-11-08 20:51:58 1092

原创 E667: Fsync failed

通过vim编辑文件/proc/sys/kernel/core_pattern,保存时报错E667: Fsync failed通过以下方式:echo “core-%e-%p-%t” | sudo dd of=/proc/sys/kernel/core_pattern参考:https://askubuntu.com/questions/167819/im-getting-fsync-failed-...

2019-10-11 19:14:04 4497 1

原创 slurm集群安装

环境:三台物理机,os均为ubuntu-18-04 LTS,hostname分别为tian-609-06、tian-609-07、tian-609-08。其中tian-609-06作为控制节点和计算节点,其他节点作为计算节点。1、安装munge和slurm(所有机器)sudo apt install munge slurm-wlm2、配置/etc/slurm-llnl/slurm.conf...

2019-10-10 10:17:51 5823 2

原创 epoll惊群测试

一、udp惊群测试1、模型2、代码#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <sys/epoll.h>#include <sys/types.h>#include <sys/wait.h>#include &lt...

2019-08-16 19:27:00 313

原创 nginx进程间传递文件描述符

由于笔者才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正。起初知道进程间可以传递文件描述符的时候就很好奇是怎么做到的,最近查阅了一些文章,此处做个笔记,方便日后回顾。文中结合nginx代码,具体分析一下如何在不同进程之间传递文件描述符。一、浅谈sendmsg和recvmsg由于nginx中通过sendmsg和recvmsg的辅助信息来传递文件描述符,此处先简要介绍这两个接口。1、函数原型...

2019-08-03 17:17:36 956

原创 nginx源码分析—reuseport的使用

本文主要介绍nginx中reuseport的使用,文中代码较多,阅读本文需要读者对nginx的事件模块以及listen配置过程有了解。由于nginx比较复杂,且作者对nginx的理解有限,文章难免存在疏忽之处,敬请指出!一、reuseport的配置及解析reuseport通过listen指令来配置,配置如下:listen 443 reuseport;listen指令由ngx_http_...

2019-06-13 21:08:35 10143

原创 Nginx内存池管理

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。Nginx使用内存池对内存进行管理,提高内存管理效率。对于小块内存,直接从已分配好的内存池中获取(返回指针);对于大块内存,直接调用malloc申请内存,然后将大块内存挂在内存池上进行管理(链表形式)。对于内存的申请,Nginx还做了一些优化,比如在某一块内存池上申请小内存失败次数超过四次时,直接跳过该内存池,后续将不在...

2019-06-05 10:51:57 332

原创 Nginx源码分析—套接字继承

本文主要简要介绍Nginx中关于套接字的继承,这里提到的继承不是指worker进程继承master进程的监听套接字,而是指启动master进程时,master继承父进程的监听套接字。继承的方式1、master进程在main函数中调用ngx_add_inherited_sockets函数判断是否需要继承父进程的监听套接字。若没有需继承的套接字则返回,否则继续。2、ngx_add_inherit...

2019-06-04 16:42:36 433

原创 Diffie-Hellman算法

一、Deffie-Hellman 算法简介Deffie-Hellman(简称 DH) 密钥交换是最早的密钥交换算法之一,它使得通信的双方能在非安全的信道中安全的交换密钥,用于加密后续的通信消息。 Whitfield Diffie 和 Martin Hellman 于 1976 提出该算法,之后被应用于安全领域,比如 Https 协议的 TSL(Transport Layer Security)以...

2019-02-27 23:03:12 16443

转载 程序员面试被问到“三次握手,四次挥手”怎么办?

转自:https://blog.csdn.net/csdnnews/article/details/86570658

2019-02-22 10:34:13 143

转载 linux backlog详解

本文转自:http://veithen.io/2014/01/01/how-tcp-backlog-works-in-linux.htmlWhen an application puts a socket into LISTEN state using the listen syscall, it needs to specify a backlog for that socket. The b...

2018-12-14 15:53:27 819

转载 C语言变长参数详解

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正。一、基础部分1.1 什么是可变长参数可变长参数:顾名思义,就是函数的参数长度(数量)是可变的。比如 C 语言的 printf 系列的(格式化输入输出等)函数,都是参数可变的。下面是 printf 函数的声明:int printf ( const char * format, … );可变参数函数声明方式都是类似的。1.2 如何实...

2018-12-10 16:20:38 5025

原创 浮点数比较大小

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。  最近阅读《剑指offer》,其中有提到浮点数不能直接用 ‘==’比较,之前就有听说这个问题,但一直没有深入理解。今天,查阅了一些资料,对其进行解释,方便日后查阅。一、前言首先来看一个例子:#include &lt;iostream&gt;#include &lt;cmath&gt;using namespac...

2018-11-20 11:21:41 12260 1

原创 TSO与GSO简单区分

概念TSO(TCP Segmentation Offload): 是一种利用网卡来对大数据包进行自动分段,降低CPU负载的技术。 其主要是延迟分段。GSO(Generic Segmentation Offload): GSO是协议栈是否推迟分段,在发送到网卡之前判断网卡是否支持TSO,如果网卡支持TSO则让网卡分段,否则协议栈分完段再交给驱动。 如果TSO开启,GSO会自动开启。以下是TSO...

2018-11-13 21:42:23 2965 1

原创 sendmmsg测试

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。一、sendmsg和sendmmsg简介  其中sendmsg就是一个发包的系统调用,一次只能发送一个包,具体的可参考 https://linux.die.net/man/2/sendmsg  sendmmsg是对sendmsg的优化,调用一次sendmmsg可以发送多个segments,具体可参考 http://ma...

2018-11-09 19:52:12 3448

转载 TCP-SCAK详解

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。最近做QUIC相关的工作,QUIC中采用的是SACK的确认方式,比较好奇,TCP中SACK是如何工作的,于是网上找了一些资料,发现这篇文章讲的比较详细,供自己和读者学习。参考 https://www.cnblogs.com/lshs/p/6038555.html总结在介绍之前,我先简单总结一下这篇文章给我带来的收获。...

2018-10-23 11:12:49 1648

转载 虚继承简单介绍

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。此处只是简单介绍虚继承的概念,具体细节参考其他资料。本文转自https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.cbclx01/cplr134.htmhttps://www.ibm.com/support/knowl...

2018-10-22 21:50:46 181

转载 c++虚函数表与虚析构函数

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。很早就听说过虚函数表的概念,但是一直没去深究,今天借这篇文章介绍一下虚函数表,以及析构函数需要定义为虚函数的根本原因。本文转自 https://www.cnblogs.com/shijingjing07/p/5559989.htmlC++虚函数表与虚析构函数1.静态联编和动态联编联编:将源代码中的函数调用解释为要执...

2018-10-22 20:43:36 876

原创 继承、隐藏、覆盖和重载的区别

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。1.父子类继承关系: 子类复制父类全部成员首先,理解父子类的继承关系是怎样发生的。在此基础上就很容易理解它们之间的关系和区别。每一个类有它自己的成员变量和成员函数,是一个独立的空间整体。当子类继承父类时,会将父类的全部成员全部复制一份,作为子类的成员,但是,同时也会标记这些成员是从父类中继承的,与子类本身的成员,还是有...

2018-10-21 22:19:16 559

原创 具有子类的类,析构函数尽量定义为虚函数

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。一、使用new创建对象需要显示的调用Delete来删除对象,否则将造成内存泄漏。代码如下所示#include &amp;amp;amp;lt;iostream&amp;amp;amp;gt;using namespace std;class Test{public: Test(int v = 0) : data(v){ cout &amp;amp;amp;lt;&amp

2018-10-21 15:38:47 1723 1

转载 NULL、nullptr和0的区别

在进行C/C++编码时,我们经常会用到空指针,这里简单介绍一下NULL、nullptr以及0的区别。一、NULL和0NULL其实就是整数0,头文件中通过宏定义将NULL定义为0。因此,当调用如下代码时,编译将会产生歧义void fun(int v){ printf(&amp;amp;quot;int\n&amp;amp;quot;); return ;}void fun(char *p){ printf(&amp;amp;quot;point\

2018-10-19 13:30:49 10052 2

原创 按key连接两个文件

1、join 通过join命令直接对文件进行连接,参数此处不做详细介绍,可参阅网上的资料。  但是有一点需要注意,利用join命令进行操作时,需要保证每个文件中包含key的那一列有序。2、通过awk命令 此处不需要保证文件中包含key的那一列有序。  参阅http://lxw1234.com/archives/2016/03/621.htm...

2018-08-20 15:26:32 309

原创 C++赋值运算符重载函数(operator=)

  由于对c++的重载符号一直不是很理解,此处参阅一些资料给出比较详细的解释,方便读者以及自己查阅。例1#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstring&amp;amp;amp;gt;using namespace std;class MyStr{private: char *name = NULL; int id;publi

2018-08-13 21:41:32 5035 2

原创 多线程的进程调用exec时,将终止整个进程

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。 最近比较好奇,若是一个多线程的进程执行exec()系统调用时,进程将作何反应,详情请如下代码:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;unistd.h&gt;#include &lt;pthread.h&gt;void *...

2018-07-28 10:53:07 1288

原创 父子进程,父子线程之间的继承关系 - 未完待续

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。由于每隔一段时间都会对父子进程,父子线程之间的继承关系感到疑惑,故今天开始记录相应问题,方便日和查阅!首先需要明确父进程退出时,子进程将变为孤儿进程,直到被init进程收养。但是父线程退出时,子线程也将立即退出。一、文件描述符   子进程可以继承父进程打开的文件描述符。   子线程也可以继承父线程打开的文件描...

2018-07-27 16:43:04 2753

转载 Ubuntu恢复被删除的文件

转自:https://blog.csdn.net/itleaks/article/details/28016205

2018-06-25 14:32:50 5319

原创 关于线程号的一些总结

由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。 强调内容一、线程号的获取首先,我们要知道一个进程可能包含多个线程,每个线程都有自己的id。获取线程id存在下面两种方法:1、pthread_t pthread_self(void):  其中返回值类型为pthread_t,类型的定义如下所示:typedef unsigned long int pthrea...

2018-06-25 14:06:22 2642

转载 互斥锁与自旋锁的对比

最近阅读《Operating System Concepts》时,对互斥锁和自旋锁的理解不够深入。网上搜到一篇质量不错的博客:https://blog.csdn.net/freeelinux/article/details/53695111

2018-06-23 15:52:19 258

转载 优先级翻转

参考:https://blog.csdn.net/qq_25077833/article/details/53344215

2018-06-22 09:52:01 116

原创 ubuntu下调用fork,子进程只copy父进程的几个线程呢?

  由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。      最近在看《Operating system concepts》的4.6.1小节时候发现,fork将产生一个新的子进程,那么父进程的所有线程是否copy至子进程呢?   为此,我写了如下代码来验证,此实验在ubuntu16.04-LTS下进行:#include &amp;amp;lt;stdio.h&amp;amp;gt;#inc...

2018-06-08 09:38:54 2250

原创 图计算系统PowerGraph安装部署

博客:https://www.jianshu.com/p/af02bb459ff4 github:https://www.jianshu.com/p/af02bb459ff4由于作者不再对github上的GraphPower项目进行维护,故安装部署将遇到很多问题。下面主要列出其中本人遇到的问题: 1、make编译,下载压缩包时,hash编码不匹配:直接网上下载对应的压缩包,此处仅提供可能需...

2018-06-03 23:04:53 1994 8

原创 linux下rto的设置及rto测试

rto修改命令sudo ip route change 172.16.100.0/24 dev eth0 rto_min 5 (ms) rto测试  1、编写socket网络程序测试,客户端一直向服务端发送数据(测试客户端的rto),在客户端与服务器端通信过程中,将服务端向客户端通信的路由项删掉。   2、客户端通过wireshark抓包,即可分析rto的变化规律(指数退避)。...

2018-05-30 19:28:04 3996

原创 二维数组作为实参,调用函数,段错误

  我相信大家在进行C/C++编程时,都遇到过这样的问题,即需要将二维数组作为实参来调用函数。如下代码所示:#include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;void set_char(char *c[]){ c[0][0] = 'b';}int main(){ char c[10][10]; c[0][0] = 'a'; set_char(c); ...

2018-05-26 19:08:38 2869

转载 孤儿进程与僵死进程

最近看到一篇介绍孤儿进程与僵死进程的文章https://www.cnblogs.com/Anker/p/3271773.html,不过要注意其中提到孤儿进程的父进程将变成init进程。注意:在Ubuntu文本模式下孤儿进程的父进程为init进程,但是在图形界面下孤儿进程的父进程不再是init进程(此处有介绍https://www.cnblogs.com/chilumanxi/p/5136102.ht

2017-11-22 20:56:16 199

原创 Map任务个数的设置

一、FileInputFormat类的输入分片1.1 map任务个数等于split个数在hadoop当中,map任务的个数等于split(分片)的个数,一个split对应一个map。 当文件小于split的大小时,一个文件对应一个split; 当文件大小超过split时,该文件将被切分成多个split,文件大小除以split得到split个数。 1.2 split大小的设置max(minimu

2017-11-17 18:43:26 3024

原创 maven将所有的依赖打成一个包

跑mapreduce实验的时候发现,总是报错CLASSNOTFOUND,即使在hadoop-env.sh添加HADOOP_CLASS时,还是会同样的错误。于是想到将依赖的包和自己的class文件打成一个包,避免找不到类。 在pom.xml中添加<build> <plugins> <plugin> <artifactId>mav

2017-11-07 19:00:29 3647 1

原创 Hadoop跑HBase实例需注意的问题

吐血啊刚入门大数据,最近在学习hbase相关的知识,用java写了一个创建table的例子。 然后傻逼了,写完了直接就在在idea里面跑了,结果报错:找了整整一晚上,后来找师兄请教了一下,师兄建议直接到集群上跑,或者跑伪分布。 然后就跑了伪分布,发现不报idea里面的错了,而是报:class not found。上网一查,是因为没有在hadoop-env.sh里面将hbase下的lib目录添加到

2017-11-04 21:53:56 288

转载 ssh原理与运用

如果读者对“公钥加密”的概念不熟悉,建议先阅读《数字签名是什么?》一、什么是SSH?简单来说,ssh是一种通信协议,用于计算机之间通信的加密。 如果用户从本地计算机,使用ssh登录到远程主机,即使信息被中途截获也无关紧要。二、基本用法SSH主要用于远程登录。假定你要以用户名user,登录远程主机host,只要一条简单命令就可以了。  $ ssh user@host如果本地用户名与远程用户名一致,登

2017-10-29 21:03:54 470

原创 idea 配置maven以及maven配置

以下为idea里面配置maven

2017-10-27 13:52:22 274

原创 MR全局变量的设置

mapreduce全局变量设置这两天正好在做倒排索引,需要利用总文档数来完成一项job,但是发现通过在最外层类设置static变量进行全局变量的共享时,发现并没用,在main函数给static变量赋值后,mapper类中取出的是0或者null。后面发现可能是由于每个mapper和reducer并不是存在同一个线程,所以导致无法共享static变量。后来在网上查了一下,大概有这么三种方法,共享全局变量

2017-10-27 12:13:59 509

libevent-2.0.18-stable.tar.gz

安装PowerGraph所需的压缩包,libevent-2.0.18-stable.tar.gz。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-06-04

空空如也

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

TA关注的人

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