Buying Database Hardware

Report
Buying Database Hardware
Adam Backman – President
White Star Software, LLC.
About the speaker
 President – White Star Software
One of the oldest and most respected consulting and training
companies in the Progress OpenEdge sector
 Vice President – DBAppraise
Managed database services backed up by experienced Progress
OpenEdge professionals not rookies off the bench
 Author – Progress Software’s Expert Series
 Over 25 years of Progress OpenEdge experience
− Technical support
− Training
− Consulting (Database and System configuration, management
and tuning)
No need to buy hardware – Progress Pacific will take care of it!
Agenda
 Understanding system resources
 Picking the right vendor
 Where to spend your money
−
−
−
−
CPU fast vs. many
Memory – can you ever have too much
Disk – where all the data starts
Network and other parts of the system
 Conclusion
Understanding system resources
 Supported architectures
 Understand your options
 Performance tradeoffs
Main types of architectures supported by OpenEdge
 Database engine
− Database with no portion of the application
 Host-based system
− Database, clients and background all on one system
 Pure client/server
− Database on one machine and clients on other machines
 Part of an n-tier architecture
− Database and background on Machine A
− AppServers on Machine B
− Clients on individual machines
Understand your options






Single large system vs. 2 or more smaller machines
Virtualization
Single platform or multi-platform
Cloud vendors
SAN vs. Direct attached storage
Network considerations
Single large machine vs. 2 or more smaller machines
 Single large machine
− Pros
 Highest potential performance by eliminating network layer
 Easier to manage as everything is in one place
− Cons
 A single machine will have limited scalability
 Usually two mid-range systems are more cost effective than a
single high-end system
 Potential license cost issues (CPU-Based pricing)
Single large machine vs. 2 or more smaller machines (cont.)
 Multi-machine
− Pros
 Flexibility – ability to repurpose machines
 Scalability – ability to add additional machines to solution
 Recoverability – ability to use AppServer machine as the
database engine
− Cons
 Cost – duplication of items, power, maintnenace
 Adding network layer can hurt performance
 Management – more machines to manage
 Maintenance – more things to break
Purchase guidance
 Databases tend to use disk extensively
− Spend on disk subsystem
− Allow for a minimum of 10% of the database size for database
buffers (-B memory)
− Do not forget other memory allocations
 OS buffers can be reduced to 10% or less of total memory
 Applications are memory and CPU intensive
− Generally better to buy more cores vs. fewer faster cores but not
always some apps have major single-threaded operations
− Memory can greatly reduce I/O via –B -Bp -Bt, -mmax, …
 Examine your use cases for the machine and buy with both
primary use and most likely alternative uses in mind
Purchase guidance
 Most people over spend on CPU
 You can have all the CPU in the world but it will do you no
good unless you can get data to them efficiently
 People should focus on the performance “food chain”
−
−
−
−
Network
Disk
Memory
CPU
 Slower resources should be addressed before faster
resources
Virtualization
 Everyone is doing it but why?
− Ability to build new environments
− Ability to recover quickly (part of a DR solution)
− Reduction in common resource use per server
 Power
 Cooling
 Floor/rack space
− Potential for better resource saturation (unused CPU)
 Why not?
− Complexity
− Cost (VMWare is not free :-)
− More applications affected by an outage
Options: N-tier option
 Database engine
− Fast Disk
− Moderate memory (over 10% of DB + OS and extras)
− Relatively little CPU
 AppServer machine
− Internal disk – setup well but not crazy
− Higher memory usage
− CPU intensive
 Client machine
− Web/Mobile
− Desktops
− Citrix/Windows terminal server
Cloud: Make it someone else’s problem
Cloud
 Watch for variable performance
− Measure throughput (Disk and memory)
− Measure compute capacity
− Measure at different days/times
 Performance guaranty from vendor
 Iops/sec. vs. perception (real measurements)
 Amazon (HPC) high performance computing
Why is disk important





CPU capacity doubles every 18 months
Network bandwidth doubling every 12 months
Memory is 37,000+ times faster than disk
Disk (per disk I/O rate) fairly static (150 – 200 iops/sec.)
Storage will generally cost more than servers and this is
particularly true for database servers
Buy better storage
 Many disks
