5. 内存问题排查手段及相关文件介绍【重点】
对于内存问题排查,或者OOM问题排查,一般会涉及到如下文件,下面将如下文件的分析和设置介绍一下,这也是本文档的重点,后面排查内存信息还是要根据这些文件信息来排查。其实未必是有内存泄露,也可能是一些策略有问题,比如线程数目的增加,buffer的申请、释放时间交集等。
5.1 /proc/sys/vm/min_free_kbytes
min_free...
分类:
其他好文 时间:
2014-09-28 02:30:50
阅读次数:
198
汉澳sinox高速下载工具axel
一直用wget、浏览器单线程下载等啊等,没完没了,必须使出刹手锏。
汉澳sinox高速下载工具axel,不是exel,读作 阿克啸
安装
cd /usr/ports/ftp/axel;make install clean
然后运行axel -n 10 网址,其中-n 后面指定多线程数量。
然后就以10倍速度download,不需要安装旋风...
分类:
其他好文 时间:
2014-09-26 22:34:08
阅读次数:
263
修改/etc/security/limits.conf,例如启动程序的用户为webadmin,则添加以下配置:webadmin - nofile 65536webadmin - nproc 65536其中, nofile是文件句柄数量,线程句...
分类:
编程语言 时间:
2014-09-26 19:48:48
阅读次数:
284
关于android多线程数据读写请看博客:android多线程数据读写
常常纠结于获取了SQLiteDatabase每次操作完是否要关闭的问题,每次关闭又怕影响性能,这里记录下SQLiteOpenHelper操作逻辑:
SQLiteOpenHelper获取getWritableDatabase,getReadableDatabase如果之前获取的SQLiteDatabase对象没有cl...
分类:
移动开发 时间:
2014-09-25 19:12:57
阅读次数:
233
当一个线程直到收到另一个线程的通知才执行相关的动作,这时候,就可以考虑使用"事件等待句柄(Event Wait Handles)"。使用"事件等待句柄"主要用到3个类: AutoResetEvent, ManualResetEvent以及CountdownEvent(.NET 4.0以后才有)。本篇...
分类:
编程语言 时间:
2014-09-24 18:56:17
阅读次数:
256
多线程程序设计的困难
难以重现失败,bug难以追踪
并发错误难以追踪和消除
独立任务的拆分并不总是那么明朗
线程同步、通信引入的复杂
多线程引发的竞争、死锁、可见性问题(难以调试、追踪)
测试困难,简单的测试并不能覆盖生产环境的问题
设计不当,并不能充分提升性能(不控制线程数量,造成无谓上下文切换和Cache失效)
see Amdahl's law,阿姆达尔定律,...
分类:
编程语言 时间:
2014-09-23 19:25:45
阅读次数:
300
原文地址:http://sunnylocus.iteye.com/blog/223327程池的作用:线程池作用就是限制系统中执行线程的数量。根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任...
分类:
编程语言 时间:
2014-09-22 16:37:02
阅读次数:
289
现象今天在做一个项目时, 将 tomcat 的 maxThreads 加大, 加到了 1024, tomcat 提供的服务主要是做一些运算, 然后插入 redis, 查询 redis, 最后将任务返回给客户端在做压测时, 同时开了 1000 个线程, 并发发起 http 请求去访问 tomcat 的...
分类:
数据库 时间:
2014-09-19 23:51:36
阅读次数:
405
0 前言最近在写MySQL冷备server的一个模块,稍微接触到一点线程池的东西,自己也就想尝试写一个简单的线程池练练手。这个线程池在创建时,即按照最大的线程数生成线程。然后作业任务通过add_task接口往线程池中加入需要运行的任务,再调用线程池的run函数开始运行所有任务,每个线程从任务队列中读...
分类:
编程语言 时间:
2014-09-16 21:50:31
阅读次数:
346
我们知道,受限于硬件、内存和性能,我们不可能无限制的创建任意数量的线程,因为每一台机器允许的最大线程是一个有界值。也就是说ThreadPoolExecutor管理的线程数量是有界的。线程池就是用这些有限个数的线程,去执行提交的任务。然而对于多用户、高并发的应用来说,提交的任务数量非常巨大,一定会比允许的最大线程数多很多。为了解决这个问题,必须要引入排队机制,或者是在内存中,或者是在硬盘等容量很大的...
分类:
编程语言 时间:
2014-09-13 10:39:45
阅读次数:
240