Novell eDirectory 8.8 User guide

  • Hello! I am an AI chatbot trained to assist you with the Novell eDirectory 8.8 User guide. I’ve already reviewed the document and can help you find the information you need or explain it in simple terms. Just ask your questions, and providing more details will help me assist you more effectively!
NetIQ
®
eDirectory
8.8 SP8
Tuning Guide
September 2013
Legal Notice
THISDOCUMENTANDTHESOFTWAREDESCRIBEDINTHISDOCUMENTAREFURNISHEDUNDERANDARE
SUBJECTTOTHETERMSOFALICENSEAGREEMENTORANONDISCLOSUREAGREEMENT.EXCEPTASEXPRESSLY
SETFORTHINSUCHLICENSEAGREEMENTORNONDISCLOSUREAGREEMENT,NETIQCORPORATIONPROVIDES
THISDOCUMENTANDTHESOFTWAREDESCRIBEDINTHIS
DOCUMENTʺASISʺWITHOUTWARRANTYOFANY
KIND,EITHEREXPRESSORIMPLIED,INCLUDING,BUTNOTLIMITEDTO,THEIMPLIEDWARRANTIESOF
MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.SOMESTATESDONOTALLOWDISCLAIMERSOF
EXPRESSORIMPLIEDWARRANTIESINCERTAINTRANSACTIONS;THEREFORE,THISSTATEMENTMAYNOTAPPLY
TOYOU.
For
purposesofclarity,anymodule,adapterorothersimilarmaterial(ʺModuleʺ)islicensedunderthetermsandconditionsof
theEndUserLicenseAgreementfortheapplicableversionoftheNetIQproductorsoftwaretowhichitrelatesor
interoperateswith,andbyaccessing,copyingorusinga
Moduleyouagreetobeboundbysuchterms.Ifyoudonotagreeto
thetermsoftheEndUserLicenseAgreementyouarenotauthorizedtouse,accessorcopyaModuleandyoumustdestroyall
copiesoftheModuleandcontactNetIQforfurtherinstructions.
Thisdocument
andthesoftwaredescribedinthisdocumentmaynotbelent,sold,orgivenawaywithoutthepriorwritten
permissionofNetIQCorporation,exceptasotherwisepermittedbylaw.Exceptasexpresslysetforthinsuchlicense
agreementornondisclosureagreement,nopartofthisdocumentorthesoftwaredescribed
inthisdocumentmaybe
reproduced,storedinaretrievalsystem,ortransmittedinanyformorbyanymeans,electronic,mechanical,orotherwise,
withoutthepriorwrittenconsentofNetIQCorporation.Somecompanies,names,anddatainthisdocumentareusedfor
illustrationpurposesandmaynotrepresentreal
companies,individuals,ordata.
Thisdocumentcouldincludetechnicalinaccuraciesortypographicalerrors.Changesareperiodicallymadetothe
informationherein.Thesechangesmaybeincorporatedinneweditionsofthisdocument.NetIQCorporationmaymake
improvementsinorchangestothesoftwaredescribedinthisdocumentatanytime.
U.S.Government
RestrictedRights:IfthesoftwareanddocumentationarebeingacquiredbyoronbehalfoftheU.S.
GovernmentorbyaU.S.Governmentprimecontractororsubcontractor(atanytier),inaccordancewith48C.F.R.227.72024
(forDepartmentofDefense(DOD)acquisitions)and48C.F.R.2.101and12.212(for
nonDODacquisitions),thegovernment’s
rightsinthesoftwareanddocumentation,includingitsrightstouse,modify,reproduce,release,perform,displayordisclose
thesoftwareordocumentation,willbesubjectinallrespectstothecommerciallicenserightsandrestrictionsprovidedinthe
licenseagreement.
©2013NetIQCorporationandits
affiliates.AllRightsReserved.
ForinformationaboutNetIQtrademarks,seehttps://www.netiq.com/company/legal/.
Contents 3
Contents
About this Book and the Library 5
About NetIQ Corporation 7
1 Overview 9
1.1 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
2 eDirectory Subsystems 11
2.1 FLAIM Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Checkpoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2.1.2 Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.1.3 Roll-Forward Log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
2.2 Thread Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
3 Analyzing System Bottlenecks 15
3.1 Disk I/O Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 CPU Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Memory Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
3.4 Network Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4 Tuning eDirectory Subsystems 19
4.1 FLAIM Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
4.1.1 Choosing Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.2 Tuning for Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
4.2 Thread Pool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
4.3 ACLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.3.1 Improving eDirectory Searches and Reads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.3.2 Disabling ACL Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
4.4 Replication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
4.5 Solid State Disk (SSD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
4.6 NMAS Login Update Interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.7 SSL Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.8 Import Convert and Export (ICE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
4.9 ldif2dib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
5 eDirectory Configuration 27
5.1 Configuring the FLAIM Subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
5.1.1 Hard Cache Limit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
5.1.2 Dynamically Adjusting the Limit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
5.2 Modifying FLAIM Cache Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
5.2.1 Modifying FLAIM Cache Settings through iMonitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
5.2.2 Modifying FLAIM Cache Settings through _ndsdb.ini . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
4 NetIQ eDirectory 8.8 SP8 Tuning Guide
About this Book and the Library 5
About this Book and the Library
ThedescribeshowtoanalyzeandtunetheNetIQeDirectory(eDirectory)producttoyieldsuperior
performanceinalldeployments.
ForthemostrecentversionoftheNetIQeDirectory8.8SP8TuningGuide,seetheNetIQeDirectory8.8
onlinedocumentationWebsite.
Intended Audience
Theguideisintendedfornetworkadministrators.
Other Information in the Library
Thelibraryprovidesthefollowinginformationresources:
XDASv2AdministrationGuide
DescribeshowtoconfigureanduseXDASv2toauditeDirectoryandNetIQIdentityManager.
InstallationGuide
DescribeshowtoinstalleDirectory.Itisintendedfornetworkadministrators.
AdministrationGuide
DescribeshowtomanageandconfigureeDirectory.
TroubleshootingGuide
DescribeshowtoresolveeDirectory
issues.
What’sNewGuide
DescribesthenewfeaturesofeDirectory.
TheseguidesareavailableatNetIQeDirectory8.8documentationWebsite.
ForinformationabouttheeDirectorymanagementutility,seetheNetIQiManager2.7Administration
Guide.
6 NetIQ eDirectory 8.8 SP8 Tuning Guide
About NetIQ Corporation 7
About NetIQ Corporation
Weareaglobal,enterprisesoftwarecompany,withafocusonthethreepersistentchallengesinyour
environment:Change,complexityandrisk—andhowwecanhelpyoucontrolthem.
Our Viewpoint
Adaptingtochangeandmanagingcomplexityandriskarenothingnew
Infact,ofallthechallengesyouface,theseareperhapsthemostprominentvariablesthatdeny
youthecontrolyouneedtosecurelymeasure,monitor,andmanageyourp hysical,virtual,and
cloudcomputingenvironments.
Enablingcriticalbusinessservices,better
andfaster
WebelievethatprovidingasmuchcontrolaspossibletoITorganizationsistheonlywayto
enabletimelierandcosteffectivedeliveryofservices.Persistentpressureslikechangeand
complexitywillonlycontinuetoincreaseasorganizationscontinuetochangeandthe
technologiesneededtomanagethem
becomeinherentlymorecomplex.
Our Philosophy
Sellingintelligentsolutions,notjustsoftware
Inordertoprovidereliablecontrol,wefirstmakesureweunderstandtherealworldscenarios
inwhichITorganizationslikeyoursoperatedayinanddayout.Thatʹstheonlywaywecan
developpractical,intellig entITsolutionsthatsuccessfullyyieldproven,
measurableresults.
Andthatʹssomuchmorerewardingthansimplysellingsoftware.
Drivingyoursuccessisourpassion
Weplaceyoursuccessattheheartofhowwedobusiness.Fromproductinceptionto
deployment,weunderstandthatyouneedITsolutionsthatworkwellandintegrateseamlessly
with
yourexistinginvestments;youneedongoingsupportandtrainingpostdeployment;and
youneedsomeonethatistrulyeasytoworkwithforachange.Ultimately,whenyousucceed,
weallsucceed.
Our Solutions
Identity&AccessGovernance
AccessManagement
SecurityManagement
Systems&ApplicationManagement
WorkloadManagement
ServiceManagement
8 NetIQ eDirectory 8.8 SP8 Tuning Guide
Contacting Sales Support
Forquestionsaboutproducts,pricing,andcapabilities,contactyourlocalpartner.Ifyoucannot
contactyourpartner,contactourSalesSupportteam.
Contacting Technical Support
Forspecificproductissues,contactourTechnicalSupportteam.
Contacting Documentation Support
Ourgoalistoprovidedocumentationthatmeetsyourneeds.Ifyouhavesuggestionsfor
improvements,clickAddCommentatthebottomofanypageintheHTMLversionsofthe
documentationpostedatwww.netiq.com/documentation.YoucanalsoemailDocumentation
[email protected].Wevalueyourinputandlookforwardtohearing
fromyou.
Contacting the Online User Community
Qmunity,theNetIQonlinecommunity,isacollaborat ivenetworkconnectingyoutoyourpeersand
NetIQexperts.Byprovidingmoreimmediateinformation,usefullinkstohelpfulresources,and
accesstoNetIQexperts,Qmunityhelpsensureyouaremasteringtheknowledgeyouneedtorealize
thefullpotentialofITinvestmentsupon
whichyourely.Formoreinfo rmation,visithttp://
community.netiq.com.
Worldwide: www.netiq.com/about_netiq/officelocations.asp
United States and Canada: 1-888-323-6768
Web Site: www.netiq.com
Worldwide: www.netiq.com/support/contactinfo.asp
North and South America: 1-713-418-5555
Europe, Middle East, and Africa: +353 (0) 91-782 677
Web Site: www.netiq.com/support
1
Overview 9
1
Overview
NetIQeDirectory8.8isastandardscompliant,crossplatform,highlyscalable,faulttolera nt,and
highperformancedirectoryservicessolution.Thisguideprovidesinformationontuningyour
eDirectoryenvironmentforimprovedperformance.
Tuningforperformanceisacomplexactivity.ItrequiresunderstandingofboththeeDirectoryand
operatingsystemʹssubsystems.It
involvesmonitoringthesystemtoidentifybottlenecksandfixing
themoneatatime.ManyatimesresourcesarelimitedandtuningisconfinedtoeDirectoryandthe
operatingsystem.
Theguideisdividedintothefollowingsections:
Prerequisites:Readthissectionbeforeattemptinganykindoftuningandthenproceed
tothe
othersections.
eDirectorySubsystems:Thischapterdescribesprimarysubs ystemsthatinfluenceeDirectory
performance.
AnalyzingSystemBottlenecks:Thischapterdescribesvarioussystemresourcesandtheir
influenceoneDirectoryperformance.
TuningeDirectorySubsystems:ThischapterdescribeshowtoanalyzeandtuneeDirectory
undervariousconditionsandenvironments.
eDirectory
Configuration:Thischapterdescribeshowtoconfigurevarioustunableparameters.
ToincreasetheoverallperformanceofyoureDirectoryenvironment,eDirectory8.8SP8provides
additionalparametersforoptimizingeDirectorybackgroundprocesses.Formoreinformationabout
thenewparameters,seeTID7015361.
1.1 Prerequisites
Ensurethatthefollowinggeneralprerequisitesaremetbeforeattemptingtotunethesystemfor
performance:
AgoodeDirectorytreedesigncanenhanceeDirectoryperformance.Thefollowing
considerationsmightapply:
Applicationsreadalltheinformationlocallyontheserverwithoutneedingtochainthe
requests.
eDirectoryefficientlyhandlesobjectreferences
automatically.Ifpossible,objectsonaserver
shouldnotrefertoobjectsthatarenotlocalonthatserver,becausemaintainingnonlocal
objectreferencescantakemoretime.Ifsuchreferencesexist,backlinksmustbemaintained.
Thisbecomescumbersomeinlargedeployments.
Ifyouneedagroupwith 10,000members
ormore,dynamicgroupsarerecommended.This
allowsyoutoavoidtheoverheadassociatedwithmaintainingreferencesforsomany
people.Chooseyourdynamicgroupconfigurationcarefully,becauseusingmultiple
dynamicgroupswithimpropersearchcriteriamightoverloadtheserverandreduceoverall
10 NetIQ eDirectory 8.8 SP8 Tuning Guide
serverperformance.Ifasearchoperationtakesalongtimetocomplete,thechosenindex
mightbeinefficient.Minimizetheuseofregular(static)groupsasthiscanincreasetree
walkingonlogin.
UseACLsefficiently.Forexample,usethe[This]trusteeandassignitatthecontainerlevel
insteadof
usinganACLtemplatethatassignsrightstoitself.ThefewerACLs,thebetterthe
performance.FormoreinformationonACLs,seeeDirectoryRights intheNetIQ
eDirectory8.8SP8AdministrationGuide.
Distributetheloadontomultiplereplicaservers.
Althoughagoodtreedesignminimizestheneedfortree
walking,itisstillsometimes
necessary.YoucanconsiderAdvancedReferralCostingintheNetIQeDirectory8.8SP8
AdministrationGuide.
Ifloginsareslow,youcandisableloginupdates.Thereareseparatewaystodisablelogin
updatesforbothNDSandNetIQModularAuthenticationService(NMAS)logins.
However,it
isimportanttounderstandthesecurityimplications(http://www.novell.com/
documentation/nmas33/admin/data/bg8dphs.html).
RunhealthchecksthroughiMonitor.Formoreinformation,seeKeepingeDirectoryHealthy
intheNetIQeDirectory8.8SP8AdministrationGuide.Ensurethefollowing:
Timeisinsyncacrossallreplicaservers.
Replicasynchronizationandbackgroundprocessesareina
healthystate.
2
eDirectory Subsystems 11
2
eDirectory Subsystems
ThissectiondiscussestheeDirectorySubsystems.
Section 2.1,“FLAIMDatabase,”onpage 11
Section 2.2,“ThreadPool,onpage 12
2.1 FLAIM Database
eDirectoryusesFLAIMasitsdatabase.FLAIM(FlexibleAdaptableInformationManager)isusedfor
traditional,volatile,andcomplexinformation.Itisaveryscalabledatabaseenginethatsupports
multiplereadersandasinglewriterconcurrencymodel.Readersdonotblockwritersandwritersdo
notblockreaders.
Physically,FLAIMorganizesdata
inblocks.Someoftheblocksaretypicallyheldinmemory.They
representtheblockcache.Theentrycache(sometimescalledarecordcache)cacheslogicalentries
fromthedatabase.Entriesareconstructedfromtheitemsintheblockcache.FLAIMmaintainshash
tablesforbothcaches.Thehashbucket
sizeisperiodicallyadjustedbasedonthenumberofitems.
BydefaulteDirectoryusesablocksizeof4KB.TheblockcachesizeforcachingthecompleteDIBis
equaltotheDIBsize,andthesizerequiredfortheentrycacheisabouttwotofourtimestheDIB
size.
Whileretrievinganentry,FLAIMfirstchecks fortheentryintheentrycache.Iftheentryexists,
readingfromtheblockcacheisnʹtnecessary.Whileretrievingablockfromthedisk,FLAIMfirst
checksfortheblockinthecache.Iftheblockexists,adiskreadoperation
isnʹtnecessary.
Whenanentryisaddedormodified,thecorrespondingblocksforthatentryarenotdirectly
committedtothedisk,sothediskandmemorymightnotbeinsync.However,theupdatesmadeto
theentryareloggedtotherollforwardlog(RFL).AnRFLis
usedtorecovertransactionsaftera
systemfailure.
LeastRecentlyUsed(LRU)isthereplacementalgorithmusedforreplacingitemsinthecache.
Section 2.1.1,“Checkpoint,”onpage 11
Section 2.1.2,“Indexes,”onpage 12
Section 2.1.3,“RollForwardLog,”onpage 12
2.1.1 Checkpoint
Acheckpointbringstheondiskversionofthedatabasetothesamecoherentstateastheinmemory
(cached)database.FLAIMcanperformacheckpointduringtheminimalupdateacti vityonthe
database.Itrunseverysecondandwritesthedirtyblocks(dirtycache)tothedisk.Blocksthatare
modifiedinthecachebutnotyetwrittentothediskarecalled“dirtyblocks”.FLAIMacquiresalock
onthedatabaseandperformsthemaximumamountofpossibleworkuntileitherthecheckpoint
12 NetIQ eDirectory 8.8 SP8 Tuning Guide
completesoranotherthreadiswaitingtoupdatethedatabase.Topreventtheondiskdatabasefrom
becomingtoofaroutofsync,thereareconditionsunderwhichacheckpointisforcedevenifthreads
arewaitingtoupdatethedatabase:
Ifthecheckpointthreadcannotcompleteacheckpointwithina
specifiedtimeinterval(the
defaultis3minutes),itisforcedandthedirtycacheiscleaned.
Ifthesizeofthedirtycacheislargerthanthe
maxdirtycache
(ifset),acheckpointisforcedto
bringdownthedirtycachesizeto
mindirtycache
(ifset)ortozero.
2.1.2 Indexes
Anindexisasetofkeysarrangedinawaythatsignificantlyspeedsupthetaskoffindingany
particularkeywithintheindex.Indexkeysareconstructedbyextractingthecontentsofoneormore
fields(attributes)fromtheentries.Indexesaremaintainedintheblockcache.Anychanges
tothe
indexedattributesrequireschangesintheindexblocks.
eDirectorydefinesadefaultsetofindexesforsystemattributes (fields).Systemattributessuchas
parentID
and
ancestorID
areusedforonelevelandsubtreesearches.Theseindexescannotbe
suspendedordeleted.Thedirectoryinternallyusesthem.Defaultindexesaredefinedforattributes
suchas
CN
,
Surname
,
Given Name
,andsoon.Indexescanbeoftypepresence,value,andsubstring
indexes.Theseindexescanbesuspended.Ondeletiontheyareautomaticallyrecreated.
YoucanuseiManagerorthendsindexLightweightDirectoryAccessProtocol(LDAP)utilitytocreate
indexes.Indexes(http://www.novell.com/documentation/edir88/edir88/data/a5tuuu5.html) are
serverspecific.
ByenablingtheStorage
Manager(
StrMan
)taginDSTrace(ndstrace),youcanviewtheindexchosen
forthesearchqueries.
ThefollowingexampleisforaDSTracelogforasubtreesearchusing
“cn=admin”
,CN.
3019918240 StrMan: Iter #b239c18 query ((Flags&1)==1) &&
((CN$217A$.Flags&8=="admin") && (AncestorID==32821))
3019918240 StrMan: Iter #b239c18 index = CN$IX$220
ThefollowingexampleisforanDSTracelogforasubtreesearchusing
“Description= This is
for testing”
,
AncestorID
.
2902035360 StrMan: Iter #83075b0 query ((Flags&1)==1) &&
((Description$225A$.Flags&8=="This is for testing") && (AncestorID==32821))
2902035360 StrMan: Iter #83075b0 index = AncestorID_IX
2.1.3 Roll-Forward Log
FLAIMlogsoperationsforeachupdatetransactioninarollforwardlog(RFL)file.AnRFLisusedto
recovertransactionsfromasystemfailureorwhenrestoringfromabackup.TheRFLfileistruncated
aftereverycheckpointiscompletedunlessitisturnedon(
rflkeepfiles
)byusingahotcontinuous
backup(http://www.novell.com/documentation/edir88/edir88/data/a2n4mb7.html).
2.2 Thread Pool
eDirectoryismultithreadedforperformancereasons.Inmultithreading,whenthesys tem isbusy,
morethreadsarecreatedtohandletheloadandsomethreadsareterminatedtoavoidextra
overhead.Itisinefficientandcostlytofrequentlycreateanddestroythreads.Insteadofspawning
eDirectory Subsystems 13
newthreadsanddestroyingthemforeverytask,anumberofthreadsarestartedandplacedina
pool.Thesystemallocatesthethreadsfromthethreadpooltoseveraltasksasneeded.Tasksareheld
intwotypesofqueues:
TasksthatneedimmediateschedulingareheldintheReady
queue.
Tasksthatneedschedulingatalatertimeare heldintheWaitingqueue.
Noteverymoduleusesthethreadpool.Theactualnumberofthreadsfortheprocessismorethanthe
numberthatexistsinthethreadpool.Forexample,FLAIMmanagesitsbackgroundthreads
separately.
Runningthe
ndstrace -c threads
commandreturnsthefollowingthreadpoolstatistics:
Thetotalnumberofthreadsthatarespawned,terminated,andidle.
Thetotalnumberofworkerthreadscurrentlyandthepeaknumberofworkerthreads.
ThenumberoftasksandpeaknumberoftasksintheReadyqueue.
Theminimum,maximumand
averagenumberofmicrosecondsspentintheReadyqueue.
ThecurrentandmaximumnumberoftasksintheWaitingqueue.
Anexampleofasamplethreadpool:
Therearecertainthreadpoolparameters:
n4u.server.maxthreads:Maximumnumberofthreadsthatcanbeavailableinthepool.
n4u.server.idlethreads:Maximumnumberof
idlethreadsthatcanbeavailableinthepool.
n4u.server.startthreads:Numberofthreadsstarted.
Runthe
ndsconfig get
and
ndsconfig set
commandstogetandsetthethreadpoolsize.
14 NetIQ eDirectory 8.8 SP8 Tuning Guide
3
Analyzing System Bottlenecks 15
3
Analyzing System Bottlenecks
ThereareseveralsystemresourcesthatinfluenceeDirectoryperformance.Inaddition,upgradingto
thelatestversionofoperatingsystemimprovesperformance.
Section 3.1,“DiskI/OSubsystem,”onpage 15
Section 3.2,“CPUSubsystem,”onpage 16
Section 3.3,“MemorySubsystem,”onpage 16
Section 3.4,“NetworkSubsystem,”onpage 17
3.1 Disk I/O Subsystem
Thedisksubsystemisthemostcommonbottleneck.TheI/Otakesarelativelylongtimewithlonger
queues,resultinginhighdiskutilizationandidleCPUcycles.Usetheiostattoolduringexpected
peakloadstodeterminetheaverageresponsetimeindicators.
Diskread,write,andupdateoperationscanbesequential
orrandom.Randomreadsandupdatesis
themostcommonaccesspatternineDirectorydeployments.
Somesolutionsforrandomworkloads:
IncreasetheRAM.Thisallowscachingfrequentlyuseddataorreadaheaddataatthefilesystem
layer.ItalsoallowscachingtheDIBwithintheFLAIMsubsystem.
Usededicatedvolumesfor
theDIB.Filesystemperformanceimprovesforvolumescreated
closertothespindle.UsededicatedvolumesforRFLandotherlogs.
Asdisksdevelopincreasinglatencyoveraperiodoftimebecauseoffragmentation,theyshould
bedefragmented.
AddseparatediskdrivesforFLAIMRFL.Thistypeofloggingcanbeperformed
onhighspeed
disks.
UseaRAID10(1+0)environmentwithmorediskdrives.
FilescreatedbyeDirectorycangrowto4GB.Filesystemsthatareoptimizedtohandlelargefiles
workefficientlywitheDirectory.
ForSolaris™,theVeritas*VxFSfilesystemisanextentbasedfilesystemwherethefilesystem
metadataisoptimizedforlargefiles.TheUFSfilesystemisindirectlyblockbased,wherethe
filesystemmetadataisstoredinlargernumberofblocks.Itcanevenbescatteredforlargefiles,
whichmakesUFSslowerforlargerfiles.
ForLinux™,theReiserfilesystemisafastjournalingfilesystem
andperformsbetterthanthe
ext3filesystemonlargeDIBsets.However,thewritebackjournalingmodeofext3isknownto
matchtheperformanceoftheReiserfilesystemalthoughthedefaultorderedmodeprovides
betterdataconsistency.XFSisahighperformancejournalingfilesystem,capableofhandling
largefiles
andofferingsmoothdatatransfers.eDirectory8.8SP8issupportedonSLES1132and
64bitplatformshavingXFSfilesystem.
16 NetIQ eDirectory 8.8 SP8 Tuning Guide
FLAIMsupportsablocksizeof4KBand8KB.Bydefault,itis4KB.Thisissameasthedefaultblock
sizeonLinux(
tune2fs -l device
).However,onSolaris,theUFSfilesystemiscreatedwitha
defaultblocksizeof8KB(
df -g mountpoint
).IftheFLAIMblocksizeissmallerthanthefilesystem
blocksize,partialblockwritescanhappen.Ifthedatabaseblocksizeislargerthanthefilesystem
blocksize,individualblockreadsandwritesaresplitintoaseriesofdistinctphysicalI/Ooperations.
Therefore,youshouldalwayskeepthe
FLAIMblocksizethesameasthefilesystemblocksize.
BlocksizescanbecontrolledonlyduringthecreationoftheDIB.Addaline“blocksize=8192”to
_ndsdb.ini
tocreatetheDIBwith8Kblocksize.
ChoosingtherightblocksizedependsontheaveragesizeoftheFLAIMrecordonyourdeployments.
Empiricaltestingisrequiredontherightsetoftestdatatodeterminewhichblocksizeisbetterfor
yourdeployment.
3.2 CPU Subsystem
eDirectoryisbuiltonahighlyscalablearchitecture.Theperformanceincreaseswiththeincreasein
thenumberofprocessors.Increasedthroughputisobserveduntilatleastthe12thprocessorunder
heavyload.However,thisincrease issubjecttotheperformanceofotherresourcesduringthe
increasingloadonthesystem.Servers
areoftenunderconfiguredwithdisksandmemory.You
shouldaddmoreprocessorsonlyunderthefollowingcircumstances:
Iftheaverageloadoncurrentlyusedprocessorsisbeyond75%percentutilization.Ifthecurrent
CPUutilizationisbelow75%,addingmoreCPUsmightnotimproveperformance.
Ifthereisa
satisfyingincreaseinperformance.
IfeDirectoryisconfiguredwithtoomanythreads,considerableamountofCPUtimeisspentin
contextswitching.Inthiscase, adecreaseinthreadscanresultinbetterthroughput.
3.3 Memory Subsystem
ServerapplicationscanperformsignificantlybetterwhenRAMisincreased.CachingtheeDirectory
databaseinthefilesystemorintheFLAIMcachecanleadtoimprovedperformancesofsearchand
modifyoperations.However,youcannotcachethecompleteDIBinlargedeployments.Avoidpage
swappingevenifitmeansreducingthe
FLAIMentryandblockcachesizes.Usethevmstattoolto
findmoreinformationonthememorysubsystem.
AseDirectoryusesmemory,eachthreadfromthethreadpooluses1MBofRAMforitsstack.By
default,theFLAIMcachesizeissetto200MB.
Severalloadablemodulesare
startedwheneDirectorystarts,buttheloadablemodulearchitectureof
eDirectoryallowsyoutoreducethememoryfootprintoftheprocessbynotloadingtheunused
modules(forexample,SecretStore,LDAP,oreMBox).Inaddition,productslikeIDMhavesome
modulesthatruninsideeDirectory.
ThememoryusedbyeDirectorymight
appeartobegrowing.Althoughmemoryisfreedbyan
eDirectoryprocess,itmightnotbereleasedtothesystemfreepoolbecausethememorymanager
usedinternallybyeDirectorytriestooptimizethememoryallocationsforfuture.Thisisoneofthe
reasonsfornotrecommendingFLAIMdynamicconfiguration.
UsetheToptooltofindthe
approximatevirtualmemorysizeofthendsdprocessinyourdeployment.
Themaximummemorythatcanbe allocatedtoaprocessislimitedinseveralways.Acertainamount
ofRAMisusedbytheoperatingsystemandotherprocessesonthesystem.The
operatingsystemcan
imposelimitationsonphysicalRAMthataprocessuses.
Analyzing System Bottlenecks 17
3.4 Network Subsystem
Typicaldeploymentshavesufficientbandwidthtohandlepeaknetworkload.Adequatebandwidth
reduceserrors,collisions,anddroppedpackets.Usethenetstattooltodeterminethenetwork
statistics.
SeveraloperatingsystemsprovideTCP/IPtunableparametersfortuningnetworkintensiveservers.
Forinformation,refertothedocumentationfortheoperatingsystems.
Ifthenetwork
isthebottleneck,youshouldincreasethebandwidth.Configuringadedicatedprivate
networkbetweentheapplicationserversandtheeDirectoryservermightalsohelpinreducingthe
networkcongestion.
18 NetIQ eDirectory 8.8 SP8 Tuning Guide
4
Tuning eDirectory Subsystems 19
4
Tuning eDirectory Subsystems
Thissectionincludesthefollowinginformation:
Section 4.1,“FLAIMDatabase,”onpage 19
Section 4.2,“ThreadPool,onpage 20
Section 4.3,“A C L s , onpage 21
Section 4.4,“Replication,”onpage 23
Section 4.5,“SolidStateDisk(SSD),”onpage 24
Section 4.6,“NMASLoginUpdateInterval,”onpage 25
Section 4.7,“SSLOverhead,”onpage 25
Section 4.8,“ImportConvertandExport(ICE),”onpage 25
Section 4.9,“ldif2dib,”onpage 25
4.1 FLAIM Database
CachesizingisarguablythemostimportantfactoraffectingtheoverallperformanceofeDirectory.
Thegreaterthenumberofitems(blocksandentries)thatcanbecached,thebettertheoverall
performanceis.Thepercentageoftimesthattheblocksorentriesarefoundinthecacheiscalledthe
hit
ratio.Ahigherratioresultsinbetterperformance.iMonitorcanbeusedtoviewthehitratio.
Theblockcacheismostusefulforupdateoperations.Theentrycacheismostusefulforoperations
thatperformsabasescopedsearchforanentry.However,bothonelevelandsubtreescoped
searchesusetheentrycacheaswellastheblockcache.Theblockcacheisusedtoretrieveindexes.
Createtherighttypeofindexesasnecessary,formoreinformationsee“ChoosingIndexes”on
page 20.
Afaultintheblockcachecanresultinadiskreadoperation.Diskreads
arealwaysexpensive,but
theycanbeavoidedifablockisretrievedfromthefilesystemcache.
Theamountofmemoryrequiredtocachethecompletedatabaseintheblockcacheisnearlythesize
ofthedatabaseonthedisk,andtheamountofmemoryrequiredtocachethecomplete
databasein
theentrycacheisnearlytwotofourtimesthedatabasesizeonthedisk.Whenyouhavelessmemory
onasystem,tryasmallerentrycacheandamuchlargerblockorfilesystemcache.
Ifreadsarelocalizedtoasetofentriesinthedirectory,you
shouldincreasetheentrycacheaslongas
itresultsinanimprovedentrycache hitratio.
IfthereadpatterniscompletelyrandomandtheDIBismuchlargerthantheavailableRAM,you
shouldhavealargerblockcacheorafilesystemcachethantheentrycache.
Anymethodyou
usetotuneeDirectoryforanimprovedperformanceneedsempiricaltesting.A
goodratioofentrytoblockcacheforsearchintensiveenvironmentsis2:1ratio.Ensurethatsufficient
memoryisleftforotherprocesses.AvoidpageswappingevenifitmeansreducingtheFLAIMcache
sizes.
20 NetIQ eDirectory 8.8 SP8 Tuning Guide
BecauseFLAIMprovidespreallocatedcaching,memoryallocatedtotheeDirectorycacheisnever
fragmentedbythenativeoperatingsystemmemorymanager.
4.1.1 Choosing Indexes
Indexesaremeanttoimprovetheonelevelorsubtreescopedsearchperformance.Dynamicgroups
alsouseonelevelorsubtreescopedsearches.Indexesarenotusedforbasescopedsearches.
BecauseaPresenceindexdoesnotdifferent iat ebetweenpresentandnotpresent(deleted)values,itis
mainlyused
forinternalpurpose.IfapplicationsrunaPresencetypesearchquery,thisindexisnever
used,soapplicationsshouldnothavePresenceindexescreatedforthem.
ApplicationscancreateaValueindexforanattribute,whichissuffi cient formostofthesearches.
FLAIMcanuseaValueindexforperforming
bothPresenceaswellasSubstringsearchesonthe
attributes.
ASubstringindexcansignificantlydeceleratetheupdatesperformedonanattribute.Thenumberof
indexblocksrequiredtosupportaSubstringindexisquitelargecomparedtotheValueindex.This
meansmoreblockcacheisrequiredtocachethem.
CreateaSubstringindexonlywhennecessary.A
Valueindexshouldsufficeformostsearches.However,ifSubstringsearchesdonotyieldacceptable
performancewithaValueindex,youcan createaSubstringindexonthoseattributes.
Ifasearchoperationtakesalongtimetocompletedespitethechosenindex,
youmightintroducea
newervalueindexononeoftheattributesofthesearchfilter.Picktheattributethatyieldsbestresults
whenindexed.
4.1.2 Tuning for Updates
Theblockcacheismostusefulforupdateoperations.Indexesalsoresideintheblockcache.
Althoughindexeshelpinfastersearches,havingtoomanyindexeskeepstheserverbusy
maintainingthem.Indexesaremodifiedifattributevaluesaremodified,added,ordeleted.During
largeuploadoperations,indexescanbedisabled
forfasterupload.
HavingtheRFLdirectoryonadifferentdiskthantheDIBdirectoryimprovesperformance.
Anacceptablelimitforresponsetimeforanupdateoperationcanbecontrolledbyusingthe
maxdirtycache
.Forexample,ifanacceptablelimitfortheserverresponseis5secondsandrandom
diskwritespeedis20MBpersecond,thenthe
maxdirtycache
shouldbesetas20x5=100MB.
Ensurethattheblockcachecanholdthesedirtyblocksinmemory.SeeSection 5.2.2,“Modifying
FLAIMCacheSettingsthrough_ndsdb.ini,”onpage 29formoreinformation.
4.2 Thread Pool
Bydefault,themaximumnumberofthreadsthatcanbeavailableinthethreadpoolis256.This
numbershouldsufficeformostdeployments.Itcanbeincreas e dto512threadsinlarger
deployments.Youshouldincreasethenumberofthreadsinthepoolinthefollowingcases:
Ifthenumber
ofidlethreadsisoftenzero.
IftheaverageamountoftimespentbyataskintheReadyqueueishighandincreasing.
IfthenumberoftasksintheReadyqueueishighandincreasing.
Keepincreasingthemaxthreadsiftheperformanceoftheserverincreases.Itshould
alsoresultin
increasedCPUutilization.
/