Quantcast
Channel: Ivy's note »技术
Viewing all articles
Browse latest Browse all 10

JRobin RRD保存效率低

$
0
0

    遇到了个非常困惑的问题,程序每隔5分钟产生15000条数据并存储15000个RRD文件,第一次创建RRD文件的时候很快,然而后来就越来越慢了,尝试着调整并发线程数,加大缓存都不好使,尝试更新新版本的RRD jar也不好使,调低线程后发现单条效率很高,但会偶尔冒出一个超长时间的。难道iostat -mx 中的util只要达到100%就代表机器的IO达到瓶颈了吗?但top的iowait还远没达到100%,机器的负载还在很低的水平,是需要提高硬件配置还是调整架构呢?

    后来又仔细观察了下,程序在并发持久化文件时通过iotop发现 kdmflush进程的CPU IO等待率会不间断达到100%,平均间隔10秒~20秒就会有一次,此时平台的持久化效率明显降低。

    运行信息:

    系统版本: Linux 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux REL6
    持久化并发线程数:5(减少线程数也会有此现象)
    iotop信息:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 18.86 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1287 be/4 root 0.00 B/s 0.00 B/s 0.00 % 99.08 % [kdmflush]
19158 be/4 root 0.00 B/s 0.00 B/s 0.00 % 3.97 % [flush-253:1]
    top信息:
top – 10:17:19 up 159 days, 19:38, 3 users, load average: 10.50, 9.72, 9.28
Tasks: 263 total, 1 running, 262 sleeping, 0 stopped, 0 zombie
Cpu0 : 2.0%us, 1.0%sy, 0.0%ni, 96.4%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0%st
Cpu1 : 2.0%us, 0.7%sy, 0.0%ni, 0.0%id, 96.7%wa, 0.0%hi, 0.7%si, 0.0%st
Cpu2 : 2.0%us, 0.7%sy, 0.0%ni, 97.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu3 : 9.9%us, 0.0%sy, 0.0%ni, 0.0%id, 90.1%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.3%us, 0.0%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu5 : 5.3%us, 0.0%sy, 0.0%ni, 0.0%id, 94.4%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 3910820k total, 3746056k used, 164764k free, 12948k buffers
Swap: 12287992k total, 253812k used, 12034180k free, 1553276k cached

    感觉挺高配的的一个服务器不应该效率这么低呀,再后来在比它低配的一windowsPC上测试发现竟然持久化效率比它高挺多,几乎可以满足业务需要。这究竟是怎么回事呢?在这方面Linux应该更占优势才对呢!! 是我们内核参数设置不合理导致的吗?那可是REL6的默认配置,得花点时间研究一下,也得找找此方面的高手帮忙解决下!!


Viewing all articles
Browse latest Browse all 10

Trending Articles