/* * ******************************************** * * Licensed Materials - Property of IBM and/or HCL * * IBM Informix Dynamic Server * Copyright IBM Corporation 2010 * (c) Copyright HCL Technologies Ltd. 2017. All Rights Reserved. * * ******************************************** */ #include "API.h" #ifndef IAD_GENCONFIG_H #define IAD_GENCONFIG_H /* TPCC fixed costs * These costs were generated on Linux Opteron * * PLOGS_PER_SEC = # plog pages per cpu at fixed clock speed * PLOGS_PER_SEC_RTO = # plog pages per cpu at this clock speed * with RTO_SERVER_RESTART on * LLOGS_PER_SEC - # llog pages per cpu at fixed clocks speed * with RTO_SERVER_RESTART on * FIXED_CLOCK_SPEED - clock speed of machine used to determine * these rates * MIN_RUN_TIME = min time before plog or llog will recycle */ double PLOGS_PER_SEC_RTO = 600; double PLOGS_PER_SEC = 80; double LLOGS_PER_SEC = 1200; double MIN_RUN_TIME = 300; /* 5 minutes */ double FIXED_CLOCK_SPEED = 1996314023; /* default values */ #define RTO_RESTART_POLICY (120) /* 2 minutes; units = seconds */ #define DATA_LOSS_POLICY (1800) /* 30 minutes; units = seconds */ int MEMORY_PER_ACTIVE_USER= (1*MB); /* prepare stmts, cursors, etc */ int MEMORY_PER_DS_USER= (5*MB); /* joins, hash joins, etc */ int DBMS_MEMORY_OVERHEAD= (50*MB); int ROOTDBS_OVERHEAD= (100*MB); /* 100 Mb */ double TEMP_SPACE= (0.5); /* 20% of non log space */ int PHYS_BUFF= (512); int RTO_PHYS_BUFF= (512); int LOGS_BUFF= (256); int LOCKS_PER_USER= (2000); double VP_MEM_CACHE= (0.20); /* 20% of memory / ncpus */ #define MIN_BUFFERPOOL_SIZE (2000*is->machineconfig.pagesize) #define MIN_VP_MEM_CACHE (800) /* KB */ #define MIN_LRUS (16) #define NUM_BUFFERS_PER_LRU (1024*10) #define DBMS_BOOT_OVERHEAD (45) /* 1 minute */ #define MIN_PLOG_SIZE (0.20) /* 20% of the bufferpool */ #define NUM_LOGFILES (8) #define MIN_DBSP_SIZE (100*MB) #define OFF_RECVRY_THREADS_PER_DISK (5) #define AIOVPS_PER_COOKED_FILE (2) #define LISTEN_THREADS_PER_USERS (150) #define TPCC_NBUFFERS_WH (51000) #define DBSP_OVERHEAD (1*MB) /* 2 Mb */ #define NUM_LOGFILES (8) #define TEST_RW_SIZE (10*MB) #define TEST_RW_MAX_TIME (100) /* .5 Mb/sec is min disk speed */ #define DFLT_LOGSIZE (4*MB) /* 4 Mb */ #define DEF_NEGATIVE_ONE -1 #define DEFBP_MAGIC 0x444154 #define MAX_PAGESIZE 16*1024 typedef struct buffpool_cfg { muint bpcfg_nbuffs; /* Max number of shared buffers */ mint bpcfg_nlrus; /* number of LRU queues */ double bpcfg_maxdirty; /* lru query begin cleaning limit */ double bpcfg_mindirty; /* lru query end cleaning limit */ mint bpcfg_pagesize; /* page size of buffer */ mint bpcfg_flags; /* flags, example BPCFG_DEFAULT */ }buffpool_cfg_t; EXPORT long STDCALL iadGetRecommendation(install_t *inst, int type); EXPORT char* STDCALL iadGetRecommendationString(install_t *inst, int type); EXPORT int STDCALL iadCalculateRecommendation(install_t *inst); EXPORT int STDCALL iadLoadRecommendation(install_t *inst); EXPORT int STDCALL iadUpdateRecommendation(install_t *inst, int type, const char *value); EXPORT int STDCALL iadLoadDefaultConfig(install_t *inst); EXPORT int STDCALL iadSetAutoConfig(install_t *inst, int type, const char *value); int InitAutoCfg(instance_t *inst); int measure_disk_speed(install_t *is); #endif /* IAD_GENCONFIG_H */