自定义博客皮肤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 的博客

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

  • 博客(266)
  • 资源 (7)
  • 收藏
  • 关注

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

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

2014-08-31 22:53:26 122936 23

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

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

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

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

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

2014-05-24 22:51:42 9613

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

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

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

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

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

2014-05-14 23:17:46 9356

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

在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memcached、Redis、淘宝的Tair等,二、本地缓存,例如:Facebook的flushcache等,其中本地缓存又可以分为两种:本地磁盘缓存(现在一般都采用读写性能比较优异的SSD来做存储)和本地内存缓存。

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

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

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

2014-04-11 00:21:03 486660 131

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

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

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

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

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

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

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

leveldb是Google公司开源的高性能Key-Value数据库,在很多开源的项目中就有使用,例如:Chromium,淘宝的Tair,SSDB等。leveldb对于小数据在写入百万个之后读写性能依旧强劲,高效,因此非常适合用于存储小文件,以及一些需要持久化的索引和需要持久化的异步任务。    接触leveldb已经有一段时间了,当初为了找到一款轻量,高性能的数据库用于存储分布式文件系统中的

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

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

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

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

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

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

2013-10-18 11:26:26 13098 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 < upper_limit; ++i) func(i);} 该函数

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

翻译 atomic, spinlock and mutex性能比较

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

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

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

Linux中用C++通过管道来获取命令行输出的内容转载请说明出处:http://blog.csdn.net/cywosp/article/details/8980898    使用C++时,有些时候我们可以通过管道的方法来获取所执行的命令所输出的内容。具体做法如下:    首先你需要确定你所执行的命令所输出的内容的格式(不同的操作系统相同的命令所输出来的内容格式可能会不一致)。我们来举

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

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

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

2013-05-27 16:50:51 16455

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

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

2013-05-24 10:31:31 10836

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

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

2012-03-14 17:49:38 3308

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

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

2012-02-22 00:08:02 23229

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

C++ string类中的字符串查找    类string提供了大量查找功能和搜索功能,其中比较常用的查找和搜索函数是find()函数、find_first_not_of()函数、find_first_of()函数、find_last_not_of()函数、find_last_of()函数、rfind()等。        find()函数的语法如下所示:    (1)

2012-02-21 17:20:10 118613

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

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

2012-02-18 00:25:27 4251

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

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

2011-08-28 00:31:27 1635

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

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

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

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

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

2014-12-31 23:27:20 5320

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

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

2014-12-25 18:24:53 5069

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

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

2014-12-25 14:19:00 7717

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

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

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

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

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

2014-11-29 23:17:45 12329

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

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

2014-11-20 23:06:56 2841

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

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

2014-11-04 11:12:39 4147

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

Redis学习笔记

2014-09-30 23:08:08 3975

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

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

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

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

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

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

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

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

2014-09-01 00:42:41 13297

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

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

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

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

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

2014-08-31 23:17:01 9256

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

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

2014-08-11 15:29:57 3357

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

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

2014-07-29 14:58:41 4153 2

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

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

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

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

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

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

network-manager

network-manager安装包,用于替换ubuntu 13.04中的network-manager。解决ubuntu 13.04 64bit系统无法通过802.1X的EAP认证上网问题

2013-05-17

c语言面试题重点 笔试题常考

这是一份非常不错的c语言笔试题及其解答,希望对您有帮助

2010-04-18

Linux 网络编程

第三章进程控制 3.1进程的建立与运行 3.1.1进程的概念 3.1.2进程的建立 3.1.3进程的运行 3.1.4数据和文件描述符的继承 3.2进程的控制操作. 3.2.1进程的终止 3.2.2进程的同步 3.2.3进程终止的特殊情况 3.2.4进程控制的实例 3.3进程的属性 3.3.1进程标识符 3.3.2进程的组标识符 3.3.3进程环境 3.3.4进程的当前目录 3.3.5进程的有效标识符 3.3.6进程的资源 3.3.7进程的优先级 3.4守护进程

2010-04-18

基于QT编程QQ程序

linux中基于qt的类qq程序,是一个不错的学习qt编程实例及其网络编程的程序

2010-01-23

UNIX.Shell编程24学时教程.pdf

UNIX.Shell编程24学时教程是讲述unix中的简单Shell编程,是一本不错的学习书籍

2010-01-23

DDA直线算法及三维图形变换VC源代码

DDA直线算法 中点直线算法 二维及三维图元的几何变换过程 实现直线段与圆弧等基本图元的像素生成

2009-06-03

某高手毕生精力总结的电脑技巧

某高手毕生精力总结的电脑技巧

2008-06-23

空空如也

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

TA关注的人

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