手机版

OpenLDAP性能测试分析与优化

时间:2025-07-09   来源:未知    
字号:

第 2卷第 6期 520 0 8年 6月

计算机应用与软件Co u e mp t rApp iai n n ot r l to sa d S fwa e c

Vo. 5 N . 12 o 6Jn 0 8 u .2 0

Op n D P性能测试分析与优化 eL A黄金华李晓勇 (上海交通大学信息安全工程学院上海 20 4 ) 0 2 0

O eL A pn D P是开源的 L A D P服务器,在分布武目录服务中得到了广泛应用。详细分析了 O e L A目前所采用的独特 pn D P

“程池”式。通过比较 O eL A线模 pn D P在不同模式下的性能差异,现原模式对 L A发 D P操作存在较大的响应延迟。进一步给出了改

进的“线程池”式,模该改进模式能够降低 L A D P操作响应延迟。最后通过仿真实验,明改进模式可以明显改善 O eL A表 pnD P的性能。

关键词

L A O e L A线程池模式 D P pn D P

M EAS UREM ENT, ANALYSI S AND OPTI I M ZATI ON OF OPENLDAP PERFORM ANCE

Hu n ih a L a y n a gJn u i Xio o g( colfI om t nScryE gneig S ag a i t g U i rt, h nh i 0 2 0 C i ) Sho o n rai eui n i r, h n hi a o nv sy S ag a 0 4, hn f o t e n Jon ei 2 a

A src bt t a

O e L A s noe ig or pe na o D P ( i w i i c r A cs Po c1,s en sdi i raig p n D Pa pnn uc i l a s e m metino L A L te t f t r t y ces rt o) ibigue ces D eo o nn n

d sr ue i co ya pia in .W ef sl n ls h p ca t ra o l mo e a o t d b p n D .I i u dt e c re t d i i i td d r tr p l t s tb e c o rt a ay e t e s e il“ h e d p o” i y d d p e y O e L AP t s o n u r n f h mo e w l l c u e t e o e ain o DAP lr e e p n e lt n y atr c mp r gt e p r

r n e df r n e fOp n DAP i a iu d s a s h p rt fL o g rr s o s a e c fe o a n h ef ma c i e e c s o e L a i o f n v r smo e .A e n d o rf e i tr a o l s t e e eo e o e u i g t e r s o s ae c .F n l h e d p o h n d v lp d f rr d c n e p n e ltn y i h ia l y,s lt n e fc t n i e o td t a e rf e o lmo e g v s i ai s v r a i sr p re h tt e n d p o d i e mu o i i o h i b t rp r r a c nt e r s o s ae c fL AP o e ain . et e o e f m n e i h e p n e ltn y o D p rt s o

Ke wo d y rs

L g t eg t i co c e sp oo o O e L AP T r a o l d ih w ih r t r a c s r tc l d e y p n D h e d p o mo e

个主线程、守护线程和多个任务处理线程。主线程主要处理用

0引言 早期在开发一个 U i服务器的时候, nx常采用迭代服务器或者并发服务器。迭代服务器的主要缺陷是一次只能处理一个客

户命令;守护线程使用 IO多路复用监听网络端口,/与主线程采用字节流域套接字进行通信,与任务处理线程采用共享内存进行通信;务处理线程处理守护线程所创建或分配的任务。任 O eL A p n D P并不预先创建任务处理线程,而是让守护线程在必

户请求。并发服务器通常为每一个客户请求创建一个新线程(进程 )该客户服务完毕后服务线程 (或,或进程 )被销毁。频就

要时刻创建。当有新的客户请求到达时,守护线程将创建一个任务结构 c, t并将这个任务结构插入到“ ( o1中,后根 x池” po)然据需要创建或者唤醒任务处理线程执行该池中的各种任务。任务与任务处理线程并不是一一对应的,也就是说,同客户的请不求可能被同一任务处理线程处理,同一客户的多个请求可能被多个任务处理线程处理。 值得注意的是,里的“存储的并不是线程,这池”而是三种不同的任务链表, h— edn—i、p at e lt h

—re 即 p p nig lth— ci—i和 p f— s v s els。 hp p n ig it e dn— _

繁的创建和销毁线程所带来的开销会严重影响系统性能。为了

降低这种影响,系统在初始化阶段预先创建一定数量的服务线程,每个客户请求由当前可用线程池中的某个闲置线程处理。

当线程完成某次事务之后,标记为空闲,等待处理下次事务。仅当整个系统退出时,所有线程才被销毁。这就是线程池模式的基本思想。

作为开源的 L A D P服务器, pn D P在分布式目录服务中 O eL A得到了日益广泛的应用,但其并没有完全采用上述线程池模式, 而是使用其独特的“线程池”模式。本文详细分析了 O eL A pnD P

lt i是由分配了任务但尚未被处理的 c s t成 x组

的链表; p at e lt由正在被处理的 c h— ci—i是 v s t成的链表;p x组 h—fe re—

目前所采用的独特模式,比较了不同模式下 O e L A pn D P性能差异。分析显示可以通过改进“线程池”模式进一步降低 L A D P操作响应延迟。针对此问题,参考并发线程池模式并提出了改进

lt i由尚未分派任务的 c组成的链表。除此之外,池” s t x“中

还存储“”池的状态、唤醒任务处理线程的信号量以及允许的最大任务处理线程数等信息。

模式。通过仿真实验,明改进模式可以明显降低 L A表 D P操作响应时间。最后对此进行了总结和分析,对进一步改进并O eL A pn D P性能提出了展望。

O eL A所特有的“ pnD P线程池”式主要由两个算法构成,模一

是守护线程所执行的,另一个是任务处理线程执行的。 守护线程所执行的算法如下:

1 Op n DA“程池”式及其分析 eL P线模1 1实现分析 在 O eL A pn D P中,采用了独特的线程池模式。系统中有一

1 )如果“”池的状态为“完成”“停”或者等待处理的或暂,c超过了最大值, t x则该算法结束;

收稿日期式系统。

:0 6—0 2o 7—1。黄金华,士生,研领域:络与嵌入 9硕主网

第 6期

黄金华等:pn D P性能测试分析与优化 O eL A统的性能带来一定的损耗。

19 8

2 )从任务链表 l—re lt t f—

i中摘 …… 此处隐藏:7273字,全部文档内容请下载后查看。喜欢就下载吧 ……

OpenLDAP性能测试分析与优化.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)