随笔分类 -  Linux&Unix

摘要:玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势;在集群规模小的时候,Ceph 怎么玩都没问题;但集群大了(到PB级别),这些准则可是保证集群健康运行的不二法门; Ceph 最初的目标是做一个分布式文件系统,直到现在这个目标也不能算完美实现;目前官网上对它 阅读全文
posted @ 2017-02-04 21:22 大CC 阅读(34785) 评论(0) 推荐(3) 编辑
摘要:网络编程中的关键问题总结总结下网络编程中关键的细节问题,包含连接建立、连接断开、消息到达、发送消息等等;连接建立包括服务端接受 (accept) 新连接和客户端成功发起 (connect) 连接。 accept接受连接的问题在本文最后会聊到,这里谈谈connect的关键点; 使用非阻塞连接建... 阅读全文
posted @ 2015-12-31 16:22 大CC 阅读(6495) 评论(0) 推荐(4) 编辑
摘要:Reactor事件驱动的两种设计实现:面向对象 VS 函数式编程 这里的函数式编程的设计以muduo为例进行对比说明; Reactor实现架构对比 面向对象的设计类图如下: 函数式编程以muduo为例,设计类图如下: 面向对象的Reactor方案设计 我们先看看面向对象的设计方案,想想为什么这么做; 阅读全文
posted @ 2015-12-31 07:37 大CC 阅读(5096) 评论(1) 推荐(10) 编辑
摘要:多线程和多进程模型的选用 这里的线程指通过linux的pthread_create而产生的原生线程,线程资源很宝贵,能被操作系统的任务调度器看见的(不是python gevent、go gorouine里的概念); 我们讨论以下两种模型; 多进程单线程模型(以下简称为多进程); 单进程多线程模型(以下简称为多线程); 多进程模型 优点 编程相对容易;通常不需要考虑... 阅读全文
posted @ 2015-10-10 10:40 大CC 阅读(5101) 评论(0) 推荐(1) 编辑
摘要:异步和非阻塞今天看了篇知乎讨论,将异步和非阻塞讲的透彻;在这里整理出来;同步异步同步和异步关注的是 消息通信机制 同步,就是在发出一个 调用 时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。 换句话说,就是由调用者主动等待这个调用的结果。异步则相反,调用在发出之后,... 阅读全文
posted @ 2015-10-09 09:17 大CC 阅读(1124) 评论(0) 推荐(0) 编辑
摘要:使用ansible批量管理远程服务器背景本地需要管理远程的一批服务器,主要执行以下任务:1) 将本地的文件复制到远端所有服务器; 2) 需要在远程服务器中执行一个个命令;远端服务器路径并非完全一致,一般访问通过环境变量中定义的变量路径访问; 比如在.bashrc中定义$app_path=/op... 阅读全文
posted @ 2015-05-27 08:09 大CC 阅读(28305) 评论(0) 推荐(3) 编辑
摘要:IO设计模式:Reactor和Proactor对比平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学习下其模型结构,重点对比下两者的异同点;反应器ReactorReactor模式结构React... 阅读全文
posted @ 2015-04-27 07:45 大CC 阅读(31507) 评论(8) 推荐(6) 编辑
摘要:客户-服务器程序设计方法《unix网络编程》第一卷中将传统的客户服务器程序设计方法讲得透彻,这篇文章将其中编码的细节略去,通过伪代码的形式展现,主要介绍各种方法的思想;(后面再续上一篇现代服务器的主要设计方法,基本是围绕这Reactor做文章)示例是一个经典的TCP回射程序: 客户端发起连接请求,连... 阅读全文
posted @ 2015-04-08 07:52 大CC 阅读(2603) 评论(6) 推荐(2) 编辑
摘要:发布《Linux工具快速教程》阶段性的完成了这本书开源书籍,发布出来给有需要的朋友,同时也欢迎更多的朋友加入进来,完善这本书; 本书Github地址:https://github.com/me115/linuxtools_rst在线阅读缘起Linux下有很多命令行工具供我们使用,每个工具总是提供了大... 阅读全文
posted @ 2015-01-14 07:20 大CC 阅读(6173) 评论(21) 推荐(39) 编辑
摘要:Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使... 阅读全文
posted @ 2014-07-14 09:30 大CC 阅读(17165) 评论(0) 推荐(2) 编辑
摘要:GDB常用命令 运行 run(简写r): 运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。 continue(简写c):继续执行,到下一个断点处(或运行结束) next(简写n): 单步跟踪程序,当遇到函数调用时,直接调用,不进入此函数体; step(简写s):单步调试如果有函数调用,则进入函数;与命令n不同,n是不进入调用的函数的 un... 阅读全文
posted @ 2014-07-11 16:04 大CC 阅读(10381) 评论(0) 推荐(2) 编辑
摘要:Linux命令工具基础04 磁盘管理 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩; 查看磁盘空间 查看磁盘空间利用大小 df -h -h: human缩写,以人类易读方式显示结果(既带单位:比如M/G,如果不加这个参数,显示的数字以B为单位) $df -h/opt/app/todeav/config#df -hFilesyste... 阅读全文
posted @ 2014-05-27 16:19 大CC 阅读(616) 评论(0) 推荐(0) 编辑
摘要:文件及目录管理文件管理不外乎文件或目录的创建、删除、查询、移动,有mkdir/rm/mv文件查询是重点,用find来进行查询;find的参数丰富,也非常强大;查看文件内容是个大的话题,文本的处理有太多的工具供我们使用,在本章中只是点到即止,后面会有专门的一章来介绍文本的处理工具;有时候,需要给文件创... 阅读全文
posted @ 2014-05-26 13:30 大CC 阅读(1606) 评论(0) 推荐(2) 编辑
摘要:Linux基础01 学会使用命令帮助概述在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档;linux系统内置的帮助文档很详细,通常能解决我们的问题,我们需要掌握如何正确的去使用它们;在只记得部分命令关键字的场合,我们可通过man -k来搜索;需要知道某... 阅读全文
posted @ 2014-05-18 12:43 大CC 阅读(1301) 评论(0) 推荐(2) 编辑
摘要:寻找Linux单机负载瓶颈服务器性能上不去,是哪里出了问题?IO还是CPU?只有找到瓶颈点,才能对症下药; 如何寻找Linux单机负载瓶颈,遵循的原则是不要推测,我们要通过测量的数据说话;负载分两类: 1.CPU负载; 2.IO负载;排查流程1.查看平均负载(top/uptime命令) 2.确认CPU、IO有无瓶颈;(使用 sar vmstat) 3.CPU负载过高时寻找流程: 4.IO负载过高时寻找流程;查看平均负载先通过top命令查看服务器是否出现负载过重的状况,之后,再具体使用工具来分析出是CPU负载过高还是IO负载过高; 比如,使用sar工具查... 阅读全文
posted @ 2014-04-04 07:27 大CC 阅读(3171) 评论(1) 推荐(1) 编辑
摘要:sar 找出系统瓶颈的利器sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的 特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析 工具之一,可以从14个大方面对系统的活动进行报告,包括文件的读写情况、系统调用的使用情况、串口、CPU效率、内存使用状况、进程活动及IPC有关的 活动等,使用也是较为复杂。 sar是查看操作系统报告指标的各种工具中,最为普遍和方便的;它有两种用法;1. 阅读全文
posted @ 2013-12-30 12:14 大CC 阅读(11031) 评论(2) 推荐(2) 编辑
摘要:Redis 在新浪微博中的应用Redis简介1. 支持5种数据结构支持strings, hashes, lists, sets, sorted setsstring是很好的存储方式,用来做计数存储。sets用于建立索引库非常棒;2. K-V 存储 vs K-V 缓存新浪微博目前使用的98%都是持久化的应用,2%的是缓存,用到了600+服务器Redis中持久化的应用和非持久化的方式不会差别很大:非持久化的为8-9万tps,那么持久化在7-8万tps左右;当使用持久化时,需要考虑到持久化和写性能的配比,也就是要考虑redis使用的内存大小和硬盘写的速率的比例计算;3. 社区活跃Redis目前有3万 阅读全文
posted @ 2013-12-20 07:53 大CC 阅读(24212) 评论(7) 推荐(18) 编辑
摘要:MQ通道配置通道是用来连接两个队列管理器的; 在单个队列管理器内读写消息不需要建立通道;但在一个队列管理器中写入消息,而从另一个队列管理器中的队列取出消息,这就需要建立通道; 通道,对跨机和本机的队列管理器不做区分,对于两个队列管理器,不论是否分布在同一个机器上,配置方式都是一样的,所不同的就是ip的地址配置;通道类型通信双方的通道类型配对并不是可以随意排列组合的,共有六种。(详见《精通MQ》1.2.4 p24) Sender/Receiver 是所有连接中最简单、最常用的一种。Sender 是通道主动方,也是 消息发送方。 Requester/Server 也是常用的一种连接方式。Reque 阅读全文
posted @ 2013-12-12 18:24 大CC 阅读(14519) 评论(0) 推荐(1) 编辑
摘要:WebSphere MQ 入门指南这是一篇入门指南。我们从最基本的概念说起;基础概念对于MQ,我们需要知道4个名词:队列管理器、队列、消息、通道;对于编程设计人员,通常更关心消息和队列,对于维护管理人员,通常 会更关心队列管理器和通道。如果我们把队列管理器比作是数据库,那么队列就是其中的一张表,消息就是表中的一条记录。队列:我们可以简单地把队列看成一个容器,用于存放消息。队列管理器:队列管理器构建了独立的 MQ 的运行环境,它是消息队列的管理者,用来维护和管理消息队列。消息:MQ中的最小对象;默认情况下,消息缺省可以达到 4MB。消息可以分成持久消息和非持久消息。所谓“持久”的 意思,就是在M 阅读全文
posted @ 2013-12-03 19:49 大CC 阅读(18024) 评论(1) 推荐(4) 编辑
摘要:Linux Shell脚本攻略 读书笔记这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝;最有价值的当属文本处理,对这块我单独整理出来一篇blog,详见《Linux Shell文本处理工具集锦》下面是文本处理之外的简单介绍,如果你觉得自己的shell需要充充电,强烈建议读读这本《linux Shell脚本攻略》。嗨,Echo一下从 echo开始:带引号的 echo和不带引号的 echo区别:使用带引号时,bash 不会对单引号中的变量进行求值,而是原样输出;而使用双引号,或者不使用引号,则会对变量进行解析:echo ' 阅读全文
posted @ 2013-11-19 12:23 大CC 阅读(26005) 评论(10) 推荐(13) 编辑

木书架 大CC的博客