Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka

94 Aufrufe

Veröffentlicht am

FileMaker Performance Update

Veröffentlicht in: Bildung
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka

  1. 1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com Performance Questions, Test Results, and Recent Experience HOnza Koudelka FileMaker Performance Update 2019
  2. 2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka HOnza Koudelka • Co-founder and co-owner of 24U Software,
 FBA Platinum Member • Developing FileMaker solutions since 1991 • FileMaker 8, 10, 11, 12, 13, 14, 15, 16, 17, 18
 Certified Developer • Team of other certified developers • Winner of the FileMaker DevCon 2015 Developer Cup • FileMaker Mad Dog Award 2011 winner • Mad Optimizer and Achiever of the Impossible… • Vendor session speaker at FileMaker DevCon, spoke at Pause[x]London and Pause[x]Berlin, and remotely at PauseOnError Portland • FileMaker Konferenz 2016, 2017, and 2018 speaker
  3. 3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Agenda • Key Discoveries from Previous Years • Automated Test Results • Recent Experience & Under the Hood • Benchmarking Techniques • Optimization Techniques • Questions & Answers
  4. 4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Key Discoveries from Previous Years • Large amounts of text • Container vs text (danger of Base64) • Server-side scripts considerations • Spider vs Anchor/Buoy vs Selector-Connector • Structure impact on Set Field performance • Slow network impact • Layout rendering • Expensive objects • Conditional formatting • Relationship sorting • Data API vs PHP API
  5. 5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Why Performance Lab? • Perceived speed defines what’s important • Technical speed makes things possible
  6. 6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Huge Amounts of Text Not Good
  7. 7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Beware Base64 • Real experience from a customer • Huge containers can be stored as text • Doing so can have fatal impact on performance
  8. 8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka PSOS is a FMS Client
  9. 9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMSE shares resources with FMS Indexed Unindexed
  10. 10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Spider vs Anchor/Buoy vs Selector-Connector nav_code NAV_selecte PREFS_org account_nam PREFS_user gTaskCont GLOBALS_to context TASKS EVT_sessions_to_session_signup g_Registrant_relationship_code NRRTS_PREFS_registrant_code fk_party_ID NRRTS_people_registrant_link AS_parent_organizations AS_branch_organizations AS_employees g_nav_code_ g_current_a NAV_navigat AS_address_SHIP AS_address_PUBLISH AS_address_RENEW ethics DMERC_assignments NRRTS_PREFS pk_party_ID NRRTS_parties_by_registrant_link fk_party_ID fk_tag_ID PUB_tag_link_ad g_marketing_relatio… PUB_prefs_advertis… pk_party_ID PUB_advertiser_parties AS_organizations fk_party_ID PUB_advertiser_orgs fk_party_ID QUICKFIND_people_DMERC_display pk_tag_ID QUICKFIND_relationship_tags_display pk_party_ID QUICKFIND_parties_ADVERTISERS_display GLOBALS_to_parties AS_parties_receive_ad_invoice AS_SSNs AS_CCARDS PUB_publications GLOBALS_to_people globals FORMS_globa signatures_to_form_globals DISP_email_primary DISP_people_self_by_global globals_to_people_name_filter EVT_events EVT_fees EVT_sessions_to_events AS_parties_subordinates FON_apps_complimentary fon_parties_complimentary AS_voice_subordinates FON_ledger_to_enrollment PUB_ledger_expense PUB_ledger_all PUB_ad_rates PUB_ledger_income TAGS GLOBALS_to_event_session_signup AS_people PUB_comm_outgoing_PUSH AS_address_PHYSICAL FON_enrollment fk_event_ID fk_party_ID pk_registration_ID gUnique_key EVT_attendance AS_parties_parent FON_comm_outgoing_PUSH EVT_comm_outgoing_PUSH EVT_session_signup_to_attendance EVT_session_comm_outgoin… CECs NRRTS_Credentialing NRRTS_crts_history AS_parties_selfjoin AS_address_ALL AS_address_FILTERED AS_address_MAIL PUB_parties_invoice_recipient PUB_parties_ad_representative AS_email_ALL AS_email_PUBLISH AS_email_primary AS_phones_ALL AS_phones_office_voice AS_phones_office_fax AS_phones_home_fax AS_phone_voice_publish AS_phones_fax_publish AS_phone_tollfree_publish COMMUNICATIONS_outgoing AS_comm_outgoing_PUSH CODE128E TAG_LINKS_to_parties fk_party_ID fk_tag_ID NRRTS_tag_link_registrant FON_apps NRRTS_comm_outgoing_PUSH CEC_to_nrrts_apps_by_lookback_date GLOBALS_to_nrrts_apps_by_renew_date CEC_to_nrrts_apps_by_RESNA_effectiv… NRRTS_parties_DMERC NRRTS_ledger_to_apps NRRTS_apps_self NRRTS_app_recommend CEC_to_nrrts_apps_by_app_ID NRRTS_affiliations_to_current_app fk_registry_affiliation_ID is_current NRRTS_apps_CURRENT signature_graphics NRRTS_apps fk_registry_affiliation_ID reg_period_begin_date reg_period_end_date NRRTS_apps_by_date_range fk_party_ID pk_nrrts_registry_ID constant cCurrentDate NRRTS_affiliations fk_registry_affiliation_ID is_complete nrrts_apps_COMPLETE AS_address_RESIDENCE DMERC_people fk_3rd_party_adv_inv… fk_parent_party_ID pk_party_ID gLocation_display_key gUnique_key constant creator database_status fk_3rd_party_adv_inv… fk_parent_party_ID location_valueListBuil… member_code_OLD modifier AS_parties globals_to_letter_templates_CROSS DMERC_region_link AS_address_OFFICE PUB_advertising letter_templates fSignup_attend_ADDRESS_mail pk_party_ID constant fPARTY fAttend_ADDRESS_office CODE128E fAttend_PERSON fAttend_PARTY fAttend_EVENTS EVT_sessions_to_events EVT_fees fSignup_attend_PARTY fSignup_attend_EVENT fSignup_attend_EMAIL fSignup_attend_PERSON fSignup_attend_PHONE_office fSignup_attend_PHONE_fax fSignup_ATTEND fSignup_SESSIONS fRegistry_ADDRESS_mail fRegistry_NRRTSAPP fRegistry_nrrtsapp_PARTY_dmerc fRegistry_PERSON fNrrtsapp_EMAIL_primary fk_DMERC_ID fk_party_ID fk_registry_affiliatio… pk_app_ID is_current reg_period_begin_d… reg_period_end_date constant cApp_deadline_date cLookback_date fNRRTSAPP fk_party_ID pk_nrrts_registry_ID constant fREGISTRY fParty_PERSON fParty_ORG fParty_PHONE_office_voice fParty_PHONE_voice_publish fParty_PHONE_office_fax fParty_PHONE_fax_publish fParty_PHONE_home_fax fParty_EMAIL_primary fParty_EMAIL_publish fParty_ADDRESS_publish fParty_ADDRESS_renew fParty_ADDRESS_mail fParty_ADDRESS_ship fComm_PARTY fComm_PERSON fComm_ADDRESS_mail fComm_PHONE_office_fax fComm_PHONE_home_fax fFon_PARTY fFon_SELF_primary_comp fFon_SELF_comp fFon_party_PHONE_voice_publish fFon_party_EMAIL_publish fFon_party_ADDRESS_mail fFon_party_ADDRESS_publish fFon_party_PHONE_fax_publish fFon_PERSON fFon_fon_primary_comp_PARTY fFon_fon_comp_PARTY fFon_fon_primary_comp_A fFon_fon_primary_comp_PE fNrrtsapp_PHONE_officeFax fNrrtsapp_ADDRESS_mail fNrrtsapp_ADDRESS_renew fNrrtsapp_PERSON fNrrtsapp_TAGLINK_dmerc fNnrrtsapp_PEOPLE_dmerc fNrrtsapp_REGISTRY fNrrtsapp_RECOMMEND fRegistry_PARTY fNrrtsapp_PARTY fk_party_ID pk_fon_affiliation_ID fFON fNrrtsapp_CEC_AppID fNrrtsapp_CEC_renewalDate fNrrtsapp_CEC_lookbackDate Enclosure fk_party_ID fCOMM fk_event_ID fk_party_ID pk_registration_ID constant fATTEND fNrrtsapp_SELF fk_registration_ID fk_session_ID fSIGNUP fComm_NRRTSAPP
  11. 11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Time to Perform Script on Server Spider Anchor/Buoy Selector Connector
  12. 12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Layout rendering
  13. 13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Layout rendering
  14. 14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Layout rendering • Repeating text field replaced button bar (86.8 % saved) • TextColor replaced conditional formatting • Optimized condition calculation
  15. 15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Slow network impact
  16. 16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka 24U Collector Optimization 10.9 x faster on LAN 2.4 x faster on 3G
  17. 17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Notifications are sent… • from server to client as part of reply to next client’s request • whenever a change is committed • to every client having the file open (even hidden) • about every record (unless entire table is changed) • in about 32K chunks • without actual record data • another reason for using transactions
  18. 18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Data API vs PHP API • PHP API is based on Tomcat • Data API is based on Node.js • Data API is supposed to be faster and more stable • PHP API is deprecated and disabled by default • Data API requires HTTPS only, PHP API allows HTTP
  19. 19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Data API vs PHP API
  20. 20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Data API vs PHP API
  21. 21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka WPE after trying to fetch 300k records
  22. 22. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File • Posted in FileMaker Community • Blank layout • Isolated table occurrence • No records in any table • Open locally in FileMaker Pro Advanced • Creating 100 records in a loop takes… 30 seconds
  23. 23. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File • 1037 relationships • 1004 in this TOG • 690 around this TO • 7 hops longest path
  24. 24. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File
  25. 25. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File
  26. 26. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File 1037 1116 1194 7516 9701 Total number of relationships
  27. 27. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File • large number of relationships all depend on the contents of one field • FileMaker looks for all the possible combinations of relationships that can be invalidated because that field changes • That information is not in the join graph but in the field dependencies stored as part of the field definitions. • Roughly 27,000 possible joins that could be affected • Higher level view code looks at all affected TOs and checks to see if any base tables of those TOs are currently in any window and if there are any portals • => Potential for optimization in future versions
  28. 28. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FileMaker 17 & 18 Test Results ? =
  29. 29. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Automated tests performed • Export & Import Records as tab delimited text • Creating records with a lot of text • Sort Records by indexed/unindexed field • Perform Find • indexed vs unindexed field • small vs large result found set • number vs text • unique vs common values • Replace Field Contents vs Looped Set Field • Summary fields vs Aggregate functions vs ExecuteSQL • Delete All Records, Truncate Table, Delete All Found Records (leaving one record) • 5, 10, and 15 concurrent sessions • File open/close and record creation speed with massive spider graph (© VincentL) 45 594 new tests (219 918 total)
  30. 30. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Test Equipment • Mac Pro (early 2008) • 2 x 2,8 GHz Intel Xeon • 16 GB RAM • Mechanical 7200RPM SATA drives • Separate drive for data • macOS 10.13 High Sierra • FileMaker Server versions 17 and 18 • FileMaker Pro Advanced 17 and 18
  31. 31. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka New: FileMaker Cloud • FileMaker Cloud for AWS 1.18 • 5-user license • The minimum offered t2.medium instance • Default settings • Hosted in Frankfurt • FileMaker Cloud 2 • FBA trial 5-user license • Cloud Compute: Medium • Hosted in USA
  32. 32. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka What was NOT tested • Multiple users (concurrent sessions simulated by multiple server-side scripts) • Working with container fields • Exact amounts of data transferred between client and server • FileMaker Go • FileMaker WebDirect • XML / PHP / ODBC / JDBC connections • Two-machine deployment • Disabled SSL • Server-side schedules, including backup schedules • Different cache sizes and other configuration differences
  33. 33. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued
  34. 34. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued
  35. 35. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued
  36. 36. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Insanely Slow File: Continued • Huge impact on locally opened file or over network • Minimum impact on faceless server-side processing • Number of dependencies has higher impact than number of relationships
  37. 37. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  38. 38. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  39. 39. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  40. 40. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database
  41. 41. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database Using 9 x string start match
  42. 42. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA with Locally Open Database Using 9 x string start match
  43. 43. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA connecting to server
  44. 44. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA connecting to server Best result Worst result
  45. 45. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FMPA connecting to server
  46. 46. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Concurrent Sessions/Users Simulated
 by PSOS
  47. 47. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Test Set • Export 10 000 records as TDT • Import 10 000 records from TDT • Various sorts • Calculating totals • Various finds • Deleting all records • Everything in 5 iterations • Multiple PSOS sessions concurrently • Each session accessing only its own records
  48. 48. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Sessions Interference Exports Imports Other Deletes Exports Imports Other Deletes Exports Imports Other Deletes Exports Imports Other Deletes
  49. 49. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  50. 50. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  51. 51. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  52. 52. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Exporting 10 000 records 5 times
  53. 53. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times
  54. 54. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times
  55. 55. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times 36 minutes 6 minutes 16 minutes 16 minutes
  56. 56. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Importing 10 000 records 5 times 27 hours 4 hours
 46 minutes 7 hours
 46 minutes9 hours
  57. 57. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Replace in 10 000 records
  58. 58. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Replace in 10 000 records
  59. 59. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Looped Set Field in 10 000 records
  60. 60. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Looped Set Field in 10 000 records
  61. 61. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Find 90 % of records by unindexed field
  62. 62. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Find 90 % of records by unindexed field
  63. 63. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Delete 10 000 records
  64. 64. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Delete 10 000 records
  65. 65. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Complete Test Set (575 tests)
  66. 66. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Complete Test Set (575 tests)
  67. 67. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka FileMaker Cloud Compute Limits This warning means you’re consuming CPU credits and your FileMaker Cloud instance may become very slow soon.
  68. 68. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Bonus Slides (Not Presented at FMK) After I presented my session at FMK I had a chance to get more info from Claris in relationship to the FileMaker Cloud performance. I also performed another series of 34394 tests on both FileMaker Cloud 1 and FileMaker Cloud 2. This extra information is so important that I have decided to add it here in the form of a few extra slides for your benefit. I have also amended the slide with links to external resources, so make sure to check them out.
  69. 69. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka CPU Credits Explained • Your cloud instance earns defined CPU credits every millisecond • t2.medium earns 24 credits per hour • Your cloud instance consumes credits depending on how much processing power it uses • Every kind/size of instance has defined a baseline performance • Baseline performance means the amount of CPU usage that consumes exactly the same amount of credits that are earned • t2.medium has 2 vCPUs and baseline performance of 20 % per vCPU • When you’re utilizing less than baseline performance, you’re accruing credits • When you’re utilizing more than baseline perofrmance, you’re spending credits • You cannot accrue more than X credits • t2.medium has the limit set to 576 • You accrue the maximum if you leave it idle for 24 hours • When you have no credits left, your performance gets limited to baseline via throttling
  70. 70. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka CPU Credits Testing FM Cloud 1.18 This is how my tests utilized AWS CPU credits on FM Cloud 1.18. I had enough accumulated CPU credits, so my whole test finished before consuming them all.
  71. 71. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka CPU Credits Testing FM Cloud 2.18 On FM Cloud 2.18 however
 my tests were affected by consuming all CPU credits
  72. 72. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka So I added this after each test… …and executed another series of tests. But this time, instead of having all tests run from within one main server-side script, I am now running N simultaneous scripts for one test and don’t start the next test until all are done.
  73. 73. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Standard Test Time in Seconds (FM Cloud 2)1x PSOS 1h40m 9h20m 4h 5x PSOS 10x PSOS The chart shows time in seconds consumed by the “standard test”, reflecting the CPU power actually available to the current script session. This seems like I have consumed all CPU credits after the tests were running for about 11 hours.
  74. 74. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Same test running on FM Cloud 1.18 This time my tests consumed the CPU credits even on FM Cloud 1.18
  75. 75. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Standard Test Time in Seconds (FM Cloud 1)1x PSOS 1h45m 1h30m 10h45m 5x PSOS 10x PSOS Just like with FM Cloud 2, 5 concurrent scripts seem to share the CPU, so standard test time is longer than with 1 script, but after consuming all CPU credits it increases dramatically.
  76. 76. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Recent Experience & Under the Hood • Cache Allocation Setting • Printing with Merge Fields • SSD Performance Trap • Master Record Lists & Found Sets • Startup Restoration & Page Level Locking
  77. 77. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Cache Allocation Setting • Customer from Pensylvania turned to us to help them with a performance issue • Their FileMaker Server was becoming so slow that they could not use it • Restart always resolved it but only for a day or two • Serving around 100 users, 48 out of 56 GB was used for FMS cache • Decreasing the cache setting to 8 GB stabilized the server at max performance 2 GB Windows 56 GB Total RAM 1 GB Apps 48 GB FMS Cache 5 GB left for FMS Only 50 MB per user!
  78. 78. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Cache Allocation Setting • Customer from Pensylvania turned to us to help them with a performance issue • Their FileMaker Server was becoming so slow that they could not use it • Restart always resolved it but only for a day or two • Serving around 100 users, 56 out of 64 GB was used for FMS cache • Decreasing the cache setting to 8 GB stabilized the server at max performance 2 GB Windows 56 GB Total RAM 1 GB Apps 8 GB FMS Cache 45 GB left for FMS 450 MB per user :-)
  79. 79. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Cache Allocation Setting • Customer from Pensylvania turned to us to help them with a performance issue • Their FileMaker Server was becoming so slow that they could not use it • Restart always resolved it but only for a day or two • Serving around 100 users, 56 out of 64 GB was used for FMS cache • Decreasing the cache setting to 8 GB stabilized the server at max performance 2 GB Windows 56 GB Total RAM 1 GB Apps 8 GB FMS Cache 45 GB left for FMS 450 MB per user :-) fmsadmin set serverconfig cachesize=8192
  80. 80. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields • Same customer wanted to improve printing speed • Report layout was taking up to 3 minutes to print • Nothing obvious to optimize in the script
  81. 81. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields • Same customer wanted to improve printing speed • Report layout was taking up to 3 minutes to print • Nothing obvious to optimize in the script 01 min 52.319366 sec
  82. 82. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields
  83. 83. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Printing with Merge Fields 3.446686 sec
  84. 84. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka SSD Performance Trap
  85. 85. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka SSD Performance Trap 0 125 250 375 500 130 120 110 100 90 80 70 60 50 40 30 20 10 20 30 40 50 60 70 80 90 100 110 120 130 Write speed depending on empty space on iSystem (iWork had 95 GB free all the time) Writepseed(MB/s) Space available on iSystem (GB)
  86. 86. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record Lists & Found Sets • Record lists represented as bitmaps • Not one bitmap for all records - sparse list of tagged bitmaps • Each bitmap is tagged with its starting row key • No bitmap if records are too sparse • One record takes at least 1 bit and at most 8 bytes • You would have to create over 512 trillion records to reach the max • 4 bytes average under 4 million records • Creating and deleting records can have impact on performance • Significant only when there are many sparse records • Deleting all records from a table should recover initial performance
  87. 87. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Starting Record ID Records Bitmap 1 11111111111111111111111111111111 2 bytes 32 bits = 4 bytes 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 6 bytes total
  88. 88. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 2 4 5 7 9 10 11 12 14 15 16 Starting Record ID Records Bitmap 2 1011010111101111110110111011 2 bytes 28 bits = 4 bytes 17 18 19 21 22 24 25 26 28 29 6 bytes total
  89. 89. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 2 14 15 16 Starting Record ID Records Bitmap 2 1 17 1110110111011 4 bytes 1 + 13 bits = 3 bytes 17 18 19 21 22 24 25 26 28 29 7 bytes total
  90. 90. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Record List in Detail (simplified) 2 14 Starting Record ID Records Bitmap 2 1 17 1110110111011 4 bytes 1 + 13 bits = 1 + 2 bytes = 3 bytes 19 21 22 24 25 26 28 29 7 bytes total
  91. 91. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Startup Restoration & Page Level Locking • New features of FileMaker Server 18 • FileMaker DevCon 2019 session:
 Under the Hood Exploring FileMaker Server 18’s Performance Features [SHA06]
 Mainly from the 43rd minute • Enabled or disabled together • Positive impact - User requests not waiting in queue • When accessing different pages • Negative impact - Change commits taking longer - there’s more to do • Dedicated SSD for restoration log recommended • Serious issues reported as of 18v2 • Temp file corruption • Persistent lock on client disconnect • Restoration not happening after killing fmserverd
  92. 92. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  93. 93. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  94. 94. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  95. 95. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  96. 96. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  97. 97. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  98. 98. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  99. 99. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  100. 100. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  101. 101. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  102. 102. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Page Level Locking in Detail User 1 User 2
  103. 103. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Benchmarking Techniques • Scripts • 24U FM Bench • Get ( CurrentTimeUTCMilliseconds ) • Calculations • 24U FM Bench • Toolbox_GetTimestamp (microseconds) • Layouts & other • Unstored calculations + OnTimer script trigger • Binary Splitting • Top Call Stats • Network Link Conditioner • NetworkMonitor Tool
  104. 104. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Top Optimization Techniques • Remove it if you don’t need it • Script layouts • Virtual List • Perform Script On Server (or server-side queue) • Pre-calculated summaries • Simpler relationship graph • Calculated text color instead of conditional formatting • Card window instead of popover • Avoid too many button bars • Sort portal instead of relationship • New table with fewer fields • Conditional Set Field • Transactions (Look for Todd Geist’s articles and videos) • Local File Editing (“Being Optimist in Pesimistic World” by Vince Menanno)
  105. 105. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka More resources • FileMaker Community > Search for Performance • FileMaker DevCon Session Recordings, especially Under The Hood sessions (youtube.com/claris) • Skeleton Key: “Improving FileMaker Custom App Performance” (https://youtu.be/D7LmguEcStY) • FileMaker Transactions by Todd Geist (ModularFileMaker.org) • “Decreasing FileMaker Network Traffic” by Vince Menanno (FileMakerProGurus.com) • FileMaker Optimizers LinkedIn Group (FMOptimizers.com) • 24U FM Bench (FMBench.com) • Big-O Cheat Sheet (bigocheatsheet.com) • A Gentle Introduction to Algorithm Complexity Analysis (discrete.gr/complexity/) • Enabling HTTPS Without Sacrificing Your Web Performance by Billy Hoffmann
 (https://zoompf.com/blog/2014/12/optimizing-tls-handshake/) • AWS CPU Credits and Baseline Performance for Burstable Performance Instances
 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html) • Ask for consultation at honza@24uSoftware.com or 24usw.com/consult
  106. 106. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Feedback 24usw.com/pfup
  107. 107. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 FileMaker Performance Update 2019 | HOnza Koudelka Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages

×