Ben Curry - CISSP, SharePoint Server MVP

All MindsharpBlogs

http://www.microsoft.com/mspress/books/10623.aspx

My Links

Archives

Image Galleries

Blog Stats

Favorite SharePoint Books

My Favorite Blogs

Wednesday, July 16, 2008 #

Huntsville MOSSMOSIS Group with Jim Curry on August 20 - Web Content Management

Come on down to the Huntsville MOSSMOSIS Group on August 20th as our own James Curry presents Web Content Management in SharePoint Server 2007.  With SharePoint Server 2007, Microsoft has rolled in the content management features of their standalone CM product, Microsoft Content Management Server, enhancing and adding functionality along the way.  Come learn what MOSS 2007 has to offer in the arena of content management and, as always, enjoy a free lunch as well.

When/Where?
Wednesday, August 20 2008 - 9AM CST
Huntsville Botanical Gardens
 
Who Should Attend?
Developers, designers, power users, architects, and administrators.

What is the Agenda?
•  8:45AM: Coffee/Breakfast
•  9:00AM: Speaker
•  9:55AM: Break (5min) 
•  11:00AM: Lunch

James Curry is a respected computer scientist and consultant with over 15 years of programming experience. In his role as a Mindsharp instructor, James uses his knowledge of Microsoft products to provide students with a dynamic, hands-on classroom experience. He was a contributing author on the SharePoint Admin Pocket Consultant and SharePoint Server 2007 Best Practices books.

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

http://mindsharpblogs.com/ben

 

Come to the first ever SharePoint Best Practices Conference, Sept 15-17!

Register at http://www.sharepointbestpractices.com

 

posted @ 6:28 PM | Feedback (0)

Wednesday, July 09, 2008 #

Scripting SharePoint Server 2007 SP1 Bug

This is an update to the original post http://mindsharpblogs.com/ben/archive/2008/03/08/4411.aspx. Unfortunately, the SP1 installation media hooks psconfigui.exe when the config.xml display level is set to “Basic”. This should only lay down the bits. arghhh.

The only workaround I currently know is to set the display level to “none”, and wait for the setup.exe process to stop (taskmgr.exe or sysinternals tools) - not perfect. I've notified Microsoft and will udpate you as soon as I get something back.

I also have new farm build scripts coming in the next couple of weeks that are 'parameter-ized' that I just built for a customer. (thanks, Jerry Chappell!) I'll try to get those out asap in my free time. Todd Klindt has also been doing some scripting, maybe we can talk him into sharing his new finds.

If you haven't checked out the new best practices book, it's bigger than I thought it would be :-)

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

http://mindsharpblogs.com/ben

 

Come to the first ever SharePoint Best Practices Conference, Sept 15-17!

Register at http://www.sharepointbestpractices.com

 

posted @ 2:50 PM | Feedback (0)

Thursday, June 12, 2008 #

Microsoft Office SharePoint Server 2007 Best Practices Book

Finally! It looks like our new best practices book should ship around the first of July. Bill English and myself wrote a big chunk of the book, but we had tons of help from rock stars like Kathy Hughes (MVP), Paul Schaeflein, Daniel Webster (SharePoint Guru), Mark Ferraz (IA and Security), Paul Stork, Jim Curry, and Mark Schneider (PMP).

