Date post: | 28-Mar-2015 |
Category: |
Documents |
Upload: | tanner-carden |
View: | 226 times |
Download: | 0 times |
Buying Database Hardware
Adam Backman – PresidentWhite Star Software, LLC.
About the speaker
President – White Star SoftwareOne 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 non-optimal
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, …
Vragen
Galderak
Kysym
ykt问题
질문
Вопросы
Preguntas
THANK YOU
Thank you for your time