自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cynric 的博客

修身齐家治国平天下 格物致知诚意正己心

原创 每天进步一点点——Linux中的文件描述符与打开文件之间的关系

快速理解文件描述符与进程打开文件之间的关系

2014-08-31 22:53:26 101461 17

原创 每天进步一点点——论fork()函数与Linux中的多线程编程

fork()函数的调用会导致在子进程中除调用线程外的其它线程全都终止执行并消失,因此在多线程的情况下会导致死锁和内存泄露的情况。在进行多线程编程的时候尽量避免fork()的调用,同时在程序在进入main函数之前应避免创建线程,因为这会影响到全局对象的安全初始化。

2014-05-28 10:49:52 36155 2

原创 每天进步一点点——Linux中的线程局部存储(二)

Linux C/C++多线程编程中请善用__thread

2014-05-24 22:51:42 8452 0

原创 每天进步一点点——Linux中的线程局部存储(一)

在Linux系统中使用C/C++进行多线程编程时有些数据无需使用锁即可做到快速高效,本文从线程局部存储出发讨论如何高效的实现无锁编程。

2014-05-21 14:25:21 28116 3

原创 每天进步一点点——Linux系统中的时间处理

在程序中时间处理往往是一个麻烦的事,Linux系统提供了很多关于时间处理的函数,我们可以用这些函数来完成我们所需要的功能。本文详细讲解在C/C++开发过程中常用的时间处理函数。

2014-05-14 23:17:46 8445 0

原创 每天进步一点点——分布式文件系统下的本地缓存

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memcached、Redis、淘宝的Tair等,二、本地缓存,例如:Facebook的flushcache等,其中本地缓存又可以分为两种:本地磁盘缓存(现在一般都...

2014-04-17 23:13:26 19532 10

原创 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)

五分钟让你深入了解分布式系统中常用的一致性哈希算法

2014-04-11 00:21:03 449133 119

原创 每天进步一点点——分布式集群管理

现在很多互联网科技公司,还有一些传统的it公司都在根据自身的业务发展来设计符合实情的分布式系统。虽然,已有很多优秀的开源分布式系统,但是由于需求不同,业务不同,这些只能在设计符合自身需求的分布式系统时用于参考。个人认为,设计一个分布式存储系统并不是太难,主要困难在于如何设计并实现一个可以自动化处理...

2014-03-14 23:53:05 13873 3

原创 每天进步一点点——Linux下的磁盘缓存

前段时间在开发一个使用SSD做缓存的系统,在高速写入数据时会出现大量的磁盘缓存。太多的磁盘缓存如果没有及时的写入磁盘中,在机器出现问题时是非常危险的,这样会导致很多的数据丢失,但是如果实时的将数据刷入磁盘中,这样写入效率有太低了。为了弄明白Linux系统的这种磁盘写入特性,最近深入的学习了一下。 ...

2014-03-12 23:29:37 20510 3

原创 每天进步一点点——leveldb项目实践

leveldb是Google公司开源的高性能Key-Value数据库,在很多开源的项目中就有使用,例如:Chromium,淘宝的Tair,SSDB等。leveldb对于小数据在写入百万个之后读写性能依旧强劲,高效,因此非常适合用于存储小文件,以及一些需要持久化的索引和需要持久化的异步任务。    ...

2014-03-08 00:48:35 21745 2

原创 每天进步一点点——Swift项目实践

于2012年3月份开始接触OpenStack项目,刚开始之处主要是与同事合作共同部署公司内部的云平台,使得公司内部服务器能更好的得到资源利用。在部署的过程中遇到各种从未遇到过的问题,即使是按照官方文档一步一步的操作,由于某些硬件的不同,也会产生一些莫名其妙的问题,不是数据库因为配置不妥导致无法连接...

2014-02-25 15:45:03 13170 1

原创 每天进步一点点——swift对象副本修复之简单理解

一直以来都在使用openstack的swift来做分布式存储,至于为什么使用其来做存储在这里就不说明(网上搜搜其的优点就知道了), 随着项目的步步深入,越来越多的问题也随之而来。在项目进行的过程中对swift的理解也越来越多,swift的核心代码行并不是太多,而且也十分容易理解。下面通过实验来理解...