We want to publicly thank all of the folks who gave technical feedback and wrote fabulous real world sidebards: Todd Klindt (MVP), Steve Smith (MVP), Andrew Woodward (MVP), Todd Bleeker (MVP), Keith Richie (MVP), Bob Fox (MVP), Robert Bogue (MVP), Matthew McDermott (MVP),  Joel Oleson (well, give it time), Doron Bar-caspi (MSFT), Mike Watson (thanks, Mike!! - you rock), James Petrosky (wow, what doesn't he know?), Scott Edwards, Daniel Galant, Jack Dougher, Woodrow Windischman, Steve Mong, Eric Larson, Kuda Nhiwatiwa, Oleg Glubochansky, Satish Mathew (MSFT), Sean Livingston, and Frank Zakrajsek (MSFT).

Ross Brookshire, Don Scott, and John Moh are great MCS guys and tech reviewed much of the book - thanks a ton (and your free copy is on the way!)

This book was a ton of work, but we really think it is a great resource for the community. It isn't prescriptive best practices as much as design and architecture best practices. A prescriptive best practices guide for SharePoint Server 2007 would be 3000 pages, and outdated in 90 days. In the book, we tried to get people to 'think' about the way they were installing, more than giving guidance on a specific technology.We aren't saying there is only one way to do it, we are showing the reader the methodology to get the right answer. There is often more than one 'best practice', and only through proper planning, designing, and testing, will you know for sure. We DO give you a starting place, and whether you agree or disagree isn't the point - it is to start you in the right direction and challenge you to find the best practices for your specific implementation. 800 pages of SharePoint Server goodness...

Our book should be available for purchase in mid-June. You can pre-order your copy today at Amazon, Barnes & Noble and other retail outlets. We'll also have a best practices web site (which is not up yet) at http://www.sharepointbestpractices.com.

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

posted @ 4:01 PM | Feedback (2)

Monday, June 09, 2008 #

DeliverPoint 2007 offers FREE version with production license

DeliverPoint 2007 is now available for FREE with a full production license for a limited number of features. In this free version you'll enjoy the following features in your SharePoint Server 2007 deployment:

  • Security Trimmed interface
  • Discover Object Permissions
  • Properties reporting
  • Discover Account Permissions

I would encourage you to use DeliverPoint 2007 in your environment. It is the permissions tool that will help you significantly understand who has permissions to objects and sites with reporting capabilities.

If you have any questions about DeliverPoint 2007, please visit the web site at www.deliverpoint.com.

-ben

posted @ 3:51 PM | Feedback (0)

Monday, June 02, 2008 #

First SharePoint Best Practices and Governance Conference!

Mindsharp will be hosting the first SharePoint Best Practices and Governance Conference in Washington, DC on September 15-17.  We will be hosting this event in cooperation with Microsoft Press, who will be publishing the SharePoint Server 2007 Best Practices Deployment book, co-authored by myself, Bill English, Kathy Hughes and others. 

This should be a great conference, and we will be releasing the speaker roster in the next few weeks. As soon as we have the conference Web site up, I'll be sure to let you know. As a quick preview, we will be covering the 'why' of implementing portions of SharePoint, and then proving it with some real-world how to! Some areas to be covered are Governance, Branding, Customization, Web parts, Solutions, WCM, Taxonomies, Availability, Search, Document Management, and Capacity Planning.

Mark your calendars, and I hope to see you there.

Ben Curry, CISSP, SharePoint Server MVP

Mindsharp

http://mindsharpblogs.com/ben

 

posted @ 11:40 AM | Feedback (1)

Friday, May 23, 2008 #

Creating and Managing SharePoint Content Databases

I consider creating and managing content databases a two part excercise. First, design for availability. Second, design for performance. Before I move forward, consider the following 2 points:

1.      Service Level Agreements (SLAs). How long can your site collections be out of service? When designing your site collections it is important to remember that site collections are contained in content databases, and cannot span content databases. Consider the following when designing for site collection availability:

Recovery Time Objective - The recovery time objective (RTO) defines how long your system can be down before it is back online after a disruption. The disruption could be due to anything from a SQL Server outage to a WFE Server failure. The RTO should include data recovery at the server, farm, database, site, list, and item levels.

Recovery Point Objective - The recovery point objective (RPO) defines your data loss threshold, measured in time. If you run daily backups only and ignore the SQL Server transaction logs, then your RPO is 23 hours, 59 minutes, and 59 seconds. Any data written to SharePoint Server 2007 after you ran the backup cannot be restored via native tools until after the next backup. Many organizations assume this risk without fully understanding the impact of losing 24 hours worth of data.

 2.      Performance. You don't have to host all content databases on the same disks in your SQL Server. In fact, you don't even have to host them on the same SQL instance! For very large and/or busy site collections, you can host them on very fast disk using RAID 1+0 or 0+1 (depends on your speed vs. availability). You could then host the more generic site collections on less expensive configurations/disks, and assume more risk.

So, how do we begin our design? I would begin by calculating both the A. size and B. performance levels required. If you have a very fast site collection that is mostly read (think WCM / Publishing Site), then you need to optimize the data files on your SQL Server. That means a config like RAID 0+1 for super speed, or RAID 1+0 for more availability and decent speed. Your transaction logs won't matter as much. But, if you are designing for a highly-collaborative environment, then you probably want to optimize your transaction log files.

Microsoft often states that 100GB is the recommended maximum for a content database. This is mainly because small to medium shops may have difficulty maintaining, backing up, and restoring large content databases. But, let's be honest: You can't span content databases, so you are accepting a maximum Site Collection size of 100GB (or less if you count the 2nd stage recycle bin). Really? 100GB doesn't seem very big anymore :) If you need larger site collections, optimize SQL and rock on...

Update: There seems to be an issue with really large databases and large lists. See: http://blogs.msdn.com/toddca/archive/2008/03/23/database-disconnect-issues-with-sharepoint.aspx and http://joeloleson.spaces.live.com/blog/cns!B05AD15E2DE730DD!116.entry seems to still be valid.  I know you want to know more - so do I. Look for a blog coming on this in the near future!

There are some performance hits with large site collections, but these usually aren't that bad. Just be sure to test, test, test. Visual Studio works great for stress testing your site collection performance.

We also need to think through our SLAs when designing content databases/site collections. The two are inseparable and are designed simultaneously. SharePoint Server 2007 can adapt to a multi-tiered SLA arrangement at the site collection/content database levels. If you grouped site collections by their criticality in corresponding content databases, you can then use SQL Server tools to manage them to different support levels. The below picture shows a possible database design for hosting three different SLA levels within a single farm.

If you group site collections similar to what is shown in the above picture, then you can manage them accordingly. Level 1 site collections could have frequent SQL level backups and be mirrored to another SQL instance. Level 2 site collections might be transaction log shipped, and Level 3 site collections might be in simple recovery mode and backed up only once a day. Additionally, every level of content database could be on a different SQL Server instance, and on different disk subsystems. Note that this depicts a one-to-one relationship between a Level 1 site collection and a Level 1 content database. While this provides robust recovery and performance options, it does not scale well. (Microsoft recommends no more than 100 content databases per Web application)

Note: If you have already over-loaded and over-populated your content databases, check out Todd Klindt's blog here to learn how to move them around. (nice post, Todd!) Another best practice is to create multiple content databases to support multiple site collections. A very common mistake we see is customers creating all site collections in a single content database. This usually results from a lack of understanding about how the product should be architected and partially from the process of rapid deployments. All is not lost, however, if you have implemented this way. I feel obligated to explain an almost always misunderstood Central Administration interface. The first picture below shows a screen in Central Administration Application Management Content Databases to take a database offline. The second picture shows the status of the database as stopped after it has been taken offline.

These settings do not mean what they appear to mean. Taking a database offline merely blocks any new site collections from being created in it. It does not take the database offline as one might think. Users can still upload and download content, view Web pages, and process workflows. The content database status will also show as stopped. Once again, this means only that new site collections cannot be created in this database. If you want a one-to-one site collection to content database association, taking the hosting database offline is the best method to accomplish this.

 Cheers.

 

Ben Curry, CISSP, SharePoint Server MVP
Mindsharp
http://mindsharpblogs.com/ben
http://www.microsoft.com/MSpress/books/10623.aspx
http://www.microsoft.com/MSPress/books/12197.aspx

posted @ 10:10 PM | Feedback (3)

Tuesday, May 20, 2008 #

SharePoint Performance Quick Wins / Tips

In an attempt to blog shorter, but relevant and immediately useful 'stuff', I plan on blogging more, but with less rigidity.

So, here are a few tips to boost your SharePoint performance with very little effort.

1. Move your usage analysis files to a drive other than C:.

2. Move your IIS logs from C:

3. Move your Index from C:

4. Move your trace logs from C:

 (are you seeing the OOB pattern here that can kill your system drive performance?)

5. Consider if you really need to check anti-virus on upload and download. Maybe pick one that suits you best?

6. Don't round-trip Active Directory. In other words, use Kerberos when possible.

7. Don't round-trip SQL. In other words, BLOB cache, object cache, output cache, and IIS compress 12Hive files.

8. Put your data files and transaction log files on different spindles in SQL

9. Don't trace log unless you are troubleshooting, only eventvwr.exe. Of course, there are exceptions to this. But, be careful turning up event or trace logging too high. (don't even think about logging ALL for verbose and information!!)

