利用/dev/urandom文件创建随机数

1:/dev/urandom和/dev/random是什么   这两个文件记录Linux下的熵池,所谓熵池就是当前系统下的环境噪音,描述了一个系统的混乱程度,环境噪音由这几个方面组成,如内存的使用,文件的使用量,不同类型的进程数量等等,刚开机的时候系统噪音会较小。在这两个设备的差异在于:/dev...

2019-05-13 10:23:24

阅读数 26

评论数 0

[图解MySQL]MySQL组提交(group commit)

前提: 以下讨论的前提 是设置MySQL的crash safe相关参数为双1: sync_binlog=1 innodb_flush_log_at_trx_commit=1 背景说明: WAL机制 (Write Ahead Log)定义: WAL指的是对数据文件进行修改...

2019-05-09 13:57:33

阅读数 7

评论数 0

golang手动管理内存

作者:JohnGraham-Cumming.原文点击此处。翻译:Lubia Yang(已失效) 前些天我介绍了我们对Lua的使用,implementournewWebApplicationFirewall. 另一种在CloudFlare(作者的公司)变得非常流行的语言是Golang。在过去,我...

2019-05-07 09:40:14

阅读数 63

评论数 0

EC纠删码原理

Erasure Code - EC纠删码原理 一、什么是Erasure Code Erasure Code(EC),即纠删码,是一种前向错误纠正技术(Forward Error Correction,FEC,说明见后附录),主要应用在网络传输中避免包的丢失, 存储系统利用它来提高 存储 可靠性...

2019-05-05 11:34:12

阅读数 30

评论数 0

Restful风格学习总结

非RESTful风格问题 七宗罪的第一条,混乱。     一万个人心里有一万个Url的命名规则,Url是统一资源定位符,重点是资源。而很多人却把它当成了万金油,每一个独立的虚拟的网页都可以随意使用,各种操作都能够迭加。这是混乱的来源之一。 比如: https://localhost:8080...

2019-05-04 17:37:32

阅读数 40

评论数 0

用Valgrind定位子进程内存泄漏

1. valgrind跟踪子进程 以下例子用spawn-cgi来测试验证,spawn-cgi会生成一个cgi子进程 --trace-children=yes:valgrind加上该参数用于跟踪子进程 valgrind --leak-check=full --trace-children=ye...

2019-04-16 17:52:58

阅读数 21

评论数 0

linux环境内存分配原理 mallocinfo

Linux的虚拟内存管理有几个关键概念: Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢 ? Linux的虚拟内存管理有几个关键概念:...

2019-03-28 09:42:08

阅读数 64

评论数 0

malloc_stats---检查内存泄露的神器

在之前的博客中提到过,valgrind可以用来检测内存泄露,但在使用中,往往会遇到一些问题,给调试工作带来很多不必要的麻烦,我自己遇到的有以下两种: (1)内存泄露误检(系统初始化时,可能有一些需要长期保存在内存中的数据结构,这些空间是永远不释放的,而这些内存会被认为绝对泄露) (2) val...

2019-03-25 17:30:01

阅读数 70

评论数 0

SSD写放大的成因与解决思路

笔者目前开发运维的存储系统的服务器都跑在SSD之上,目前单机服务器最大的SSD容量有4T之多。(公司好有钱,以前在实验室都只有机械硬盘用的~~)但SSD本身的特性与机械硬盘差距较大,虽然说在性能上有诸多优势,但是如果使用的方式方法不对,反而会事倍功半。所以笔者花时间调研了一下固态硬盘的结构与特性,...

2019-03-22 10:20:31

阅读数 78

评论数 0

Linux编程基础之进程等待(wait()函数

编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程。这里简单介绍一下系统调用函数:wait() 函数原型是 #include <sys/types.h>/* 提供类型pid...

2019-03-11 20:43:41

阅读数 27

评论数 0

采用epoll实现echo server和client

服务器代码: #include <sys/socket.h> #include <sys/epoll.h> #include <netinet/in.h&g...

2019-03-07 17:40:40

阅读数 40

评论数 0

EAGAIN、EWOULDBLOCK、EINTR与非阻塞的长连接

EWOULDBLOCK: 用于非阻塞模式,不需要重新读或者写 EINTR: 指操作被中断唤醒,需要重新读/写 EAGAIN:Resource temporarily unavailable,这表明你在非阻塞模式下调用了阻塞操作,在该操作没有完成就返回这个错误,这个错误不会破坏socket的同步 ...

2019-03-07 10:06:46

阅读数 36

评论数 0

浅析套接字中SO_REUSEPORT和SO_REUSEADDR的区别

转载地址:https://blog.csdn.net/yaokai_assultmaster/article/details/68951150 Socket的基本背景 在讨论这两个选项的区别时,我们需要知道的是BSD实现是所有socket实现的起源。基本上其他所有的系统某种程度上都参考了BSD...

2019-02-07 10:40:30

阅读数 70

评论数 0

gcc程序的编译过程和链接原理

    一、C/C++文件的编译过程: 先来看一下gcc的使用方法和常用选项 提示:gcc --help   Ⅰ、使用方法: gcc [选项] 文件名 Ⅱ、常用选项: 选项 含义 选项 含义 -v 查看...

2019-02-05 23:09:59

阅读数 38

评论数 0

getopt 函数的简单使用

最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴。 好了,虽然啰嗦了点,但确实是忠告。步入正题: 我们的主角----getopt()函数。 英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。...

2019-01-26 17:43:22

阅读数 106

评论数 0

warning: integer overflow in expression [-Woverflow]

C语言大数字表示易错点 错误事例 #include <stdio.h> #include <stdlib.h> #include <stri...

2019-01-04 11:00:58

阅读数 243

评论数 0

在Golang中获取系统的磁盘空间内存占用

获取磁盘占用情况(Linux/Mac下有效) import (     "syscall" )   type DiskStatus struct {     All  uint64 `json:"all"`     Use...

2018-12-10 20:21:05

阅读数 291

评论数 0

qsort用法--完整版(解释了cmp)

  原文地址:http://hi.baidu.com/xuhanqiu/item/99505e41aeef4eae61d7b916 用qsort快两年的时候了,却一直没有真正弄懂cmp函数的返回值1,-1,0的函数. 今天在做凸包时,郁闷了....所以请教了snoopy,终于弄懂了cmp返回值...

2018-11-29 19:45:41

阅读数 177

评论数 0

[: -le: unary operator expected 错误

运行xx.sh时出现 [: -le: unary operator expected 这个错误 后面经过排查得出错误代码段: declare -i i declare -i s  while [ "$i" -le "10&qu...

2018-11-26 10:51:32

阅读数 208

评论数 0

Nginx缓存配置及nginx ngx_cache_purge模块的使用

ngx_cache_purge模块的作用:用于清除指定url的缓存 下载地址:http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz   1、编译如下: # ./configure --prefix=/app/nginx --wi...

2018-10-26 10:03:20

阅读数 139

评论数 0

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