随笔分类 - Linux
Linux使用心得
摘要:线上日志用到的是日志库,在全局有一个锁,导致在高并发的时候,容易因为锁竞争问题导致时延。在某些情况下,会因为同一个用户,同时访问某个变量,导致读写冲突使线上服务整体core掉(考虑到请求的间隔,为了应对偶发1%%的情形,如果加锁会对整体性能有一定的影响,所以当时权衡就没有加锁)。 于是就想把这个日志
阅读全文
摘要:最近读一个文件的某一行后,进行域切分的时候,最一个字段为空。 明明有字符的,于是缩小范围进行debug。 因为底层是getline写的,所以跟踪了一下,发现getline的读取到\n结束作为一行的。 如下read到的641, 但strlen 返回的为21,所以感觉是读取到的行中包含\0字符。 通过h
阅读全文
摘要:最近做项目的时候,通过 Gflags Reload 时候 发现对于某些value中包含=%中文等字符的支持不够好,value被截断了。 经过分析后,发现程序对url切分是用=&为标准的,如果value中带有这样的特殊字符,必然导致截断。 解决的方法也很简单,框架默认对value进行进行了urldec
阅读全文
摘要:1. 下载最新版的boost wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz 2. 解压 3. 执行如下脚本 第一步是为了启用4.9的编译器。 make的参数解释如下 下面对上面的bjam的
阅读全文
摘要:1 简介 SonarQube 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显
阅读全文
摘要:尝试了在版本的CentOS6.6 和CentOS7.2 下安装,在6.6下比较复杂些。特地做下记录 在CentOS7.2 下安装,需要在官网下载 mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar,用tar解压出来, 安装其中四个包,脚本如下 系统做初始化 在5.7的版
阅读全文
摘要:maven的仓库好慢的说,还是配置一个国内的源吧。推荐aliyun 在maven/conf/settings.xml 文件里配置mirrors的子节点,添加如下mirror
阅读全文
摘要:日志的格式是GBK编码的,而hadoop上的编码是用UTF-8写死的,导致最终输出乱码。 研究了下Java的编码问题。 网上其实对spark输入文件是GBK编码有现成的解决方案,具体代码如下 这种想法的来源是基于 但这种方法还有一个问题, 大家都知道gbk是2~3个字节编码的。如果日志中按照直接截断
阅读全文
摘要:oprofile利用cpu硬件层面提供的性能计数器(performance counter),通过计数采样,帮助我们从进程、函数、代码层面找出占用cpu的"罪魁祸首"。常用命令使用oprofile进行cpu使用情况检测,需要经过初始化、启动检测、导出检测数据、查看检测结果等步骤,以下为常用的opro...
阅读全文
摘要:服务器在使用pthread_cond_wait的时候遇到一个问题。具体描述如下一个主进程,给n个从线程发送计算请求,主进程会等待n个线程返回,在执行下一步从线程计算完毕后,最后一个线程会通知主线程。如下是示意性代码main_process(){ for(int i = 0; i sig...
阅读全文
摘要:需求1. 将内存、线程数等信息注册到zk上进行监控2. 统计信息,为下一步做负载均衡做准备。实现本文只解决问题1。从网上查询了下,这些信息可以从proc文件系统中获取,如果不知道proc的,可以Google下。网上有读取proc信息的lib——libproc,即 procps , 据说htop等实现...
阅读全文
摘要:http://aaronw.me/static/779.html封装了一下,有需要的拿走function url_decode(){ local url=$1 echo $url | awk 'BEGIN { for(i=0;i1); printf"%s",substr(i,1,R...
阅读全文
摘要:最近写了一大段代码,抽象得厉害,容易绕进去,因为写单测的代价很大(借口),所以很多问题到联调的是否才发现。而且花费了很大的经历才查出来,主要问题有如下几个问题1. 变量未初始化具体来说,就是指针之类的,这个是之前遇到的比较多,当前已经很少了,拿出来说是因为这次用上了一个栈上单例(常见的单例,一般是n...
阅读全文
摘要:需求:我们的Server服务接收Http请求,经过一系列的异步请求其它Server(对,我们的Server是一个FrontServer)后,生成最终的结果,返回给请求者。在这个过程中,需要我们的Server等待一定时间,如果结果无法得出,也需要给前端返回错误码。这是一个非常常见的需求,我们的方案很朴...
阅读全文
摘要:公司每个project代码中,都有一个Config类,作为模块启动的配置。其实现如下struct Config { int num; char * file_name; int load_from_file(const char* filename);}int Config::load_from_f...
阅读全文
摘要:vim在centos中的版本为7.0,导致很多插件都无法使用,所以想到升级一下。wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2tar jvzf vim-7.4.tar.bz2cd vim74#安装依赖yum install ncurses-de...
阅读全文
摘要:通过grep ip地址,发现svn中url地址信息是记录在.svn文件夹entries文件中的,第一种方案应该是遍历目录下的entries文件,将ip替换为新的ip即可。可以发现这个用sed命令即可搞定。方案二是利用svn的relocate命令。如下svn switch --relocate "svn://192.168.15.9" "svn://192.168.29.19"其中 第一个参数所旧IP,第二个参数为新的IP地址。
阅读全文
摘要:chrome 在home下生成 libpeerconnection.log,比较烦恼。google了下,可以有方法绕过去,如下。/opt/google/chrome/google-chrome找到下面这行代码exec-a "$ 0" "$ HERE / chrome" "$ @"在这行代码前添加cd /tmp保存这样libpperconnection.log就会被生成在/tmp下了。
阅读全文
摘要:最近机器迁移,需要备份文件,但各个机器间不能穿梭,即无法通过scp来传输文件,在运维的建议下,选用了rsync作为传输的工具。默认情况Ubuntu安装了rsync服务,但在/etc下没有配置文件,一般情况可以copy示例文件到/etc下。配置无帐号登录的示例如下,需要主要高亮的部分。[mail] comment = public archive path = /tmp/mail/ use chroot = no# max connections=10 lock file = /var/lock/rsyncd# the default for read only i...
阅读全文
摘要:MiniBufExplorer 安装好久了,但一直没怎么使用过。今天查了下资料,作为一个备份。当你只编辑一个buffer的时候MiniBufExplorer派不上用场, 当你打开第二个buffer的时候, MiniBufExplorer窗口就自动弹出来了, 见下图:当你把光标置于vim狭长的窗口时, 有下面几个快捷键可以用: 向前循环切换到每个buffer名上 向后循环切换到每个buffer名上 在打开光标所在的bufferd 删除光标所在的buffer在命令模式下::bn 打开当前buffer的下一个buffer:bp 打开当前buffer的前一个buffer:b"num"
阅读全文

浙公网安备 33010602011771号