10. If your Index server is also running other apps, consider de-tuning the indexer by reducing performance on the service (Central Administration, Operations, Services on Server)

11. Don't use auditing excessively, unless you have a valid business requirement

12. Use caution will 'roll-up' Web parts on very busy pages

13. Change the SQL default filegrowth settings

cheers.

-ben

posted @ 11:17 PM | Feedback (3)

Change the default SQL Server settings for performance

Did you know the default autogrow (filegrowth) settings for SQL Server is 1MB at a shot? That can really hurt your SharePoint Server performance. The best practice is to set the inital size to your max size, like 100GB. But, if you must use autogrow, here is a sample script you can run in SQL Server Management Studio. Note that it also sets the initial size. I would make that initial size something like 50GB.

Use Master;
Go
alter database Contoso_WSS_Content_Portal_01
modify file
(NAME = Contoso_WSS_Content_Portal_01,
SIZE = 1024MB,
MAXSIZE = 51200MB,
FILEGROWTH = 1024MB);
go

That will change the data file 'Contoso_WSS_Content_Portal_01' to 1GB initial size, with 1GB autogrow increments.

Thanks to Brian Alderman for the help tuning the above. Also, check out Mike Watson's blog here. He and Bill Baer really know their SQL!

Ben

posted @ 12:04 PM | Feedback (3)