Академический Документы
Профессиональный Документы
Культура Документы
W h i t e
P a p e r
S e r i e s
TM
T e c h n i c a l
W h i t e
P a p e r
S e r i e s
Sticky Load Balancing Sticky load balancing involves running One-To-One Interaction Manager servers on different machines from those hosting the HTTP servers. Each Interaction Manager machine can run multiple instances or engines. Visitor sessions continue uninterrupted by remaining on the engine that created the session. All subsequent requests during the same session will be routed back to the same engine. This process has the advantage of caching data in the engine process, thereby avoiding expensive data retrieval from the backends. Service Level Process Grouping Service Level Process Grouping is a method of load balancing by optionally grouping service level processes into clusters using the group construct. This gives programmers the option of identifying which processes to use with which services.
Caching
Cache
Caching is one of the most successful techniques for improving system performance. Instead of making expensive calls to the database, data items are cached in the memory. Figure 2 demonstrates the caching process. A system generally uses one of five methods to cache data: Collection Cache, Queries Cache, Content Cache, Page Request Cache, and Category Cache.
Collection Cache
After evaluating rules in a Matching collection, the Matching system caches the parsed results. You can configure the number of rules kept in the cache by setting:
rule_cache_size=500 in bv1to1.conf
The following table summarizes database accessor processes and their functions:
Process
Content Accessor (cntdb) Profile Accessor (cmsdb) Generic Accessor (genericdb) External Accessor (extdbacc)
Function
Access One-to-One Content Database Access One-to-One Profile Database Handle Content Query Requests Access External Database
Queries Cache
The query cache stores the result of a query. You can change the following parameters in bv1to1.conf.
query_cache_size=500 query_limit=2000 query_cache_timeout=60
Browsers Connecting Through the Web HTTP/HTTPS Connections Two HTTP Servers On Two Hosts TCP/IP Connections Through a Firewall One-To-One Command Center Four Interaction Manager Engines on Three Hosts CORBA Connections One-To-One Servers on Two Hosts
T e c h n i c a l
W h i t e
P a p e r
S e r i e s
Although caching is a good technique for improving system performance by avoiding expensive backend calls, caching has the potential to create problems of inconsistent data between the cache (in memory) and the persistent storage (database). To force the system to empty or reload a cache, you can use cache_utl utility or use DCCs Notify Servers command. For example, to clean up the request cache, you can invoke
cache_utl -e request_cache.
Content Cache
The content cache allows you to specify the number of content items cached over the set of all content types:
default_cnt_cache_size=1000
You can achieve granular control by overriding the default content cache and specifying the type and number of items to hold:
cnt_type_cache_type=AD=100 PRODUCT=200
This is useful when you do not want to waste cache space by storing infrequently accessed content type or frequently changing content type, such as a stock quote.
Category Cache
Category cache allows certain categories, or semantically defined units, of items to be cached. You can specify category cache:
cat_cache_size specifies the count of categories to retain cnt_type_cache_size because category is another content
Interaction Manager
One-To-One Database
T e c h n i c a l
W h i t e
P a p e r
S e r i e s
Performance Tuning
Observation Logs Tuning To perform customer profiling, we must record events (or observations) initiated by visitor actions. One-To-One provides an observation logging mechanism that logs raw data into a file that can later be aggregated and uploaded into observation database by utilities such as obs_dbload and obs_aggr. Any IO operation may impact the throughput of the system. You can configure the observation logging by turning it on/off:
observation_flag=1
To improve performance, the IM collects observation information and caches the data in a large buffer. It will write the data to the file system whenever the buffer is full or after a specified period of time. You can configure the time period in bv1to1.conf:
observation_flush_time=5
avoid this
Another way to optimize JavaScript performance is to store commonly used components in Session and Process objects. In this way you can avoid re-instantiating the components later.
Use JSPOPT
The utility jspopt optimizes Java scripts by stripping out the JavaScript and HTML comments, cleaning up white space, and removing the usage <%= syntax. Be sure not to modify the output file from jspopt and jspopt. It is an as is product and is not supported by BroadVision.
Use Fastconcat
Fastconcat is a C++ utility that provides fast string concatenation. Its usage is similar to concat().
T e c h n i c a l
W h i t e
P a p e r
S e r i e s
System Monitoring
High Availabilityor 7x24systems must be constantly monitored. One-ToOne provides some useful monitoring tools to monitor the system and gather statistics:
bvconf monitor reports the usage statistics of One-To-One
servers and processes. One of the common usages is: bvconf monitor which shows process, host, virtual memory size, resident memory size, CPU usage, number of lightweight processes, and so on.
bvconf monitor -m BV_DB_ STAT -a monitors the
One-To-One servers. You can also monitor the Operating System level information. Unix has several useful tools for monitoring systems:
top displays the top 15 processes on the system and periodically
updates this information. Raw CPU percentage is used to rank the processes. It will also display other information such as virtual memory size and resident memory size.
mpstat reports per-processor statistics in tabular form. It has
information such as percent user time, percent system time, percent wait time, and percent idle time.
ps reports the process status, process ID, virtual memory size,
T e c h n i c a l
W h i t e
P a p e r
S e r i e s
Product
SilkPerformer LoadRunner ETest, Eload WebLoad Web Performance Center WebStone WorkBench
Company
Segue Inc. Mercury Interactive RSW Inc. Radview Software Inc. Web Performance Center Silicon Graphics SES Inc.
Web Sites
www.segue.com www.merc-int.com www.rswsoftware.com www.webload.com www.webperfcenter.com www.sgi.com www.ses.com
Summary
Attaining optimal 7 x 24 system performance necessitates a high availability, high performance, scalable one-to-one system. In this document we outlined important points in the context of BroadVisions One-To-One application that will aid you in optimizing web site performance and meeting your strategic goals. In summary, plan your system carefully and conduct thorough stress and functional tests before deploying the system in production. It is important to deploy the right number of BroadVision server components in the right configuration. Configureand more importantly, maintainyour various BroadVision caches appropriately. Follow best coding practices when developing JSPs and BroadVision components. Rather than trying to embed all your business logic in JSPs, make use of C++ components and their multi-threading capabilities. Know your BroadVision APIsusing the right API calls at the right time will substantially improve your system performance. Remember that no amount of BroadVision performance tuning will yield the desired results unless you have carefully tuned your network, hardware, operating system, input/output, third-party application, andmost importantlyyour database.
About eFORCE
eFORCE specializes in the Design, Development, Migration/ Modernization, Maintenance and Support of IT products and solutions in the areas of Enterprise Portals, Digital Information Management, Customer Relationship Management, Enterprise Application Integration, Business Intelligence and Enterprise Infrastructure. Combining expertise in business architecture, technical architecture, design, deployment and maintenance, eFORCE delivers production-scale products/solutions that result in measurable ROI. eFORCE customers include leading Global 1000 end-users such as Alcatel, AT&T, Avaya, Baker Hughes, Bank of America, DHL, Fleet Bank, France Telecom, GE Capital, Hilton, HP, Janssen, Janus, Mazda, Mitsubishi, Novartis, Viacom, and Visa; and innovative Software Product companies such as Annexient, BEA Systems, Checkfree, GMS360, eTeam, Infonet, Matrics, MatrixOne, Netbrowser, Reuters and WorldGroup. eFORCE delivers solutions based on best-in-class enabling technologies such as ATG, BEA Systems, BroadVision, E.piphany, HP, IBM, Interwoven, Mercury, Netegrity, Savvion, Siebel Systems, Sun Microsystems, Microsoft, Oracle, Stellent, TIBCO, Verity and webMethods. eFORCE (www.eforceglobal.com) is headquartered in Silicon Valley, has Development Centers in North America, Europe and India, and, through its Global Delivery ModelTM, provides both onshore and offshore design and development as well as full lifecycle deployment, maintenance and support.
Bibliography
BroadVision One-To-One Enterprise Installation and Administration Guide BroadVision One-To-One Enterprise One-To-One Overview BroadVision Training, Advanced Scripting Best Practice
Contact eFORCE
510.265.5800 sales@eforceglobal.com
66