|
|
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Не устраивает быстродействие IDS 9.30 (Solaris 8/4x1GHz Sparc/8GB ОЗУ). Я собрал статистику за 3,5 ч. работы под типичной нагрузкой, она в прицепе (слегка урезанная), онконфиг прямо тут. Хотел бы услышать ваши соображения на этот счет. # Root Dbspace Configuration ROOTNAME rootdbs # Root dbspace name ROOTPATH /ifxdev/disk00/disk00 # Path for device containing root dbspace ROOTOFFSET 10 # Offset of root dbspace into device (Kbytes) ROOTSIZE 2000000 # Size of root dbspace (Kbytes) # Disk Mirroring Configuration Parameters MIRROR 1 # Mirroring flag (Yes = 1, No = 0) MIRRORPATH /ifxdev/disk00m/disk00m # Path for device containing mirrored root MIRROROFFSET 10 # Offset into mirrored device (Kbytes) # Physical Log Configuration PHYSDBS rootdbs # Location (dbspace) of physical log PHYSFILE 300000 # Physical log file size (Kbytes) # Logical Log Configuration LOGFILES 25 # Number of logical log files LOGSIZE 150000 # Logical log size (Kbytes) # Diagnostics MSGPATH /export/home/informix/log/online.log # System message log file path CONSOLE /export/home/informix/log/console.log # System console message path ALARMPROGRAM /export/home/informix/etc/log_full.sh # Alarm program path #ALARMPROGRAM /export/home/informix/bin2/event_ol TBLSPACE_STATS 0 # Maintain tblspace statistics # System Archive Tape Device TAPEDEV /export/home/informix/dev/tapedev # Tape device path TAPEBLK 16 # Tape block size (Kbytes) TAPESIZE 20480000 # Maximum amount of data to put on tape (Kbytes) # Log Archive Tape Device LTAPEDEV /export/home/informix/dev/ltapedev # Log tape device path LTAPEBLK 16 # Log tape block size (Kbytes) LTAPESIZE 2048000 # Max amount of data to put on log tape (Kbytes) # Optical STAGEBLOB # Informix Dynamic Server 2000 staging area # System Configuration SERVERNUM 0 # Unique id corresponding to a OnLine instance DBSERVERNAME hdesk_on # Name of default database server DBSERVERALIASES hdesk # List of alternate dbservernames NETTYPE ipcshm,2,50,CPU # Configure poll thread(s) for nettype NETTYPE tlitcp,2,100,NET # Configure poll thread(s) for nettype DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env. RESIDENT 1 # Forced residency flag (Yes = 1, No = 0) MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor NUMCPUVPS 16 # Number of user (cpu) vps SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one NOAGE 0 # Process aging AFF_SPROC 0 # Affinity start processor AFF_NPROCS 4 # Affinity number of processors # Shared Memory Parameters LOCKS 400000 # Maximum number of locks BUFFERS 1500000 # Maximum number of shared buffers NUMAIOVPS 16 # Number of IO vps PHYSBUFF 64 # Physical log buffer size (Kbytes) LOGBUFF 64 # Logical log buffer size (Kbytes) CLEANERS 100 # Number of buffer cleaner processes SHMBASE 0xa000000 # Shared memory base address SHMVIRTSIZE 8192 # initial virtual shared memory segment size SHMADD 8192 # Size of new shared memory segments (Kbytes) SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited CKPTINTVL 300 # Check point interval (in sec) LRUS 100 # Number of LRU queues LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit LTXHWM 45 # Long transaction high water mark percentage LTXEHWM 54 # Long transaction high water mark (exclusive) TXTIMEOUT 0x12c # Transaction timeout (in sec) STACKSIZE 64 # Stack size (Kbytes) # System Page Size # BUFFSIZE - OnLine no longer supports this configuration parameter. # To determine the page size used by OnLine on your platform # see the last line of output from the command, 'onstat -b'. # Recovery Variables # OFF_RECVRY_THREADS: # Number of parallel worker threads during fast recovery or an offline restore. # ON_RECVRY_THREADS: # Number of parallel worker threads during an online restore. OFF_RECVRY_THREADS 1 # Default number of offline worker threads ON_RECVRY_THREADS 1 # Default number of online worker threads # Data Replication Variables DRINTERVAL 30 # DR max time between DR buffer flushes (in sec) DRTIMEOUT 30 # DR network timeout (in sec) DRLOSTFOUND /export/home/informix/etc/dr.lostfound # DR lost+found file path # CDR Variables CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional) CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds) CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes) CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max) # Backup/Restore variables BAR_ACT_LOG /tmp/bar_act.log BAR_MAX_BACKUP 0 BAR_RETRY 1 BAR_NB_XPORT_COUNT 10 BAR_XFER_BUF_SIZE 31 RESTARTABLE_RESTORE off BAR_PROGRESS_FREQ 0 # Informix Storage Manager variables ISM_DATA_POOL ISMData ISM_LOG_POOL ISMLogs # Read Ahead Variables RA_PAGES 64 # Number of pages to attempt to read ahead RA_THRESHOLD 32 # Number of pages left before next group # DBSPACETEMP: # OnLine equivalent of DBTEMP for SE. This is the list of dbspaces # that the OnLine SQL Engine will use to create temp tables etc. # If specified it must be a colon separated list of dbspaces that exist # when the OnLine system is brought online. If not specified, or if # all dbspaces specified are invalid, various ad hoc queries will create # temporary files in /tmp instead. DBSPACETEMP dbtemp:dbtemp1 # Default temp dbspaces # DUMP*: # The following parameters control the type of diagnostics information which # is preserved when an unanticipated error condition (assertion failure) occurs # during OnLine operations. # For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No. DUMPDIR /tmp # Preserve diagnostics in this directory DUMPSHMEM 0 # Dump a copy of shared memory DUMPGCORE 0 # Dump a core image using 'gcore' DUMPCORE 0 # Dump a core image (Warning:this aborts OnLine) DUMPCNT 0 # Number of shared memory or gcore dumps for # a single user's session FILLFACTOR 90 # Fill factor for building indexes # method for OnLine to use when determining current time USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow) # Parallel Database Queries (pdq) MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority DS_MAX_QUERIES 32 # Maximum number of decision support queries DS_TOTAL_MEMORY 4096 # Decision support memory (Kbytes) DS_MAX_SCANS 1048576 # Maximum number of decision support scans DATASKIP off # List of dbspaces to skip # OPTCOMPIND # 0 => Nested loop joins will be preferred (where # possible) over sortmerge joins and hash joins. # 1 => If the transaction isolation mode is not # "repeatable read", optimizer behaves as in (2) # below. Otherwise it behaves as in (0) above. # 2 => Use costs regardless of the transaction isolation # mode. Nested loop joins are not necessarily # preferred. Optimizer bases its decision purely # on costs. OPTCOMPIND 2 # To hint the optimizer DIRECTIVES 1 # Optimizer DIRECTIVES ON (1/Default) or OFF (0) ONDBSPACEDOWN 0 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT OPCACHEMAX 0 # Maximum optical cache size (Kbytes) # HETERO_COMMIT (Gateway participation in distributed transactions) # 1 => Heterogeneous Commit is enabled # 0 (or any other value) => Heterogeneous Commit is disabled HETERO_COMMIT 0 SBSPACENAME # Default smartblob space name - this is where blobs # go if no sbspace is specified when the smartblob is # created. It is also used by some datablades as # the location to put their smartblobs. SYSSBSPACENAME # Default smartblob space for use by the Informix # Server. This is used primarily for Informix Server # system statistics collection. BLOCKTIMEOUT 3600 # Default timeout for system block SYSALARMPROGRAM /export/home/informix/etc/evidence.sh # System Alarm program path # Optimization goal: -1 = ALL_ROWS(Default), 0 = FIRST_ROWS OPT_GOAL -1 ALLOW_NEWLINE 0 # embedded newlines(Yes = 1, No = 0 or anything but 1) # # The following are default settings for enabling Java in the database. # Replace all occurrences of /usr/informix with the value of $INFORMIXDIR. #VPCLASS jvp,num=1 # Number of JVPs to start with JVPJAVAHOME /usr/informix/extend/krakatoa/jre/ # JRE installation root directory JVPHOME /usr/informix/extend/krakatoa # Krakatoa installation directory JVPPROPFILE /usr/informix/extend/krakatoa/.jvpprops # JVP property file JDKVERSION 1.2 # JDK version supported by this server JVMTHREAD native # Java VM thread type (green or native) # The path to the JRE libraries relative to JVPJAVAHOME JVPJAVALIB /lib/sparc/ # The JRE libraries to use for the Java VM JVPJAVAVM hpi:jvm:java:net:math:zip:jpeg # Classpath to use upon Java VM start-up (use _g version for debugging) # JVPCLASSPATH /usr/informix/extend/krakatoa/krakatoa.jar:/usr/informix/extend/krakatoa/jdbc.jar JVPCLASSPATH /usr/informix/extend/krakatoa/krakatoa_g.jar:/usr/informix/extend/krakatoa/jdbc_g.jar #JVPLOGFILE jvp.log # JVP log file. BAR_DEBUG_LOG /tmp/bar_dbug.log # ON-Bar Debug Log - not in /tmp please BAR_BSALIB_PATH /opt/omni/lib/libob2informix_64bit.so CDR_SERIAL 0,0 # Serial Column Sequence CDR_DBSPACE # dbspace for syscdr database CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog) CDR_QDATA_SBSPACE # CDR queue smart blob space CDR_QDATA_SBFLAGS 2 # Log/no-log (default no log) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 16:41 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovЗдравствуйте! Не устраивает быстродействие IDS 9.30 (Solaris 8/4x1GHz Sparc/8GB ОЗУ). Я собрал ... А что не устраивает? Оно всегда так было и или вчера началось? PDQ не настроено (все по умолчанию), а вроде используется. Может кто-то случайно собрал статистику на процедуры с включенным pqd? Процессоры простаивают, но некоторая конкуренция за 12 dbtemp и (13 dbtemp1). Индексы перестали использоваться? Надо лечить 19 вирт. сегментов SHMVIRTSIZE 163840 #(20*8192) SHMADD 8192 Длинные чекпоинты не напрягают? LRU_MAX_DIRTY 60 LRU_MIN_DIRTY 50 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 16:57 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Так не надо делать: Код: plaintext 1. 2. 3. 4. 5. 6. Зачем distinct ? count(distinct da.userid_exec) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:02 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Последние 2 недели началась медленная работа. Что касается SQL-запросов, то это у нас так программисты писали, и их сейчас не изменишь. А что лучше в PDQ поставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:06 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovNETTYPE tlitcp,2,100,NET # Configure poll thread(s) for nettype если всегда так мало соединений, то зачем вам лишние процессы? Поставьте CPU Alex IvanovNUMCPUVPS 16 # Number of user (cpu) vps зачем вам столько? судя по статистике, 4 вполне справятся. Alex IvanovCLEANERS 100 # Number of buffer cleaner processes вообще больше 1 клинерса на чанк смысла нет. У вас работают только 6. Alex IvanovSHMVIRTSIZE 8192 # initial virtual shared memory segment size почему так мало? У вас много сегментов. Памяти вроде бы достаточно Alex IvanovLRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit чекпойнты у вас не быстрые, поставьте 20/10 Alex IvanovOPTCOMPIND 2 # To hint the optimizer для OLTP систем рекомендуют ставить 0. Хотя все зависит от приложений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:08 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovПоследние 2 недели началась медленная работа. как статистику обновляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:09 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
да, и просто любопытно - почему логи не бэкапятся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:12 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Тан Alex IvanovNUMCPUVPS 16 # Number of user (cpu) vps зачем вам столько? судя по статистике, 4 вполне справятся. При AFF_SPROC 0 # Affinity start processor AFF_NPROCS 4 # Affinity number of processors :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:12 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Журавлев Дениснекоторая конкуренция за 12 dbtemp и (13 dbtemp1). Индексы перестали использоваться? это наверное из-за hash join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:17 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
CLEANERS=LRUS, из этого и ставил. Если уменьшить LRU_MAX_DIRTY и LRU_MIN_DIRTY, то буфера будут очищаться быстрее, пробовал, стало только медленнее NUMCPUVPS д.б. = числу процессоров? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:21 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Параметры PDQ, как я понял надо увеличить число и объем памяти, только насколько? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:23 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovCLEANERS=LRUS, из этого и ставил. Если уменьшить LRU_MAX_DIRTY и LRU_MIN_DIRTY, то буфера будут очищаться быстрее, пробовал, стало только медленнее NUMCPUVPS д.б. = числу процессоров? никто никому ничего не должен, правила существуют для первоначальной установки параметров, потом надо настраивать для конкретного сервера. и все равно непонятно, что именно медленно. Запросы выполняются медленно? Все или какие-то особенные? Если было быстро, а стало медленно, значит кто-то что-то где-то поменял. Если найдете, что поменяли, будет легче решить проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:27 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovЕсли уменьшить LRU_MAX_DIRTY и LRU_MIN_DIRTY, то буфера будут очищаться быстрее, пробовал, стало только медленнее буфера кстати не очищаются. Модифицированные страницы синхронизируются с диском. На скорость селектов этот процесс не влияет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:32 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovПараметры PDQ, как я понял надо увеличить число и объем памяти, только насколько?Про PDQ отставить -- это я перепутал, не используется оно наверно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:32 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Производительность падает на высоких нагрузках, когда много пользователей одновременно начинают выполнять запросы. Клиентское приложение - веб сервер (Apache + PHP) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:33 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovПроизводительность падает на высоких нагрузках, когда много пользователей одновременно начинают выполнять запросы. Клиентское приложение - веб сервер (Apache + PHP) за эти 3,5 часа такая ситуация была? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:35 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Сколько опер. памяти на серваке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:43 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
О том была или нет можно только судить субъективно, но похоже что не совсем пиковая нагрузка была. Это зависит от ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:43 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
zefsСколько опер. памяти на серваке? 8 Гб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:43 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Тан Alex IvanovOPTCOMPIND 2 # To hint the optimizer для OLTP систем рекомендуют ставить 0. Хотя все зависит от приложений не пробовали никогда ставить 0? Если нет, обязательно попробуйте, очень сильно на производительность влияет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2006, 17:59 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Database server currently processing SQL task ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 07:17 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
В момент нагрузки на сервере iowait может достигать 50%, а процессоры простаивают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 08:50 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Проблема в приложении и в головах тех кто проектировал и писал этот хелпдеск. И немного в дисках, и у тебя не рау. Покажи dbschema -d journal -t demand -hd demand dbschema -d journal -t dem_reg -hd dem_reg dbschema -d journal -t dem_punct -hd dem_punct ----------------------------------------------------------- Решительный шаг вперед -- результат хорошего пинка сзади ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 09:07 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис... и у тебя не рау. ... Можно вопрос, как вы это узнали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 09:40 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
zefs Журавлев Денис... и у тебя не рау. ... Можно вопрос, как вы это узнали?Я не это хотел сказать, я имел в виду kaio не используется. Конечно по /ifxdev/disk00/disk00 нельзя судить что это файлы/блочные/символьные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 09:54 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис... я имел в виду kaio не используется. ... Полностью согласен. Alex Ivanov - стоит попробовать настроить KAIO!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 10:01 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
А если это файлы то монтировать фс с опцией forcedirectio, хотя пользы конечно от этого мало. ----------------------------------------------------------- Решительный шаг вперед -- результат хорошего пинка сзади ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 10:09 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
и добавить еще пяток временных дбспейсов, если нельзя уменьшить количество hash join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 10:26 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Это rawдевайсы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 11:58 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Хм. С осуждением "date() >= and date() <=" я несколько поторопился, стереотипно мыслю. Поле demand.status работает. demand.status=1 ~30 строк demand.status in (2,9) ~2053 + 30 demand.status in (5,10) ~30 + 30 Наверно более менее быстро работает, проблемы в чем-то другом. ----------------------------------------------------------- Решительный шаг вперед -- результат хорошего пинка сзади ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 12:13 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Alex IvanovЭто rawдевайсытогда настройте kaio ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2006, 13:11 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Для Informix 9.40 под Windows 2003 Server значение параметра NOAGE 0 - это нормально? ---------------------------------------- В одном из корпоративных материалов почему-то не советуют ставить NOAGE 1 для Informix под виндой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2006, 12:39 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Для этого вопроса лучше бы завести новую тему, тем более, что в данном топике рассматривались совсем другие вопросы.... СередаДля Informix 9.40 под Windows 2003 Server значение параметра NOAGE 0 - это нормально? ---------------------------------------- В одном из корпоративных материалов почему-то не советуют ставить NOAGE 1 для Informix под виндой. Да, я тоже такое знаю. Правда, относительно Win2003 тогда ничего не говорилось (ее просто не было). IMHO в Виндовс нет "старения приоритетов процессов", соответственно и пользоваться этой опцией не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2006, 17:38 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Сервер тормозит (все думают, что сильно). Начальство наезжает - вычислить точную причину тормозов софт (чужой) или железо (наше). Пока вижу в ISA что CPU два штуки (на двухядерном проце сидит) имеют большое время ожидания. В результатах статистики смущают выделенные жЫрнЫм пункты. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Это нормальное соотношение величин (выделено)? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Запросы поступающие в базу разнородны как OLTP так и DSS попадаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 17:09 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Тормозит всегда или время от времени? Скорее всего "тормоз" происходит в момент выполнения чекпоинт, на который повлиять можно разными способами, но лучше для начала посмотреть onconfig. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 18:49 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
DaugavaТормозит всегда или время от времени? Скорее всего "тормоз" происходит в момент выполнения чекпоинт, на который повлиять можно разными способами, но лучше для начала посмотреть onconfig. Тормозит: вместо 8 часов операция обработки массива данных идет в течении почти 24 часов. Запросы идут из чужого софта, но скорее всего DSS. Что из конфига нужно? PDQ и что рядом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 20:23 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
СередаСервер тормозит (все думают, что сильно). Начальство наезжает - вычислить точную причину тормозов софт (чужой) или железо (наше). Пока вижу в ISA что CPU два штуки (на двухядерном проце сидит) имеют большое время ожидания. В результатах статистики смущают выделенные жЫрнЫм пункты. IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 07:46:44 -- 11 84704 Kbytes Profile dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached 9872236 11862499 441309307 97.78 638971 1367408 26801481 98.00 isamtot open start read write rewrite delete commit rollbk 479823685 1011300 80427632 149679763 16598749 7846949 2970830 8024 25 gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs 2 0 0 0 0 0 2 ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes 0 0 0 4567.28 1278.13 25 50 bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans 389126 34 223275662 0 0 5 123089 1871554 ixda-RA idx-RA da-RA RA-pgsused lchwaits 78404 60419 8090040 8224549 101288 Это нормальное соотношение величин (выделено)? доп инфаD:\>onstat -g seg IBM Informix Dynamic Server Version 9.40.TC7 -- On-Line -- Up 07:58:05 -- 11 84704 Kbytes Segment Summary: id key addr size ovhd class blkused blkfree 1381386241 1381386241 c000000 854720512 241424 R* 208639 33 1381386242 1381386242 3ef20000 358416384 11584 V 19687 67817 Total: - - 1213136896 - - 228326 67850 Запросы поступающие в базу разнородны как OLTP так и DSS попадаются. не вижу криминала в выделенных цифрах. за 7 часов 300K ожидания буферов - это немного выше нормы, но вам, похоже, намного больше буферов не выделить, упираетесь в память. Для начала надо определиться, где затык - в процессорах, дисках или сети. К сожалению, я не специалист по виндам. посмотрите onstat -g ioq - интересует длина очередей на io, если она больше примерно 10 то затык по io. Можно так же посдергивать стеки вашей "медленной" нити (onstat -g stk <thread id> ) и посмотреть, в какой функции она проводит больше всего времени. onstat -g sql поможет выяснить какой sql оператор выполняется дольше всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 20:57 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
виноват софт. abread149679763 write16598749 commit8024 seqscans1871554 ----------------------------------------------------------------------------------------------------------------------------------------- нужно делать то что нужно, а то что не нужно -- делать не нужно (перефразируя В-Пуха). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 21:00 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
можно поступить совсем просто, во время тормозной процедуры запусти график загрузки процов в диспетчере. Если процы загружены под - завязку, одно дело, а если простоивают, значит дисковая подсистема тормозом является. Смотри критические таблицы, их дефрагментацию, пересоздай индексы. Разнеси конкурирующие таблицы по рахным спейсам на разных физических устройствах. Я так сервер апгредил: сначала смотрю, под 100% - поставили 4х процессорный (все спэсы на одном рейде). Потом смотрю, уже дисковая система тормозит - добавил еще рейд и разнес спэйсы. Сейчас в плане 3-й рейд и вообще красота будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 21:27 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
update stats давно делали ? В таком вот аксепте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2006, 21:28 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Вот мой ONconfig: ------------------------- IDS 9.40 ISM/OnBar ОЗУ 2Gb Двухядерная CPU Кроме параметров BUFFERS и SHMVIRTSIZE все остальное - это "подарок" от производителя софта который крутится на этой базе (базах). Черным выделил то, что вызывает у меня подозрения. ------------------------- ONconfigMIRROR 0 MIRRORPATH MIRROROFFSET 0 PHYSDBS phydbs PHYSFILE 680000 LOGFILES 25 LOGSIZE 100000 LOG_BACKUP_MODE CONT ALARMPROGRAM C:\Informix\etc\log_full.bat TBLSPACE_STATS 0 TAPEDEV D:\09062006dba- TAPEBLK 16 TAPESIZE 0 LTAPEDEV logjurnal LTAPEBLK 16 LTAPESIZE 0 STAGEBLOB SERVERNUM 0 DBSERVERNAME xxxxxxx DBSERVERALIASES NETTYPE onsoctcp,1,,NET DEADLOCK_TIMEOUT 60 RESIDENT 1 MULTIPROCESSOR 1 NUMCPUVPS 2 SINGLE_CPU_VP 0 NOAGE 0 AFF_SPROC 0 AFF_NPROCS 2 LOCKS 100000 BUFFERS 230000 NUMAIOVPS PHYSBUFF 32 LOGBUFF 32 CLEANERS 32 SHMBASE 0xC000000L SHMVIRTSIZE 350000 SHMADD 65736 SHMTOTAL 0 CKPTINTVL 1200 LRUS 31 LRU_MAX_DIRTY 30 LRU_MIN_DIRTY 20 TXTIMEOUT 300 STACKSIZE 64 DYNAMIC_LOGS 2 LTXHWM 70 LTXEHWM 80 OFF_RECVRY_THREADS 40 ON_RECVRY_THREADS 10 DRINTERVAL 30 DRTIMEOUT 30 DRLOSTFOUND \tmp CDR_EVALTHREADS 1,2 CDR_DSLOCKWAIT 5 CDR_QUEUEMEM 4096 CDR_NIFCOMPRESS 0 CDR_SERIAL 0 CDR_DBSPACE CDR_QHDR_DBSPACE CDR_QDATA_SBSPACE CDR_MAX_DYNAMIC_LOGS 0 BAR_ACT_LOG C:\Informix\xxxxxxx.log BAR_DEBUG_LOG C:\Informix\xxxxxxxd.log BAR_MAX_BACKUP 4 BAR_RETRY 1 BAR_NB_XPORT_COUNT 10 BAR_XFER_BUF_SIZE 15 BAR_PROGRESS_FREQ 1 BAR_BSALIB_PATH C:\ISM\2.20\bin\libbsa.dll RESTARTABLE_RESTORE ON ISM_DATA_POOL ISMDiskData ISM_LOG_POOL ISMDiskLogs RA_PAGES 32 RA_THRESHOLD 16 DBSPACETEMP tempdbs1:tempdbs2:tempdbs3:tempdbs4:tempdbs5:tempdbs6 DUMPDIR c:\tmp DUMPSHMEM 0 DUMPGCORE 0 DUMPCORE 0 DUMPCNT 0 FILLFACTOR 90 USEOSTIME 0 MAX_PDQPRIORITY 100 DS_MAX_QUERIES 20 DS_TOTAL_MEMORY 100000 DS_MAX_SCANS 56 DATASKIP OPTCOMPIND 0 DIRECTIVES 1 ONDBSPACEDOWN 0 OPCACHEMAX 0 HETERO_COMMIT 0 SBSPACENAME sbspace SYSSBSPACENAME sbspace BLOCKTIMEOUT 3600 SYSALARMPROGRAM C:\Informix\etc\evidence.bat OPT_GOAL -1 ALLOW_NEWLINE 0 #VPCLASS jvp,num=1 JVPJAVAHOME C:\Informix\extend\krakatoa\jredirectory JVPHOME C:\Informix\extend\krakatoa JVPLOGFILE C:\Informix\extend\krakatoa\nikolayev_jvp.log JVPPROPFILE C:\Informix\extend\krakatoa\.jvpprops_nikolayev JDKVERSION 1.3 JVPJAVALIB \bin\ JVPJAVAVM hpi;server;verify;java;net;zip;jpeg JVPCLASSPATH C:\Informix\extend\krakatoa\krakatoa.jar;C:\Informix\extend\krakatoa\jdbc.jar EXTSHMADD 65536 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Вот так оно выглядит. Апдейты статистики софт выполняет сам по расписанию, которое у них там как-то завязано с другими операциями. Т.е. можно считать, что статистика обносляется своевременно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 10:30 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
СередаВот мой ONconfig: ------------------------- IDS 9.40 ISM/OnBar ОЗУ 2Gb Двухядерная CPU Кроме параметров BUFFERS и SHMVIRTSIZE все остальное - это "подарок" от производителя софта который крутится на этой базе (базах). Черным выделил то, что вызывает у меня подозрения. Мои рекомендации, вопросы и советы по параметрам: LOGFILES 25 LOGSIZE 100000 Слишком большой размер логжурналов (100М). Лучше сделать их больше , но меньшего размера, хотя бы по 10М. Доводы смотри в этом форуме, уже не раз обсуждалось (как минимум, при падении винта потеряешь слишком много транзакций). RESIDENT 1 установи в 2, иначе Win может свопить виртуальный сегмент NUMCPUVPS 2 Еще не работал с двухядерными серверами, поэтому трудно рекомендовать, но как то не вяжется этот параметр с твоей статистикой ниже (почему то аж 4 KAIO ?) Код: plaintext 1. 2. 3. В то же время usercpu syscpu 4567.28 1278.13 говорит о слишком большой части системного времени, что чаще всего говорит о перегруженности дисковой подсистемы или обилии сортировок. AFF_NPROCS 2 Это нужно убрать. Т.е. установить в 0. BUFFERS 230000 Рекомендую еще расширить буферный пул, если есть 2Г и больше ничего на этом серваке не работает. Правда в твоих данных фигурируют разные размеры сейчас 1307648 Kbytes, а ранее было 1184704 Kbytes рекомендую BUFFERS 280000 NUMAIOVPS установить в конкретное значение =1 PHYSBUFF 32 LOGBUFF 32 Размер буфера физжурнала лучше не трогать, чаще всего его размера и так достаточно. А вот размер буфера для логжурнала можно немного увеличить (опять таки, данных для этого мало) до 64, но т.о. слегка понижается надежность (при падении сервака пропадут те транзакции, которые были в буфере и не успели сброситься на диск). CLEANERS 32 Зависит от числа активных чанков и конфигурации дисков. И не видно их загрузки. Покажи хотя бы onstat -u после нескольких часов ативной работы системы. SHMVIRTSIZE 350000 А нужно ли столько ? Мониторил ли ты потребность в памяти для запросов ? Из приведенных тобой ранее данных видно, что более 60% сегмента свободно. CKPTINTVL 1200 Кстати, ты не привел среднее время КТ из журнала. Если оно не превышает 1-2 сек, то можно ничего и не менять. Но при твоих параметрах во время КТ может сбрасываться до 300М на диск и это может занять довольно много времени. Если время КТ большое надо уменьшать LRU...DIRTY. LRUS 31 Однозначно увеличить до 127. (при этом размере буферного пула и большом кол-ве ожиданий буферов). LRU_MAX_DIRTY 30 LRU_MIN_DIRTY 20 Требуют кореляции с другими параметрами DYNAMIC_LOGS 2 Рекомендую выключить (0) и соответственно, уменьшить два следующих параметра до 45 и 54. LTXHWM 70 LTXEHWM 80 OFF_RECVRY_THREADS 40 ON_RECVRY_THREADS 10 Зачем это ? Лучше оставить по умолчанию. Никогда не встречал рекомендации увеличить эти значения, видел только уменьшение. CDR_EVALTHREADS 1,2 CDR_DSLOCKWAIT 5 CDR_QUEUEMEM 4096 А у вас включена репликация ? RA_PAGES 32 RA_THRESHOLD 16 Однозначно увеличить. Сначала хотя бы до 128 и 64. DBSPACETEMP tempdbs1:tempdbs2:tempdbs3:tempdbs4:tempdbs5:tempdbs6 И зачем их столько ? Они что, лежат на разных физических дисках ? Если да, то можно оставить :) Если нет и все лежат на одном разделе рейда, то достаточно 2-х или 3-х. USEOSTIME 0 Не трогать (и чем он у тебя вызвал сомнение ?) MAX_PDQPRIORITY 100 DS_MAX_QUERIES 20 DS_TOTAL_MEMORY 100000 DS_MAX_SCANS 56 А PDQ используется в запросах ? Это ведь легко промониторить даже по onstat -u OPTCOMPIND 0 А вот эта штука может играть значительную роль в быстродействии запросов. Вообще то, по умолчанию, д.б. 2 и чаще всего это лучше, но не всегда. Т.ч. тут можно только поэкспериментировать - взять несколько наиболее частых запросов (или самых "тяжелых" по времени и критичных для системы) и проверить на свободном серваке время выполнения с этими разными параметрами. ONDBSPACEDOWN 0 Тоже далеко не однозначный параметр. Сам ставлю в 0 (хотя по умолчанию 2). СередаАпдейты статистики софт выполняет сам по расписанию, которое у них там как-то завязано с другими операциями. Т.е. можно считать, что статистика обносляется своевременно. А я бы так не считал, а проверил. Хотя бы элементарным запросом по sysdistrib или воспользоваться готовым, например этим ---------------------------------------------------- -- List Tables with Update Statistics and without -- -- V.Shulzhenko DBA_Tools ---------------------------------------------------- select unique t.tabname[1,18] table_name -- ,d.colno ,t.created ,t.nrows ,d.constructed upstat_date ,d.mode ,substr(d.resolution,1,4) resol from systables t,outer sysdistrib d where t.tabid=d.tabid and t.tabtype='T' order by 1; ---------------------------------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 13:08 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за пост - много интересных мыслей. Наши товарисчи спалили какой-то фильтр и только-только восстановили питание сервера. Я тут ответил на то что можно было без включенного сервера. Статистика в ближайшее время будет наверное невалидная. Статистику смогу вынести позже. Или в понедельник или аж через неделю - еду на повышение квалификации в фирму поставщик софта :) vasilisNUMCPUVPS 2 Еще не работал с двухядерными серверами, поэтому трудно рекомендовать, но как то не вяжется этот параметр с твоей статистикой ниже (почему то аж 4 KAIO ?)Незнаю как прокомментировать. 4 KAIO это может отрицательно влиять на производительность системы? vasilisВ любом случае, перегруженным проц не выглядит, хотя для этого нужны другие данные. В то же время usercpu syscpu 4567.28 1278.13 говорит о слишком большой части системного времени, что чаще всего говорит о перегруженности дисковой подсистемы или обилии сортировок. Вполне возможно что это именно сортировки. vasilisAFF_NPROCS 2 Это нужно убрать. Т.е. установить в 0.Это критично? Насколько помню, пока не поставил 2 у меня неполучалось onmode -p +1 cpu провести. Было прикольно: прихожу к товарищам которые это хозяйство передают мне и говорю: - а чего это у вас база не использует второе ядро ни при каких условиях??? а они мне с искренним удивлением: а зачем??? - там и так никогда выше 50% загрузка не поднимается. (речь о графике в диспетчере задач. 50% как раз полная загрузка одного ядра :) ) vasilisBUFFERS 230000 Рекомендую еще расширить буферный пул, если есть 2Г и больше ничего на этом серваке не работает. Правда в твоих данных фигурируют разные размеры сейчас 1307648 Kbytes, а ранее было 1184704 Kbytes рекомендую BUFFERS 280000 Это данные за разное время. Система в несовсемпромышленной эксплуатации - крутим параметры что бы добиться пристойной производительности. Последняя настройка BUFFERS 230000. vasilisNUMAIOVPS установить в конкретное значение =1А почему так? vasilisSHMVIRTSIZE 350000 А нужно ли столько ? Мониторил ли ты потребность в памяти для запросов ? Из приведенных тобой ранее данных видно, что более 60% сегмента свободно.Сразу сказать трудно. Соберу статистику в конце месяца, когда пойдет повышенная нагрузка - будет видно. Скорее всего уменьшать не придется :( vasilisCKPTINTVL 1200 Кстати, ты не привел среднее время КТ из журнала. Если оно не превышает 1-2 сек, то можно ничего и не менять. Но при твоих параметрах во время КТ может сбрасываться до 300М на диск и это может занять довольно много времени. Если время КТ большое надо уменьшать LRU...DIRTY. КТ идут по разному. Если сервер не подгружен, то 0 сек. Код: plaintext Код: plaintext vasilisLRU_MAX_DIRTY 30 LRU_MIN_DIRTY 20 Требуют кореляции с другими параметрамиС какими? vasilisDYNAMIC_LOGS 2 Рекомендую выключить (0) и соответственно, уменьшить два следующих параметра до 45 и 54. LTXHWM 70 LTXEHWM 80 У нас реальны ситуации когда происходит роллбэк длинной транзакции... вчера кто-то таких 25 штук за 40 минут сделал, так что DYNAMIC_LOGS точно будет 0 - легче потом отловить и удалить динамически созданное (ISA друг админа :) ). vasilisOFF_RECVRY_THREADS 40 ON_RECVRY_THREADS 10 Зачем это ? Лучше оставить по умолчанию. Никогда не встречал рекомендации увеличить эти значения, видел только уменьшение. OFF_RECVRY_THREADS onconfig.std value 10 For single-processor computers or nodes, more than 30 to 40 threads is probably too many, because the overhead of thread management offsets the increase in parallel processing. (c) TFM ...40 таки да многовато. Из каких соображений можно выйти на оптимальное значение? ON_RECVRY_THREADS onconfig.std value 1 You can tune ON_RECVRY_THREADS to the number of tables that are likely to be recovered , because the logical-log records that are processed during recovery are assigned threads by table number. (c) TFM Т.е. в принципе речь только о том параллельное или последовательное восстановление будет использоваться? vasilis Код: plaintext 1. 2. Нет. vasilisRA_PAGES 32 RA_THRESHOLD 16 Однозначно увеличить. Сначала хотя бы до 128 и 64. Это как-то можно связать с тем, что размер кластера 64к, а размер страйпа, если не ошибаюсь 1Мб? vasilisDBSPACETEMP tempdbs1:tempdbs2:tempdbs3:tempdbs4:tempdbs5:tempdbs6 И зачем их столько ? Они что, лежат на разных физических дисках ? Если да, то можно оставить :) Если нет и все лежат на одном разделе рейда, то достаточно 2-х или 3-х.Все в кучу, но их требует документация к софту... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 14:40 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа vasilisAFF_NPROCS 2 Это нужно убрать. Т.е. установить в 0. Это критично? Насколько помню, пока не поставил 2 у меня неполучалось onmode -p +1 cpu провести. Было прикольно: прихожу к товарищам которые это хозяйство передают мне и говорю: - а чего это у вас база не использует второе ядро ни при каких условиях??? а они мне с искренним удивлением: а зачем??? - там и так никогда выше 50% загрузка не поднимается. (речь о графике в диспетчере задач. 50% как раз полная загрузка одного ядра :) ) Припязка ВП к физическому процессору имеет смысл когда есть достаточное количество процессров. В этом случае можно получить прирост производительности за счет более оптималього использования кеша процессра. Рекомендуется иметь в системе минимум один физический процессор не привязаный к ВП. Середа vasilisLRU_MAX_DIRTY 30 LRU_MIN_DIRTY 20 Требуют кореляции с другими параметрами С какими? BUFFERS 230000 CLEANERS 32 LRUS 31 CKPTINTVL 1200 Середа vasilisRA_PAGES 32 RA_THRESHOLD 16 Однозначно увеличить. Сначала хотя бы до 128 и 64. Это как-то можно связать с тем, что размер кластера 64к, а размер страйпа, если не ошибаюсь 1Мб? Увеличение значения этих параметров будут влиять на производительность только в случае если у Вас : 1. Много полных сканирований таблиц. 2. Существуют очень обьемные (как правило составные индексы) и производится индексный поиск по диапазону. В других случаях никакого влияния эти параметры не дадут. А для операций поиска по первичному ключу могут даже понизить производительность. Эти параметры предназначены для управления упреждающего чтения(кеширования). Размер страйпа имеет смысл только в случае если у Вас raid5. Размер кластера файловой системы лучше зделать равным размеру страницы(4к). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:45 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
onstatПрипязка ВП к физическому процессору имеет смысл когда есть достаточное количество процессров. В этом случае можно получить прирост производительности за счет более оптималього использования кеша процессра. Рекомендуется иметь в системе минимум один физический процессор не привязаный к ВП. Код: plaintext Можно как-то не привязывать VCPU к реальным? onstatРазмер страйпа имеет смысл только в случае если у Вас raid5. Почему Вы говорите, что если не рэйд-5, то страйп не имеет смысл? Как я понял сис.админов в том устройстве на котором хранится база есть отдельные настройки типа биоса в которых этот самый страйп выбирается и в зависимости от его величины билдится массив. Кроме того эта же величина данных считывается за один раз из массива. onstatРазмер кластера файловой системы лучше зделать равным размеру страницы(4к).Почему? Как это можно обосновать? Самый маленький чанк у нас 100Мб. Размер баз пока ~100Гб, а когда будем вводить в пром.режим, то, возможно эта цифра увеличится разов так в несколько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 19:52 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Размер кластера файловой системы лучше зделать равным размеру страницы(4к).Размер кластера влияет лишь на минимальный размер файла, и на количество листьев в дереве фс. Чтение запись будет вестись 4\2кб кусками в любом случае. Размеры\кратность страйпа, кеша диска, конторолера, головы раида будут влиять точно также как и флуктуации температуры поверхности марса -- непредсказуемо и +-2% производительности (понятно что для oltp при пятом рейде необходим кеш рейда минимум гиг иначе черевато). При уровне кеширования буферами 98% -- если мы вообще уберем ожидания диска, грубо говоря мы ускорим процесс лишь на 2%. Виноват кривой софт (корявые запросы). End. The period. как сказал бы Выбегалло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 21:16 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
СередаСервер тормозит (все думают, что сильно). Начальство наезжает - вычислить точную причину тормозов софт (чужой) или железо (наше). 6. Если "раньше работало, а теперь нет" - то постарайтесь вспомнить ВСЕ изменения в конфигурации за прошедшее время (не только в onconfig, но и в локальной сети, настройках клиента, сервера приложений, патчи, сервис паки, регламентные работы по БД и т.п.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 23:13 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Выбегалло СередаСервер тормозит (все думают, что сильно). Начальство наезжает - вычислить точную причину тормозов софт (чужой) или железо (наше). 6. Если "раньше работало, а теперь нет" - то постарайтесь вспомнить ВСЕ изменения в конфигурации за прошедшее время (не только в onconfig, но и в локальной сети, настройках клиента, сервера приложений, патчи, сервис паки, регламентные работы по БД и т.п.) Нет, оно и раньше тормозило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 23:50 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
"вместо 8 часов операция обработки массива данных идет в течении почти 24 часов." - откуда взялись эти 8 часов ? Вам так кажется, или оно и вправду раньше не тормозило ? В таком вот аксепте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 23:58 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Выбегалло"вместо 8 часов операция обработки массива данных идет в течении почти 24 часов." - откуда взялись эти 8 часов ? Вам так кажется, или оно и вправду раньше не тормозило ? В таком вот аксептеС 8 часами мутная история: производитель софта утверждает что на аналогичных задачах в других конторах характерное время 8 часов. Вытрясти конфиг и конфигурацию железа ни из кого пока не получилось - вот и бьюсь как рыба об лед. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Можно ли считать, что разница в 10 раз между выделенными числами - это результат того, что при выполнении запросов мало используются индексы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 08:50 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Можно ли и есть ли смысл заставить Informix использовать не KIO, а AIO? -------------------------------------------------------------------------- IDS 9.40, Windows 2003 Server ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:24 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
СередаМожно ли и есть ли смысл заставить Informix использовать не KIO, а AIO? -------------------------------------------------------------------------- IDS 9.40, Windows 2003 Server Нельзя на Windows 2003 Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:44 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа... Можно ли считать, что разница в 10 раз между выделенными числами - это результат того, что при выполнении запросов мало используются индексы?Включи сбор стат-ки по таблицам (TBLSPACE_STATS 1) и смотри в ppf по каким таблицам (какого размера) у тебя 4млн. сексканов. Дело в софте всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:45 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисВключи сбор стат-ки по таблицам (TBLSPACE_STATS 1) и смотри в ppf по каким таблицам (какого размера) у тебя 4млн. сексканов. Дело в софте всегда.Очень извиняюсь: как включить сбор стат-ки по таблицам (TBLSPACE_STATS 1) и что такое ppf? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:53 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Заранее извиняюсь, за заданные вопросы: Чемберлен СередаМожно ли и есть ли смысл заставить Informix использовать не KIO, а AIO? -------------------------------------------------------------------------- IDS 9.40, Windows 2003 Server Нельзя на Windows 2003 Server. Я так понял, что AIO использует gfd для ввода-вывода (их аж 235 штук), а KIO по числу VCPU (аж 4 штуки)... Вот и вопрос у меня: 1) Может тогда AIO все зарезать? 1.1) И gfd как-то убрать - все равно их статистика нулевая, а ресурсы поди жрут? 2) AIO может их сделать в колличестве близком к количеству gdf (235)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:58 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа Журавлев ДенисВключи сбор стат-ки по таблицам (TBLSPACE_STATS 1) и смотри в ppf по каким таблицам (какого размера) у тебя 4млн. сексканов. Дело в софте всегда.Очень извиняюсь: как включить сбор стат-ки по таблицам (TBLSPACE_STATS 1) и что такое ppf?Сорри - с этим уже разобрался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:00 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Исправленный пост. Заранее извиняюсь, за заданные вопросы: Чемберлен СередаМожно ли и есть ли смысл заставить Informix использовать не KIO, а AIO? -------------------------------------------------------------------------- IDS 9.40, Windows 2003 Server Нельзя на Windows 2003 Server. Я так понял, что AIO использует gfd для ввода-вывода (их аж 235 штук), а KIO по числу VCPU (аж 4 штуки)... Вот и вопрос у меня: 1) Может тогда AIO все зарезать? 1.1) И gfd как-то убрать - все равно их статистика нулевая, а ресурсы поди жрут? 2) KIO может их сделать в колличестве близком к количеству gdf (235)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:03 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа Я так понял, что AIO использует gfd для ввода-вывода (их аж 235 штук), а KIO по числу VCPU (аж 4 штуки)... Вот и вопрос у меня: Не трогайте ничего. KIO асинхронно работает, послал запрос, уснул не дожидаясь ответа диска, все у вас правильно, и максимальная длина очереди >10 тоже ни о чем не говорит (неизвестно когда она была максимальной, а вдруг в момент сбора статистики или бекапа, а не в момент реальной работы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:03 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис Середа Я так понял, что AIO использует gfd для ввода-вывода (их аж 235 штук), а KIO по числу VCPU (аж 4 штуки)... Вот и вопрос у меня: Не трогайте ничего. KIO асинхронно работает, послал запрос, уснул не дожидаясь ответа диска, все у вас правильно, и максимальная длина очереди >10 тоже ни о чем не говорит (не известно когда она была максимальной, а вдруг в момент сбора статистики или бекапа, а не в момент реальной работы).Т.е. все что могло бы тормозить со стороны дисков отметаем сслылаясь на то что буферизация чтения/записи больше 97% (кстати бываю редкие моменты, когда эти показатели падают 67% на чтение в частности)? Далее остается исследовать откуда идет прямой перебор данных в таких количествах. Есть версия: индексы строились давно с филлфактором 90% и не перестраивались. Может ли быть, что 10% запаса исчерпались и индексы просто не валидны на сегдня? Как-то это можно проONSTATить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:07 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
СередаТ.е. все что могло бы тормозить со стороны дисков отметаем сслылаясь на то что буферизация чтения/записи больше 97% (кстати бываю редкие моменты, когда эти показатели падают 67% на чтение в частности)?Низкий уровень кеширования (67%) говорит о плохом приложении, о маленьком буфере (не ваш случай явно). Высокий уровень 97, 99 ни о чем ни говорит, при 99.99% все тоже может быть очень плохо. Но к скорости дисковой системы вообще отношения не имеет. Т.е. теоритически она может быть узким местом (ну раид5 софтверный), но практически вряд-ли. Т.е. скорее может быть ситуация -- сексканов огромных таблиц, ускорение дисковой системы конечно поможет, но реально надо лечить приложение. Середа Далее остается исследовать откуда идет прямой перебор данных в таких количествах. Есть версия: индексы строились давно с филлфактором 90% и не перестраивались. Может ли быть, что 10% запаса исчерпались и индексы просто не валидны на сегдня? Как-то это можно проONSTATить?Филлфактор на индескный/последовательный доступ не влияет. Вы похоже вообще не понимаете что это такое, не трогайте, и не надо ничего перестраивать (перестраивать индексы вообще не надо, потому что практически 99.99% это не поможет и не меняет ничего). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:20 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
И еще lockreqs/commit ~ 21 тыс довольно большое значение по моему. Тоже косвенно намекает на seqscans больших таблиц ну или случай очень необычного софта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:29 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисФиллфактор на индескный/последовательный доступ не влияет. Вы похоже вообще не понимаете что это такое, не трогайте, и не надо ничего перестраивать (перестраивать индексы вообще не надо, потому что практически 99.99% это не поможет и не меняет ничего). FILLFACTOR specifies the degree of index-page fullness. A low value provides room for growth in the index. A high value compacts the index. If an index is full (100 percent), any new inserts result in splitting nodes. You can also set the FILLFACTOR as an option on the CREATE INDEX statement. The setting on the CREATE INDEX statement overrides the ONCONFIG file value. Т.е. index-page fullness - это полнота не в смысле заполнения страницы, а в смысле "полноты индекса"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:39 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа Т.е. index-page fullness - это полнота не в смысле заполнения страницы, а в смысле "полноты индекса"?это именно полнота в смысле заполнения страницы индекса, при 100% страница расщепляется. Каким боком относится к вашим проблемам не понятно, видимо никаким. ЗЫ: Понятние полнота индекса -- мне не известно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 12:57 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
ISA мне про память: Код: plaintext 1. 2. Завтра буду на фирме - производителе софта буду их спрашивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 13:01 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
СередаISA мне про память: Код: plaintext 1. 2. Тут сложно судить про запас. Есть R сегмент (используется в качестве кеша) тут будет практически всегда 0, сколько его ни корми, а есть V, если его не хватает инфоримикс прихватит еще сам, но при кол-ве поль-й один тут настраивать особо нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 14:16 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа, вы не там смотрите. Общие настройки сервера вряд ли дают падение производительности в 4 раза, разве что при очень грубых ошибках типа очень маленького буфера, но у вас их не видно. Что смущает - так это 1.8М seq scan-ов за 7 часов работы. Явно не хватает где-то индексов. Вам надо а) убедиться что сеть не перегружена (процессор, по вашим словам, недогружен), б) окончательно убедиться что диски не перегружены и в) выяснить, какие запросы выполняются в течении этого самого 24часового процессинга и сконцентрироваться на самых долгих их них. Не помешает своими глазами увидеть тех самых клиентов, что выполняют за 8 часов, а то ведь может все проще, как в том анекдоте про " и вы говорите " ? В таком вот аксепте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 21:44 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоСереда, вы не там смотрите. Общие настройки сервера вряд ли дают падение производительности в 4 раза, разве что при очень грубых ошибках типа очень маленького буфера, но у вас их не видно. Что смущает - так это 1.8М seq scan-ов за 7 часов работы. Явно не хватает где-то индексов. Вам надо а) убедиться что сеть не перегружена (процессор, по вашим словам, недогружен), б) окончательно убедиться что диски не перегружены и в) выяснить, какие запросы выполняются в течении этого самого 24часового процессинга и сконцентрироваться на самых долгих их них. Не помешает своими глазами увидеть тех самых клиентов, что выполняют за 8 часов, а то ведь может все проще, как в том анекдоте про " и вы говорите " ? В таком вот аксепте Все разрешилось до боли просто. 1) Система БД+приложение действительно плотно использует доступ к данным не по индексам. 2) Что-там так закручено, что увеличение параметров RA_ бестолку. Сейчас стоит Код: plaintext 1. Код: plaintext 1. 3) Что самое криминальное: обновление статистики делается через систему приложения... и оказалось, что админ приложения просто "забил" на такую второстепенную операцию, как обновление статистики . Короче: всех упорядочил. Таперь стало, как они говорят лучше (почти хорошо). Думаю, может еще заняться самодеятельностью: поотлавливать запросы юзеров, посмотреть какие индексы в наличии и пообщаться с разработчиками если что-то накопаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 11:14 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за задержку с ответом. Середа onstatПрипязка ВП к физическому процессору имеет смысл когда есть достаточное количество процессров. В этом случае можно получить прирост производительности за счет более оптималього использования кеша процессра. Рекомендуется иметь в системе минимум один физический процессор не привязаный к ВП. Код: plaintext Можно как-то не привязывать VCPU к реальным? Можете не привязывать. Не трогайте параметры связанные с AFFINITY и ничего привязываться не будет. На разных версиях я получал разные результаты. Гдето говорилось, что нельзя запустить виртуальный процессор если физический последний в системе. На другой версии у меня запускалось 3 привязанных процессора и еще 2 не привязанных, на 4 физических процессорах На каких конкретно версиях это было я не помню. В любом случае связь количества ВП и производительности нужно подбирать исходя из архитектуры вашего приложения. onstatРазмер страйпа имеет смысл только в случае если у Вас raid5. Середа Почему Вы говорите, что если не рэйд-5, то страйп не имеет смысл? Как я понял сис.админов в том устройстве на котором хранится база есть отдельные настройки типа биоса в которых этот самый страйп выбирается и в зависимости от его величины билдится массив. Кроме того эта же величина данных считывается за один раз из массива. В raid 5 при изменении данных на диске пересчитывается контрольная сумма по всему страйпу, не зависимо от того сколько страниц(informix pages) было изменено базой. То есть при размере страницы 2 к и размере страйпа 64к при изменении в одной странице данных будет пересчитана и переписана конрольная сумма по всему страйпу 64к. Raid10 умеет читать и писать не полными страйпами. По вопросу размера кластера я полностью согласен с выводами дейт. Я где то читал рекомендацию, что размер кластера по возможности должен быть равен размеру страницы базы данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 14:46 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
Середа3) Что самое криминальное: обновление статистики делается через систему приложения... и оказалось, что админ приложения просто "забил" на такую второстепенную операцию, как обновление статистики . Ха, а я что советовал ? Именно проверить утверждения других людей :) vasilis СередаАпдейты статистики софт выполняет сам по расписанию, которое у них там как-то завязано с другими операциями. Т.е. можно считать, что статистика обносляется своевременно. А я бы так не считал, а проверил. Хотя бы элементарным запросом по sysdistrib или воспользоваться готовым, например этим ---------------------------------------------------- -- List Tables with Update Statistics and without ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2006, 19:02 |
|
||
|
Производительность сервера БД
|
|||
|---|---|---|---|
|
#18+
vasilisХа, а я что советовал ? Именно проверить утверждения других людей :)Да. Я посмотрел вышеобозначенным запросом что и как обновляет приложение. Следы последнего массового обновления заметны 18 дней назад и ни разу не наблюдается HIGH. Я знаю, что на базах под postgres обновление статистики у нас идет не раз в сутки - иначе тормоза. Короче, сижу и обновляю статистику сейчас.... Сам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2006, 16:32 |
|
||
|
|

start [/forum/topic.php?all=1&fid=44&tid=1608631]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 526ms |

| 0 / 0 |
