How to determine the time out setting of mirroring? I know that the default TIMEOUT of database mirroring is 10 seconds if you do not change it. And I can use 

ALTER DATABASE [DatabaseName] SET PARTNER TIMEOUT 30


to change it to avoid 'accident alerts'. But I want to know, How long time is good for a production database? The 30s, 40s, 60s, or even 120s? Which condition is the most consideration?
Thanks in advance.
The best practice is to be 10 seconds or over for timeout because it could trigger a false failure otherwise, the rest depends on your environment and your requirements for disaster recovery and high availability. If you set the number too high, it will take longer for the failover to occur when you do have an issue. The business needs should drive the results, the results should not dictate business needs. 

Microsoft notes on the minimum.

SQL Sailor: Best practices and time outs for mirroring.

MSSQLTips: Greg Robidoux: DB Mirroring

SQL Central Discussion: Time outs for mirroring

To address what would be a good failover time, as I mentioned, it should be driven by your business requirements. Here are a few guides to developing those requirements:

Peak10: Carilyn Booker: DR and HA

Redgate: Joshua Feierman: DR and HA

Brent Ozar: DR and HA