- 博客(23)
- 资源 (12)
- 收藏
- 关注
翻译 C++11: yield() vs sleep_for()
在写入Microsoft专用C++代码时,spinlocking时使用Sleep(1)比Sleep(0)好,是因为Sleep(0)将使用更多的CPU时间,而且Sleep(0)只有在有另外一个等于-priority线程等待运行。 然而,使用C++ 11线程库,没有太多关于std :: this_thread :: yield()与std :: this_thread ...
2019-04-28 17:05:24 3494
原创 boost yield fock介绍
1 介绍 协程分为对称协程(symmetric)和非对称协程(asymmetric),对称协程需要显式指定将控制权yeild给谁,非对称协程可以隐式的转移控制权给它的调用者,boost coroutine2实现的是非对称协程.Boost库中的协程支持两种方式: 一种是封装了Boost.Coroutine的spawn,是一个stackful类型的协程;...
2019-04-28 16:51:41 1824
原创 C/C++ 协程库boost.coroutine2、魅族libgo、腾讯libco、开源libaco详解
最近研究高性能C++协程,网上了解到了魅族libgo、腾讯libco、开源libaco、boost coroutine,这里记录一下。1 什么是协程 协程可以很轻量的在子例程中进行切换,它由程序员进行子例程的调度(即切换)而不像线程那样需要内核参与,同时也省去了内核线程切换的开销,因为一个协程切换保留的就是函数调用栈和当前指令的寄存器,而线程切换需要陷入内核态,改...
2019-04-25 14:34:37 16227 5
原创 c++11:线程池,boost threadpool、thread_group example
这里介绍一下boost两种线程池的使用,以及C++11实现线程池。1 boost::threadpool最新版本boostHeader:boost/asio/thread_pool.hppConvenience header:boost/asio.hppvoid my_task(){ ...}...// Launch the pool with four...
2019-04-22 17:00:49 15119
转载 zookeeper与etcd的对比
背景最近在看到Pachyderm的介绍时,看到作者拿YARN和Kubernetes做类比,拿Zookeeper和etcd做对比。YARN和Kubernetes的类比还相对比较好理解,毕竟他们都有资源管理和调度的职能,只不过YARN上运行的对象是JVM,而Kubernetes上运行的是容器。但是拿Zookeeper和etcd来类比我就有些不懂了,在我之前的概念里zookeeper并不是一个...
2019-04-19 15:31:47 20544 3
转载 libev+nanomsg实现多线程通信及事件轮询实例demo
概述:在我们刚接触程序编码的时候,我们要轮询数据有没有发过来,我们最多的可能还是使用while+sleep这样的组合,这对于处理来说是一个效率很低的方法同时还消耗cpu,那么在多线程编程中使用libev+nanomsg会不会提高效率呢。下面实例主要工作如下:A B C 三个线程通过nanomsg通信,A线程作为主线程,控制中枢,B C请求均通过A.那么在实际应用中,比如B模块是接收...
2019-04-19 15:21:27 2891
转载 find 默认不查找软链接内的文件
介绍find 给出的 find 语法是 find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression] find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression] [-H | -L | -P] [-EXdsx] 这些就是 find 的可选选项。...
2019-04-19 15:21:05 8628
转载 Linux Shell 1>/dev/null 2>&1 含义
shell中可能经常能看到:echo log > /dev/null 2>&1命令的结果可以通过%>的形式来定义输出/dev/null :代表空设备文件> :代表重定向到哪里,例如:echo "123" > /home/123.txt0 :标准输入stdin1 :表示stdout标准输出,系统默认值是1,所以">/dev/null"等...
2019-04-19 15:20:44 369
转载 Linux中的Page cache和Buffer cache详解
网上查了查,这里做一下记录。1、内存情况 在讲解Linux内存管理时已经提到,当你在Linux下频繁存取文件后,即使系统上没有运行许多程序,也会占用大量的物理内存。这是因为当你读写文件的时候,Linux内核为了提高读写的性能和速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory 也不会自动释放,...
2019-04-19 14:55:49 12755 2
转载 压缩格式gzip/snappy/lzo/bzip2 比较与总结
Hadoop对于压缩格式的是透明识别,hadoop能够自动为我们将压缩的文件解压。 目前在Hadoop中常用的几种压缩格式:lzo,gzip,snappy,bzip2,我们简单做一下对比,方便我们在实际场景中选择不同的压缩格式。支持特性对比:压缩格式 codec类 算法 扩展名 多文件 splitable native 工具 hadoo...
2019-04-18 13:06:14 13015
原创 Linux Web压力测试工具[ApacheBench(ab) / webbench]
最近了解道路两个压力测试工具,下面介绍一下压力测试工具1 ApacheBench(ab)ab 只能测试使用http协议的网站abs 可以测试使用http或者https协议的网站 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx、ligh...
2019-04-11 17:26:21 631
原创 Linux虚拟内存介绍,以及malloc_stats和malloc_info 监控查看内存情况
查找内存泄漏问题,可以使用valgrind、malloc_stats和malloc_info 监控查看内存情况。1、 Linux内存介绍1.1 Linux 的虚拟内存管理有几个关键概念: 1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址; 2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,...
2019-04-09 10:33:08 10364 3
原创 GoAccess日志分析工具,适用于Nginx/Apache/IIS 等
最近了解到一款Nginx日志分析工具GoAccess ,这里记录一下。1 介绍 GoAccess 是一款开源(MIT许可证)的且具有交互视图界面的实时 Web 日志分析工具,通过你的 Web 浏览器或者 *nix 系统下的终端程序即可访问。 能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。 GoAccess 解析指定的 Web 日...
2019-04-08 16:47:51 3245
转载 systemtap内核探测工具
systemtap是内核开发者必须要掌握的一个工具,本文我将简单介绍一下此工具,后续将会有系列文章介绍systemtap的用法。什么是systemtap 假如现在有这么一个需求:需要获取正在运行的 Linux 系统的信息,如我想知道系统什么时候发生系统调用,发生的是什么系统调用等这些信息,有什么解决方案呢?最原始的方法是,找到内核系统调用的代码,加上我们需要...
2019-04-08 16:22:05 389
原创 Nginx: Connection reset by peer 错误定位
最近Nginx反向代理遇到了“104: Connection reset by peer”错误,google了一下,这里记录一下。1 错误原因:检查链接是否已经close。 upstream发送了RST,将连接重置。 errno = 104错误表明你在对一个对端socket已经关闭的的连接调用write或send方法,在这种情况下,调用write或se...
2019-04-08 15:27:00 99986 2
转载 NSCD--DNS缓存服务
nscd(Name Service Cache Daemon)是一种能够缓存 passwd、group、hosts 的本地缓存服务,分别对应三个源/etc/passwd、/etc/hosts、/etc/resolv.conf。其最为明显的作用就是加快 DNS 解析速度,在接口调用频繁的内网环境建议开启。 这里利用 nscd 的 hosts 缓存服务来实现 linux 下...
2019-04-08 15:00:34 21373
原创 Linux 性能检测工具
最近查看性能问题,发现一些好的文章和资料,这里记录一下。Linux *topapachetop atop biotop cachetop ctop dnstop filetop gtop hatop htop iftop iotop itop jnettop kerneltop latencytop logtop...
2019-04-08 14:52:20 754
转载 Kibana分析及可视化日志文件
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。 ...
2019-04-08 14:18:59 6978 2
转载 Nginx错误日志说明
错误日志类型 类型1:upstream timed out 类型2: connect() failed 类型3: no live upstreams 类型4: upstream prematurely closed connection 类型5:104: Connection reset by peer 类型6:client inten...
2019-04-08 09:23:15 4423 2
转载 c++数组的引用
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名; 引用最大的好处就是提高函数效率以及节省空间;关键问题一、传递引用与传指针、传值的区别?值传递 (pass by value),指针传递(pass by pointer),当发生函数调用时,需要给形参分配存储单元、当传递是对...
2019-04-04 17:41:31 4597 3
转载 Upsync介绍,以及基于 consul + upsync 的动态upstream管理
http://www.yunweipai.com/archives/16211.html Upsync是新浪微博开源的基于Nginx实现动态配置的三方模块。Nginx-Upsync-Module的功能是拉取Consul的后端server的列表,并动态更新Nginx的路由信息。此模块不依赖于任何第三方模块。Consul作为Nginx的DB,利用Consul的KV服务,每个Nginx ...
2019-04-04 16:51:38 1774
原创 nginx 499/500/502/504 错误分析
问题描述:Nginx服务器大量499报错220.181.165.136 - - [18/May/2015:10:31:02 +0800] "POST /v1/jobsHTTP/1.1" 499 0 "" "bdHttpRequest/1.0.0" 115.239.212.7 - - [18/May/2015:10:31:03 +0800] "GET /v1/job/64330...
2019-04-03 09:36:25 27135 1
转载 使用redis来调用iptables,封禁恶意IP
话不多说,通常大多数站点都会有被薅羊毛的情况,防护无非也就是业务层做处理,短时内不再响应恶意请求啦.虽然不响应了,可还是会消耗资源的,比如我要从数据库(当然也可能是内存数据库)去查询下,你是不是恶意的IP. 那么能否网络层或应用层去处理呢?在前几篇文章有写过应用层方案,今天就写下网络层方法. 说起iptables 除非是专业人员,像普通开发者是不会使用的,一堆表一堆链的一...
2019-04-02 16:56:01 367
linux 定时发送邮件 应用sendmail技术
2010-04-25
中文分词算法介绍、分类详解
2010-04-25
Cluence搜索引擎源码
2009-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人