2013-10-18 11:26:26 12397 10

翻译 C++ Pirate: Lambda vs Bind

Lambda 与 Bind的性能比较 先让我们看看下面函数: template void do_test_loop(Function func, const uint64_t upper_limit = 1000000000ULL) { for (uint64_t i = 0; i ...

2013-07-19 13:49:32 3293 1

翻译 atomic, spinlock and mutex性能比较

atomic, spinlock and mutex性能比较 转载请说明出处:http://blog.csdn.net/cywosp/article/details/8987593 我非常好奇于不同同步原理的性能,于是对atomic, spinlock和mutex做了如下实验来比较: 1. ...

2013-05-29 08:57:07 11800 1

原创 Linux中用C++通过管道来获取命令行输出的内容

Linux中用C++通过管道来获取命令行输出的内容 转载请说明出处:http://blog.csdn.net/cywosp/article/details/8980898     使用C++时,有些时候我们可以通过管道的方法来获取所执行的命令所输出的内容。具体做法如下:     首先你需要确...

2013-05-27 17:27:07 8489 2

原创 整数类型转换成string的几种方法

整数类型转换成string的几种方法     转载请说明出处:http://blog.csdn.net/cywosp/article/details/8980633     最近遇到了要将整数类型转化成string的问题,网上搜罗了一下,总结了几种方法。如下: 方法一: templ...

2013-05-27 16:50:51 13937 0

原创 C++11 多线程中的call once

转贴请说明出处:http://blog.csdn.net/cywosp/article/details/8968655     在多线程的环境下,有些时候我们不需要某给函数被调用多次或者某些变量被初始化多次,它们仅仅只需要被调用一次或者初始化一次即可。很多时候我们为了初始化某些数据会写出如下代码...

2013-05-24 10:31:31 9847 0

原创 C++ STL相关容器详解

vector: 一种随机访问的数组类型,他提供了对数组元素的快速、随机访问,以及在序列尾部快速、随机的插入和删除 操作。它在需要时可以改变其大小,也就是说大小可变的向量,比较灵活。可取代C++语言本身提供的传统数组。提 供随机存储能力。操作尾端元素的速度最快。由于所有元素占用连续空间,所以一...

2012-03-14 17:49:38 3198 0

原创 C++ string 字符串的下标和子串函数

可以用assign()函数来设置字符串的元素,也可以用下标运算符[]和成员函数at()来检索字符串中的某个字符 或修改字符串中的某个字符。     assign()函数的主要语法如下所示:     //将str的内容赋值给string对象     string& assign ( ...

2012-02-22 00:08:02 16665 0

原创 C++ string类中的字符串查找

C++ string类中的字符串查找     类string提供了大量查找功能和搜索功能,其中比较常用的查找和搜索函数是find()函数、 find_first_not_of()函数、find_first_of()函数、find_last_not_of()函数、find_last_of...

2012-02-21 17:20:10 104835 0

原创 两个有序链表(相邻元素可能相同)找出他们交集,并把结果放到另一链表中

两个有序链表(相邻元素可能相同),找出他们的交集,并把结果放到另一链表中,代码如下: typedef struct Node* pNode; struct Node { int val; struct Node *next; }; pNode merge(pNode head...

2012-02-18 00:25:27 3667 0

转载 Linux服务器性能评估与优化

一、影响Linux服务器性能的因素  1. 操作系统级   Ø       CPU Ø       内存 Ø       磁盘I/O带宽 Ø       网络I/O带宽   2.        程序应用级   二、系统性

2011-08-28 00:31:27 1567 0

转载 企业文件服务器搭建案例

6.9 章节案例 在本章案例讲解中通过4个模拟项目对Samba的功能进行演示,其中第一个案例模拟一个企业中服务器全部基于RHEL5.x,客户端在访问Samba服务器时,用户认证及所有用户行为控制全部通过RHEL5.x完成。第二个案例模拟一个异构环境,在企业中已使用微软的Wi

2011-08-13 01:08:18 8039 1

原创 点滴记录——使用Ganglia监控Openstack Swift状态

本文简单讲述如何使用Ganglia监控Openstack Swift的状态

2014-12-31 23:27:20 4817 0

原创 点滴记录——CentOS 6.4中使用virtualenv安装swift

CentOS 6.4中使用virtualenv安装openstack swift,避免服务器中的其他python库与swift的依赖库相冲突

2014-12-25 18:24:53 4658 0

原创 点滴记录——Linux Mysql数据库误删root用户

在Linux中有时安装Mysql会出现没有root用户的状况,或者说root账户被从mysql.user表中误删除,这样就导致很多权限无法控制。解决办法是重新创建root用户,并授予所有权限,具体方法如下: 1. 修改/etc/my.conf文件,添加skip-grant-tables [my...

2014-12-25 14:19:00 6636 0

原创 ubuntu 14.10 64bit系统安装mac主题

瞎折腾——在ubuntu 14.10 64位系统上安装mac主题

2014-11-30 01:31:31 19356 5

原创 点滴记录——VirtrualBox使用已存在的镜像创建虚拟机

再将一个已经存在的虚拟机镜像拷贝为另一个新的虚拟机镜像后,要将该新的镜像添加到新的虚拟机中时会出现错误提示,从而导致不能创建虚拟机。例如有'D:\App\VirtualBox VMs\CentOS_6.5_One\CentOS_6.5_One.vmdk' 镜像拷贝成'...

2014-11-29 23:17:45 10271 0

原创 点滴记录——Ubuntu 自动挂载windows分区

1. 使用命令ls -al /dev/disk/by-uuid查看所有磁盘分区的UUID lrwxrwxrwx 1 root root  10 11月 19 09:55 00080497000DE3CF -> ../../sda5 lrwxrwxrwx 1 root root  10 1...

2014-11-20 23:06:56 2712 0

原创 Swift开启StatsD后出现上传数据出现返回503的Bug

Openstack的Swift开启StatsD功能后出现上传数据返回503的Bug分析及解决办法

2014-11-04 11:12:39 3658 0

原创 点滴记录——学习Redis笔记

Redis学习笔记

2014-09-30 23:08:08 3782 0

原创 每天进步一点点——Ganglia的Python扩展模块开发

使用python开发Ganglia自定义的集群监控信息,快速了解集群健康状态,从开发metric开始

2014-09-30 23:01:49 8226 2

原创 点滴记录——Centos 6.5 yum安装Ganglia

在Centos 6.5中快速安装集群状态监控软件Ganglia

2014-09-30 22:53:43 9830 2

原创 每天进步一点点——重新认识Linux中的进程号

理解Linux内核是如何为进程分配进程号,以及在分布式集群中如何真确的区分唯一的进程号

2014-09-01 00:42:41 12060 0

原创 点滴记录——Ubuntu 14.04中Solr与Tomcat整合安装

Solr与Tomcat的整合安装及一些问题解决方法

2014-08-31 23:25:04 9499 8

原创 每天进步一点点——Linux磁盘管理之LVM与RAID

进一步理解Linux中的磁盘管理

2014-08-31 23:17:01 8729 0

原创 每天进步一点点——求最大子序列和问题

假设有如下整数数组 -10 5 0 8 -1 10 -10 100 -1 求其最大的子序列和。从该数组我们可以知道其子序列和最大的序列为5 0 8 -1 10 -10 100且等于112。(为方便起见,如果数组全是负数则最大和为0)

2014-08-11 15:29:57 3181 0

原创 使用C语言判断栈的方向

这一问题主要是如何判读出先后入栈的变量的地址大小,比如有a, b两个变量一先一后被定义,如果a的地址大于b的地址,则说明是以低地址方向增长的,反之,往高地址方向增长。

2014-07-29 14:58:41 3822 1

原创 每天进步一点点——负载均衡之数据链路层

快速理解分布式集群中使用最为广泛的负载均衡技术——数据链路层负载均衡,这种负载均衡模式在分布式面试考题中常常被问到。

2014-07-23 07:15:40 10300 3

原创 每天进步一点点——负载均衡之IP

2分钟快速理解如何在网络层实现集群的负载均衡以及其工作原理

2014-07-22 10:20:43 16322 3

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