最新 | 最热门 | 最高评价

+0  追踪CPU跑满

Tag: 工作故事 | 操作系统 | hugepages | perf | sysrq-trigger
RobinDong 发于 2014年04月24日 17:54 | 点击: 1736 | 展开摘要
最近测试一个应用遇到问题:一旦压力略涨,应用的CPU就顶满。由于是多线程应用,直接就把系统的CPU耗完了。

本来想用gdb來调试的,结果gdb不给力,就在attach那里卡死,半天不动。后来想到了用perf来调试,果然找到了一处性能热点。修复热点以后,CPU顶满的问题缓解了一些,不太容易出现了,但是,多跑一会儿,还是会有。而且现在出现CPU顶满时,不仅gdb不返回,连perf record -a -g都无法用Ctrl+c来停止了,仔细top命令看了一下,原来系统的sys是1

查看全文: http://www.udpwork.com/item/12173.html

+0  小记备份遭遇

Tag: 工作故事 | du | tar
RobinDong 发于 2014年04月16日 14:18 | 点击: 1673 | 展开摘要
今天备份机器上的一个目录,用“du -sh .”看这个目录只占用了1.5G空间。但是,我一用tar打包,就半天停不下来,tar包都涨到十几G了还没有打包完。奇怪,哪多出来这么多东西。

查了半天,后来发现目录里有个101G的大文件,而du -sh 对这个大文件的返回结果却是”1.1M“,喔,原来这是个空洞文件,tar却只能老老实实的读数据,所以出来的tar包巨大无比。看来,备份目录前光"du -sh .“是不够的,至少还得类似"find . -size +100M"全部检查一

查看全文: http://www.udpwork.com/item/12132.html

+0  LSF/MM Summit 2014

Tag: 业界分享 | 操作系统 | LSF | SMR | xfs
刘, 铮 发于 2014年04月02日 16:09 | 点击: 1765 | 展开摘要
作者:刘峥

今年LSF/MM会议的内容lwn.net上已经有文章进行详细的介绍了。鉴于我本人分身乏术造成mm track基本没有听,同时会上讨论的有些问题本人理解也十分有限,所以推荐大家还是去lwn.net上看一下上面的文章。这里仅仅是总结我认为比较重要和关注的问题,希望通过这篇文章能让大家了解目前Linux Kernel在文件系统、存储和内存管理方面需要解决的问题。

这次的LSF/MM会议的议题基本可以分为三个大的部分:

Linux Kernel目前存在的问题

来自

查看全文: http://www.udpwork.com/item/12057.html

+0  Ext4 Workshop 2014

Tag: 文件系统 | ext4
刘, 铮 发于 2014年03月31日 10:09 | 点击: 1390 | 展开摘要
作者:刘峥

2014年3月26日,Napa Valley, CA.  今年LSF/MM Summit 2014会议就在这里举行,因此Ext4 Workshop相应的也就在这里了。会议内容主要是讨论后续一年Ext4文件系统的开发问题。

今年讨论的内容如下:

Data Block Checksums

Reflink

Encryption

Extent Cache Shrinker

Buffer_head Removal

SMR/Flash Device Optim

查看全文: http://www.udpwork.com/item/12036.html

+0  debuginfo的rpm包

Tag: 工作故事 | debug_package | rpm
RobinDong 发于 2014年03月24日 11:20 | 点击: 2259 | 展开摘要
之前rpmbuild -ba xxx.spec能自动打出binary包和对应的debuginfo包,但是我不想分成两个包,希望binary包里就是带调试符号的,在网上找了一堆,最简单的办法就是在spec文件里(头部)加一句

%global debug_package %{nil}

那些说在~/.rpmmacros里加东西的办法似乎都不好使。

但是,几天后,我在另一台机器上又遇到了相反的问题:rpmbuild -ba xxx.spec默认就不打debuginfo包。估计是

查看全文: http://www.udpwork.com/item/12011.html

+0  神器valgrind

Tag: 工作故事
RobinDong 发于 2014年02月13日 17:07 | 点击: 2080 | 展开摘要
其实早在2006年我就用过valgrind,但当时valgrind不能观测daemon的内存泄漏问题,所以后来渐渐用得少了。

今天又遇到一个内存泄漏问题,程序颇大,手工调试不太现实了,所以又想到了valgrind,毕竟在这7年间,valgrind又强大了不少。查了一下,它已经可以检测daemon进程了,方法在 这里 对应的官方文档在 这里 其中"monitor leak_check full reachable any"相当于设置gdb的breakpoint。