− 150 iops/sec. per disk
− Look at you buffer hit rate and total request load
− Don’t forget temporary file I/O which can account for a significant
percentage of your total I/O load
 Larger cache
− Some systems require you to expand cache when you expand
your storage but most don’t
− Adding cache is akin to adding database buffers to a database
 SSD – save money buy fewer devices
− SSDs are a real solution now and prices are competitive though
not cheap when compared to conventional storage on a per GB
basis
Do better disk configuration
 Still no RAID 5, No RAID S, No RAID 6, No RAID 7
 RAID 10 still king for database storage – really there are a
bunch of really cool stats to prove this out
 Large stripe widths
− Performance improved with stripe width through 2MB
 Use best portion of rotating disk (rotating rust)
− Using outer edge of disk will provide the best performance which
may be as much as 15% better vs. inner portion of disk
 Even usage across all disks
− Eliminate disk variance
− Think of ALL sources of I/O (DB, BI, AI, Temp files, OS, …)
Storage
 Direct attached
− Less expensive in most cases
− Less complex – Single machine tuning OS and Array
− High performance – Disks dedicated
 SAN – generalized business storage
 NAS – file optimized storage
 SAN – Purpose-built high performance
Why SAN twice? There is a huge difference in SANs and you
need to buy for your need not for their marketing
Direct-attached storage
 Pros
−
−
−
−
Not shared with other hosts (isolation is bliss)
Easier problem resolution
Massive controller throughput for little money
Cheaper to maintain
 Cons
− Not shared with other hosts (no cost sharing)
SAN: Generalized business storage
 Pros
− Best option in virtualized environment
− Share one powerful storage system with many hosts
− One stop storage system for all hosts
 Cons
−
−
−
−
High initial cost
Single point of failure unless array mirroring/clustering is in place
Not optimized to individual tasks
Complex
SAN: Purpose-built
 Pros:
−
−
−
−
−
Excellent performance
Additional control at array level
Massively scalable
Ability to dedicate resources to hosts
Reliable (fault tolerant)
 Cons
− Single point of failure unless array mirroring is in place
− Cost
− Complexity
SAN monitoring





More difficult as there are many moving parts
Multiple hosts need to be monitored
SAN needs to be monitored
Monitoring data needs to be synchronized
Work loads need to be balanced across hosts
NAS: file optimized storage
 Pros
− Sharable across hosts
− Generally cheaper than SAN
− Good service for application files
 Cons
− File optimized not block optimized
− Not database optimized
− Not client temporary file optimized
Storage network
 Should be isolated
− Physically
− Separate vlan if physical is not possible
 Use large MTU size (ALL must be the same)
−
−
−
−
Host
Guest
Switch
Array
Network options
 Simple
− Put a single quad card in the server and bind the ports for
performance
 Moderate
− Multiple cards bound with a two networks. One for Data and the
other for client traffic
 Complex
− Multiple machine
− Multiple networks (vlan)
− Dedicated networks for DB, replication, client traffic, AppServer
Network
 Try to use your network efficiently
− -Mm 8192 to increase throughput
− Remember to move to jumbo frames (client, server, switches, …)
 Move invasive processes to separate network
− Backup
− Replication
− System syncronizations
Picking the right vendor – The less of two evils
Picking the right vendor
 Better support nearly always beats a better upfront price
 Look at quality of “local” support infrastructure
− Response time (SLA)
− In country
− In the correct language
 Always comparison shop even if you “know” what you want
− This keeps vendors honest
− Choosing historic rivals helps drive down price
 Simplify to enhance support
− Bundle Linux support under hardware contract
− Single vendor simplicity
Paying for support
 Buy all support with the initial purchase
 Allows easier (capital) write-off
 Years 4+ of support can cost as much as the initial price if
purchased later
Picking the wrong solution
 NetApp for database storage. Performance will be nonoptimal
 NUMA Architecture – Good vendors make bad solutions
− All CPUs allocated to a Progress domain must come from the
same book/shelf/node
− All Memory must meet the same criteria as CPU
 Using client/server for reporting
− Kill the network access whenever possible
− Use AppServer for complex OLTP
Where to spend your money





Disks
Storage
SAN
SSD
Really, look at storage first then concern yourself with other
trivial issues such as memory and CPU
 This is the problem over 9 out of 10 times
Questions, Comments, …
Thank you for your time
THANK YOU

similar documents