- 浏览: 13848 次
- 性别:
- 来自: 深圳
最新评论
文章列表
今天在线上服务器做压测时发现一个很诡异的问题,测试并发量一上来服务器就报如下信息,这时候敲任何命令都没用了
-bash: fork: retry: Resource temporarily unavailable
测试停止压测后一会儿又恢复正常,日志中出现大量访问的创建Hbase的连接失败,甚至出现OOM异常,不能创建一个线程
java.lang.OutOfMemoryError: unable to create new native thread
从异常信息可以看出是不能创建线程了,再结合Linux系统出的错误信息,资源不足,判断应该是用户创建的线程数达到了限制的最大值,使 ...
今天来总结一下redis常用的监控命令的使用
1 info 列出redis各项信息,包括客户端连接,内存使用,持久化,节点状态,复制,CPU占用,集群相关以及内部key的数据等等信息
127.0.0.1:6379> info
# Server
redis_version:4.0.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:e351e4221a69e266
redis_mode:standalone
os:Linux 2.6.32-696.6.3.el6.x86_64 x86_64
arch_bi ...
一直使用redis, 但是还没有怎么有机会去调优,互联网都喜欢使用redis来做高速缓存,所以也准备花点时间来研究一下redis的优化问题,首先从redis的配置文件着手吧,搞清楚配置里面能做哪些事,废话不多说,上配置
# include /path/to/local.conf
上面的配置主要是为了引入其他的配置文件,可以用来在引入的配置文件中定义一个模板配置文件。
# bind 192.168.1.100 10.0.0.1
绑定redis 监听的网络接口,多个用空格隔开,生产环境建议绑定,出于安全考虑
protected-mode yes
受保护模式 当受保护模式开启的情况下 如果 ...
最近在测试环境的mysql执行一个alter table 语句时一直处于阻塞状态,通过 show processlist 查看线程一直处于Waiting for table metadata lock,排查了所有线程没发现有其他线程获取到锁,一直疑惑到底是什么线程持有了锁没释放,
在网上查询得知MySQL在进行一些alter table等DDL操作时,如果该表上有未提交的事务则会出现 Waiting for table metadata lock ,而一旦出现metadata lock,该表上的后续操作都会被阻塞(详见 http://www.bubuko.com/infodetail-1151 ...
产生死锁的原因主要是:
(1)系统资源不足。
(2) 进程运行推进的顺序不合适。
(3)资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入 ...
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。
这样当多个线程同时与某个对象交互时,就必须要注意到要让线程及时的得到共享成员变量的变化。
而volatile关键字就是提示VM:对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互。
使用建议:在两个或者更多的线程访问的成员变量 ...