iad_genconfig.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. * ********************************************
  3. *
  4. * Licensed Materials - Property of IBM and/or HCL
  5. *
  6. * IBM Informix Dynamic Server
  7. * Copyright IBM Corporation 2010
  8. * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved.
  9. *
  10. * ********************************************
  11. */
  12. #include "API.h"
  13. #ifndef IAD_GENCONFIG_H
  14. #define IAD_GENCONFIG_H
  15. /* TPCC fixed costs
  16. * These costs were generated on Linux Opteron
  17. *
  18. * PLOGS_PER_SEC = # plog pages per cpu at fixed clock speed
  19. * PLOGS_PER_SEC_RTO = # plog pages per cpu at this clock speed
  20. * with RTO_SERVER_RESTART on
  21. * LLOGS_PER_SEC - # llog pages per cpu at fixed clocks speed
  22. * with RTO_SERVER_RESTART on
  23. * FIXED_CLOCK_SPEED - clock speed of machine used to determine
  24. * these rates
  25. * MIN_RUN_TIME = min time before plog or llog will recycle
  26. */
  27. double PLOGS_PER_SEC_RTO = 600;
  28. double PLOGS_PER_SEC = 80;
  29. double LLOGS_PER_SEC = 1200;
  30. double MIN_RUN_TIME = 300; /* 5 minutes */
  31. double FIXED_CLOCK_SPEED = 1996314023;
  32. /* default values */
  33. #define RTO_RESTART_POLICY (120) /* 2 minutes; units = seconds */
  34. #define DATA_LOSS_POLICY (1800) /* 30 minutes; units = seconds */
  35. int MEMORY_PER_ACTIVE_USER= (1*MB); /* prepare stmts, cursors, etc */
  36. int MEMORY_PER_DS_USER= (5*MB); /* joins, hash joins, etc */
  37. int DBMS_MEMORY_OVERHEAD= (50*MB);
  38. int ROOTDBS_OVERHEAD= (100*MB); /* 100 Mb */
  39. double TEMP_SPACE= (0.5); /* 20% of non log space */
  40. int PHYS_BUFF= (512);
  41. int RTO_PHYS_BUFF= (512);
  42. int LOGS_BUFF= (256);
  43. int LOCKS_PER_USER= (2000);
  44. double VP_MEM_CACHE= (0.20); /* 20% of memory / ncpus */
  45. #define MIN_BUFFERPOOL_SIZE (2000*is->machineconfig.pagesize)
  46. #define MIN_VP_MEM_CACHE (800) /* KB */
  47. #define MIN_LRUS (16)
  48. #define NUM_BUFFERS_PER_LRU (1024*10)
  49. #define DBMS_BOOT_OVERHEAD (45) /* 1 minute */
  50. #define MIN_PLOG_SIZE (0.20) /* 20% of the bufferpool */
  51. #define NUM_LOGFILES (8)
  52. #define MIN_DBSP_SIZE (100*MB)
  53. #define OFF_RECVRY_THREADS_PER_DISK (5)
  54. #define AIOVPS_PER_COOKED_FILE (2)
  55. #define LISTEN_THREADS_PER_USERS (150)
  56. #define TPCC_NBUFFERS_WH (51000)
  57. #define DBSP_OVERHEAD (1*MB) /* 2 Mb */
  58. #define NUM_LOGFILES (8)
  59. #define TEST_RW_SIZE (10*MB)
  60. #define TEST_RW_MAX_TIME (100) /* .5 Mb/sec is min disk speed */
  61. #define DFLT_LOGSIZE (4*MB) /* 4 Mb */
  62. #define DEF_NEGATIVE_ONE -1
  63. #define DEFBP_MAGIC 0x444154
  64. #define MAX_PAGESIZE 16*1024
  65. typedef struct buffpool_cfg
  66. {
  67. muint bpcfg_nbuffs; /* Max number of shared buffers */
  68. mint bpcfg_nlrus; /* number of LRU queues */
  69. double bpcfg_maxdirty; /* lru query begin cleaning limit */
  70. double bpcfg_mindirty; /* lru query end cleaning limit */
  71. mint bpcfg_pagesize; /* page size of buffer */
  72. mint bpcfg_flags; /* flags, example BPCFG_DEFAULT */
  73. }buffpool_cfg_t;
  74. EXPORT long STDCALL iadGetRecommendation(install_t *inst, int type);
  75. EXPORT char* STDCALL iadGetRecommendationString(install_t *inst, int type);
  76. EXPORT int STDCALL iadCalculateRecommendation(install_t *inst);
  77. EXPORT int STDCALL iadLoadRecommendation(install_t *inst);
  78. EXPORT int STDCALL iadUpdateRecommendation(install_t *inst, int type, const char *value);
  79. EXPORT int STDCALL iadLoadDefaultConfig(install_t *inst);
  80. EXPORT int STDCALL iadSetAutoConfig(install_t *inst, int type, const char *value);
  81. int InitAutoCfg(instance_t *inst);
  82. int measure_disk_speed(install_t *is);
  83. #endif /* IAD_GENCONFIG_H */