不过,我要

查看全文: http://www.udpwork.com/item/11698.html

+0  小问题汇总

Tag: 工作故事
RobinDong 发于 2014年02月13日 12:40 | 点击: 1625 | 展开摘要
最近遇到一些开发部署等方面的几个小问题,留个笔记。

第一个 编程问题

#include
#include
#include

int main(int argc, char *argv[])
{
int ret;

pthread_mutex_t mt;
ret = pthread_mutex_init(&mt, NULL);
if (ret != 0) {
printf("failed to init (ret: %d)\n", ret);
got

查看全文: http://www.udpwork.com/item/11696.html

+0  tpps: 一个可做cgroup资源隔离的高效IO调度器

Tag: 操作系统 | io scheduler | SSD | tpps
RobinDong 发于 2014年01月06日 15:16 | 点击: 2619 | 展开摘要
(本文里说的“资源隔离”主要是指cgroup根据blkio.weight的值来按比例调配io的带宽和IOPS,不包括io-throttle即blkio.throttle.xxx的一系列配置,因为linux的io-throttle机制不依赖于IO调度器)

由于现在的SSD越来越快也越来越便宜,如何高效的利用SSD就变得十分重要。高效利用SSD有两个办法,一个是加大应用程序发出的io深度(比如用aio),对于无法加大io深度的一些重要应用(比如mysql数据库),则可以用第二个

查看全文: http://www.udpwork.com/item/11484.html

+0  linux默认kernel.pid_max值

Tag: 操作系统 | pid_max | possible cpu
RobinDong 发于 2014年01月02日 15:20 | 点击: 5714 | 展开摘要
今早石祤同学发现了一个问题:同样的两台服务器,相同的OS版本、内核版本、CPU型号、CPU核数,只是厂家不同,但是机器启动后sysctl里的kernel.pid_max值,一台是128k,一台是32k。看了一下/etc/sysctl.conf,两台都没在配置文件里做更改,应该是内核自己选定的默认值。那内核到底是怎样选定这个默认值的呢?为何两个厂家的服务器默认值就不同?怎么让它们一致?

看了一下内核代码,决定kernel.pid_max的值是在pidmap_init()函数里

查看全文: http://www.udpwork.com/item/11456.html

+0  2013年读书

Tag: 生活故事 | 读书,王小波
RobinDong 发于 2013年12月31日 15:53 | 点击: 1596 | 展开摘要
一年一度的读书总结又来了。虽然16本书听起来很多,但是很多都是翻翻而已,泛读,比如《大话存储2》(对不住了,冬瓜兄)。

上学的时候偶尔看过王小波的一些文章,当时不太有感觉。现在走上社会多年以后,再回头去看,突然有了很多感触。做一只《特立独行的猪》,的确令人羡慕,但是,真的非常非常不容易。

查看全文: http://www.udpwork.com/item/11444.html

+0  flashcache支持资源隔离的改造

Tag: 存储系统 | cgroup | flashcache | quota
RobinDong 发于 2013年12月13日 17:17 | 点击: 2001 | 展开摘要
去年年底的时候对flashcache做了一番研究,并进行了改造,所谓改造,其实就是希望它能支持cgroup,也就是说,当有在不同cgroup里运行的进程对flashcache进行读写时,flashcache能根据cgroup的不同权重分配这些进程以不同的iops(IO per second)。详细的资料在这里:《flashcache原理及改造》

事情还没有结束,现在能给flashcache设备设io-scheduler了,设成cfq就可以按cgroup weight来分配i

查看全文: http://www.udpwork.com/item/11317.html

+0  nginx关闭上传文件的缓存

Tag: 工作故事 | nginx | tengine
RobinDong 发于 2013年12月12日 15:02 | 点击: 3538 | 展开摘要
nginx-1.5.7做前端,一个c语言写的deamon用fastcgi做后端。同时上传多个大文件的时候,报了"Internal Error“,查看发现是/usr/目录满了。仔细一查,是因为我把nginx装到了/usr/local/nginx下面,结果,nginx默认会把上传文件缓存到 /usr/local/nginx/client_body_temp/ ,结果爆了。

于是,漫长的google之旅开始了。查了很多文章,有人说加一个"fastcgi_buffering off

查看全文: http://www.udpwork.com/item/11316.html
|<<<1234567>>>| 一共16页, 189条记录