powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Производительность сервера
67 сообщений из 67, показаны все 3 страниц
Производительность сервера
    #35048297
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый всем день!
Вопрос на тему производительности:
Сервер - 8х Xeon 3.00 Ram - 16G система - Linux RedHat 4 (64)
2 массива :
3-диска 5рейд - под систему, информикс, ПО
14дисков 10рейд - под базы (240Gb)
Информикс - IDS Version 10.00.FC3R1

В системе около 400 пользователей, активных до 70

Изначально массив под базы был разбит на 2 части 140и 103Гб, после переразбивки 240г залили бызы.
Стали поступать жалобы от пользователей на медленную обработу запросов.
К тому же, стала меньше отьедаться оперативная память
Как один из вариантов: до переразбивки страницы DBS могли быть по 16к, а теперь по 2к.
onconfig неменялся.

После увеличения буфферов до 500000 с 100000 и установки resident в 1 вроде скорость поднялась но чуть -чуть.

Сервер работает круглосуточно, так что сливать базы и переразбивать массив кроме Нового года
возможности нет.


Кто что посоветует?


onstat -p
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Informix Dynamic Server Version 10.00.FC3R1   -- On-Line -- Up 3 days 22:41:17 -- 2976568 Kbytes
Profile
dskreads   pagreads   bufreads   %cached dskwrits   pagwrits   bufwrits   %cached
191119782  237535264  11407389080 98.33   45106769   94187753   915460706  95.22  
isamtot    open       start      read       write      rewrite    delete     commit     rollbk
8783313375 154813726  486806939  5171848057 352024184  157779564  2435744    9598       1
gp_read    gp_write   gp_rewrt   gp_del     gp_alloc   gp_free    gp_curs   
0          0          0          0          0          0          0         
ovlock     ovuserthread ovbuff     usercpu  syscpu   numckpts   flushes   
0          0            0          78002.31 41276.13 9903       40792     
bufwaits   lokwaits   lockreqs   deadlks    dltouts    ckpwaits   compress   seqscans  
47670763   0          1996579868 0          0          19314      2821176    16268420  
ixda-RA    idx-RA     da-RA      RA-pgsused lchwaits  
28353484   10909101   104108895  143138236  1984729

free
Код: plaintext
1.
2.
3.
             total       used       free     shared    buffers     cached
Mem:      15890596    4036684   11853912          0     210472    3305468
-/+ buffers/cache:     520744   15369852
Swap:      2032212          0    2032212

sar 1 10
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Linux 2.6.9-22.ELsmp (max) 	08.01.2008
15:24:28          CPU     %user     %nice   %system   %iowait     %idle
15:24:29          all      3,75      0,00      4,62      0,00     91,64
15:24:30          all      3,50      0,00      3,50      0,38     92,62
15:24:31          all      3,25      0,00      4,00      0,00     92,75
15:24:32          all      4,99      0,00      4,87      0,00     90,14
15:24:33          all      8,14      0,00      5,76      0,00     86,11
15:24:34          all      9,48      0,00      7,23      0,00     83,29
15:24:35          all      6,38      0,00      6,38      0,25     87,00
15:24:36          all      3,63      0,00      6,01      0,00     90,36
15:24:37          all      2,74      0,00      5,24      0,00     92,02
15:24:38          all      7,88      0,00      5,01      0,00     87,11
БаХФЭХХ:          all      5,37      0,00      5,26      0,06     89,30


onconfig

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
ROOTNAME        rootdbs         # Root dbspace name
ROOTPATH        /dev/rootdbs    # Path for device containing root dbspace
ROOTOFFSET      0               # Offset of root dbspace into device (Kbytes)
ROOTSIZE        1900000         # Size of root dbspace (Kbytes)

# Physical Log Configuration
PHYSDBS         rootdbs         # Location (dbspace) of physical log
PHYSFILE        10000           # Physical log file size (Kbytes)

# Logical Log Configuration
LOGFILES        33              # Number of logical log files
LOGSIZE         10000           # Logical log size (Kbytes)
LOG_BACKUP_MODE MANUAL          # Logical log backup mode (MANUAL, CONT)

IFX_EXTEND_ROLE 0               # To control the usage of EXTEND role.

TBLTBLFIRST     0               # First extent size (Kbytes) (0 = default)
TBLTBLNEXT      0               # Next extent size (Kbytes) (0 = default)

ALRM_ALL_EVENTS 0               # Triggers ALARMPROGRAM for any event occur
TBLSPACE_STATS  1               # Maintain tblspace statistics

STAGEBLOB                       # Informix Dynamic Server staging area 

SERVERNUM       0               # Unique id corresponding to a OnLine instance
DBSERVERNAME                  # Name of default database server
DBSERVERALIASES                 # List of alternate dbservernames
NETTYPE         soctcp,,,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       7               # 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       1               # Affinity start processor
AFF_NPROCS      7               # Affinity number of processors

# Shared Memory Parameters

LOCKS           100000          # Maximum number of locks
NUMAIOVPS                       # Number of IO vps
PHYSBUFF        32              # Physical log buffer size (Kbytes)
LOGBUFF         32              # Logical log buffer size (Kbytes)
CLEANERS        1               # Number of buffer cleaner processes
SHMBASE         0x44000000      # Shared memory base address
SHMVIRTSIZE     131072          # initial virtual shared memory segment size
SHMADD          65536           # Size of new shared memory segments (Kbytes)
SHMTOTAL        0               # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL       300             # Check point interval (in sec)
TXTIMEOUT       0x12c           # Transaction timeout (in sec)
STACKSIZE       64              # Stack size (Kbytes)


DYNAMIC_LOGS    2               
LTXHWM          70              
LTXEHWM         80              

OFF_RECVRY_THREADS 10              # Default number of offline worker threads
ON_RECVRY_THREADS 1               # Default number of online worker threads

DRAUTO          0               # DR automatic switchover
DRINTERVAL      30              # DR max time between DR buffer flushes (in sec)
DRTIMEOUT       30              # DR network timeout (in sec)
DRLOSTFOUND                   # DR lost+found file path
DRIDXAUTO       0               # DR automatic index repair. 0=off, 1=on

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)
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                 # List of CDR queue smart blob spaces 

CDR_MAX_DYNAMIC_LOGS 0               # Dynamic log addition disabled by default

# Read Ahead Variables
RA_PAGES                        # Number of pages to attempt to read ahead
RA_THRESHOLD                    # Number of pages left before next group

DBSPACETEMP     tmpdbs          # Default temp dbspaces

FILLFACTOR      90              # Fill factor for building indexes

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                  # Maximum number of decision support queries 
DS_TOTAL_MEMORY                 # Decision support memory (Kbytes) 
DS_MAX_SCANS    1048576         # Maximum number of decision support scans	
DS_NONPDQ_QUERY_MEM -1              # Non PDQ query memory (Kbytes)
DATASKIP        off             # List of dbspaces to skip

OPTCOMPIND      0               # To hint the optimizer

DIRECTIVES      1               # Optimizer DIRECTIVES ON (1/Default) or OFF (0) 

ONDBSPACEDOWN   2               # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT
OPCACHEMAX      0               # Maximum optical cache size (Kbytes)

HETERO_COMMIT   0               

BLOCKTIMEOUT    3600            # Default timeout for system block

OPT_GOAL        -1              

ALLOW_NEWLINE   0               # embedded newlines(Yes = 1, No = 0 or anything but 1)
ONLIDX_MAXMEM   5120            # Per pool per index (Kbytes)
LISTEN_TIMEOUT  10              # Timeout (in Seconds)
BUFFERPOOL      size=2K,buffers=500000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000

BUFFERPOOL      size=16K,buffers=100000,lrus=7,lru_min_dirty=50.000000,lru_max_dirty=60.000000
...
Рейтинг: 0 / 0
Производительность сервера
    #35048326
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Информации для советов маловато.
FAQ
...
Рейтинг: 0 / 0
Производительность сервера
    #35048329
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE
BUFFERPOOL size=16K,buffers=100000,lrus=7,lru_min_dirty=50.000000,lru_max_dirty=60.000000Вы банально добавили эту строчку или еще что-то делали?


хочу увидеть onstat -d (типа вы уверены что у вас raw device?)

и sar -d 5 20
...
Рейтинг: 0 / 0
Производительность сервера
    #35048347
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не ожидал таких быстрых отзывов :) спасибо!

onconfig был составлен поставщиком ПО и 2 строчки последних уже были

onstat -d
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
IBM Informix Dynamic Server Version 10.00.FC3R1   -- On-Line -- Up 3 days 23:12:17 -- 2976568 Kbytes

Dbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
e9ea5e78         1        0x60001    1        1        2048     N  B     informix rootdbs
e9ea6848         2        0x42001    2        1        2048     N TB     informix tmpdbs
e9ea69e0         3        0x60001    3        1        2048     N  B     informix dbs
 3 active, 2047 maximum

Chunks
address          chunk/dbs  offset     size       free       bpages     flags pathname
e9ea6028         1     1    0          950000     777212                PO-B  /dev/rootdbs
e9ea6508         2     2    0          3800000    3243293               PO-B  /dev/tmpdbs
e9ea66a8         3     3    0          115500000  39978393              PO-B  /dev/dbs
 3 active, 32766 maximum

NOTE: The values in the "size" and "free" columns for DBspace chunks are
      displayed in terms of "pgsize" of the DBspace to which they belong.

Expanded chunk capacity mode: always 

sar -d 5 20
...
Рейтинг: 0 / 0
Производительность сервера
    #35048384
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE
Код: plaintext
1.
2.
3.
4.
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
e9ea5e78         1        0x60001    1        1         2048      N  B     informix rootdbs
e9ea6848         2        0x42001    2        1         2048      N TB     informix tmpdbs
e9ea69e0         3        0x60001    3        1         2048      N  B     informix dbs

BUFFERPOOL size=16K,buffers=100000,lrus=7,lru_min_dirty=50.000000,lru_max_dirty=60.000000


Ниче про размер страницы не понял. У вендора использовались 16к? Перешли на 2к?

Буфер size=2K,buffers=500000 увеличивайте еще раза в 2.

Один большой дибиспейс это круто, но обслуживается одним клинерс




Покажите ls -l /dev/dbs
...
Рейтинг: 0 / 0
Производительность сервера
    #35048402
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вендор судя по всему сделал 16к страницы, а я при создании ставил всё по умолчанию :(
В инструкции на эту тему ничего небыло.

ls -l /dev/dbs
lrwxrwxrwx 1 root root 9 ÏÝÒ 2 13:00 /dev/dbs -> /dev/sdb3

Пересоздать пространство мне датут теперь только на следующий год :(
ресурсов я смотрю хватает, можно ли поднять производительность каким либо образом?
...
Рейтинг: 0 / 0
Производительность сервера
    #35048416
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat -g seg покажите
и ls -l /dev/sdb3
...
Рейтинг: 0 / 0
Производительность сервера
    #35048421
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat -g seg
IBM Informix Dynamic Server Version 10.00.FC3R1 -- On-Line -- Up 3 days 23:54:20 -- 2976568 Kbytes

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Segment Summary:
id       key        addr             size             ovhd     class blkused  blkfree 
589824   1381386241 44000000         2779570176       504632   R*    678602   4       
622593   1381386242 e9ace000         67108864         2784     V     16384    0       
655362   1381386243 edace000         33554432         1760     V     8192     0       
688132   1381386244 eface000         33554432         1760     V     8191     1       
720901   1381386245 f1ace000         33554432         1760     V     8185     7       
753670   1381386246 f3ace000         33554432         1760     V     8089     103     
786439   1381386247 f5ace000         33554432         1760     V     7161     1031    
819208   1381386248 f7ace000         33554432         1760     V     2901     5291    
Total:   -          -                3048005632       -        -     737705   6437    
   (* segment locked in memory)

ls -l /dev/sdb3
brw-rw---- 1 informix informix 8, 19 ÏÝÒ 2 14:56 /dev/sdb3

onstat -g ioq
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
AIO I/O queues:                                               
q name/id    len maxlen totalops  dskread dskwrite  dskcopy   
sqli_dbg   0      0      0        0        0        0        0
  kio   0      0     16 76097612 62486376 13611236        0   
  kio   1      0     16 77084486 62803682 14280804        0   
  kio   2      0     16 35104116 27796067  7308049        0   
  kio   3      0     27 20327024 15901293  4425731        0   
  kio   4      0     16 14578388 12092973  2485415        0   
  kio   5      0     17 11991883 10190861  1801022        0   
  kio   6      0     16 10289139  8907642  1381497        0   
  kio   7      0     16  7228262  6311027   917235        0   
  adt   0      0      0        0        0        0        0   
  msc   0      0      2  1057104        0        0        0   
  aio   0      0      4       68       15        0        0   
  pio   0      0      0        0        0        0        0   
  lio   0      0      0        0        0        0        0   
  gfd   3      0      0        0        0        0        0   
  gfd   4      0      0        0        0        0        0   
  gfd   5      0      0        0        0        0        0
...
Рейтинг: 0 / 0
Производительность сервера
    #35048460
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SHMVIRTSIZE 589824 # initial virtual shared memory segment size
чтобы виртуальные сегменты не выделялись на ходу onstat -g seg (6 доп сегментов)

BUFFERPOOL size=2K,buffers=2000000,lrus=8,lru_min_dirty=50.000000,lru_max_dirty=60.000000
BUFFERPOOL size=16K,buffers=1000,lrus=7,lru_min_dirty=50.000000,lru_max_dirty=60.000000
увеличим буфер 2k до 4G
...
Рейтинг: 0 / 0
Производительность сервера
    #35048470
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Денис, попробую чуть позже, а то пользователи съедят :)
Интересно то что загрузка по процам менее 50% и обращения к дисковому массиву
около 30МБ/c что для него копейки.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048520
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEоколо 30МБ/c что для него копейки.ага щаз.
Любая субд это индексы -- индексы это рандомное чтение, рандомное чтение это в лучшем случае 10 мсек один диск, грубо говоря 10 дисков * 2кб / 0.01 сек = 1.9 мега/сек.

покажите еще раз sar -dp 5 10
...
Рейтинг: 0 / 0
Производительность сервера
    #35048536
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сорри не так выразился, до момента переразбивки скорость обмена с массивом
попадалась на глаза до 90МБ/c, а сейчас около 30.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048558
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEСорри не так выразился, до момента переразбивки скорость обмена с массивом
попадалась на глаза до 90МБ/c, а сейчас около 30.Что такое пераразбивка?

я попросил повторить с ключиком p sar -d p 5 10
...
Рейтинг: 0 / 0
Производительность сервера
    #35048568
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
насчет слова переразбивка:
я имел ввиду было rootdbs+tmpdbs+dbs+usr стало rootdbs+tmpdbs+dbs :)
а sar -dp 5 10 - нет такого ключика
sysstat ÒÕàáØï 5.0.5
(C) Sebastien Godard
¸áßÞÛì×ÞÒÐÝØÕ: sar [ ÞßæØØ... ] [ <ØÝâÕàÒÐÛ> [ <áçÕâçØÚ> ] ]
´ÞßãáâØÜëÕ ÞßæØØ:
[ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -H ] [ -h ] [ -i <ØÝâÕàÒÐÛ> ] [ -q ]
[ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <irq> | SUM | ALL | XALL } ] [ -P { <cpu> | ALL } ]
[ -n { DEV | EDEV | SOCK | FULL } ]
[ -x { <pid> | SELF | ALL } ] [ -X { <pid> | SELF | ALL } ]
[ -o [ <ØÜï_äÐÙÛÐ> ] | -f [ <ØÜï_äÐÙÛÐ> ] ]
[ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
...
Рейтинг: 0 / 0
Производительность сервера
    #35048589
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEСорри не так выразился, до момента переразбивки скорость обмена с массивом
попадалась на глаза до 90МБ/c, а сейчас около 30.Если на самом деле были 16к страницы, то ничего удивительного в том что рейд показывал большую производительность.

Например надо считать с диска строку размер 15 байт, считываем страницу 2к, получаем произ-ть рейда 10мег/сек, а если страница 16к то произ-ть рейда будет 80мег/сек, но толку-то? нам-то надо 15 байт, лишние считанные (16к-15байт) может и не понадобятся.

Поэтому некоторые меряют производительность в iops (Input/Output operations Per Second), но в общем случае это тоже фигня.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048599
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен.
Завтра с утра Информикс перезапущу, посмотрим на результат.
Спасибо Денис.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048609
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как мне кажется есть еще одна маленькая проблема -- двойная буферизация
ls -l /dev/sdb3
b rw-rw----
блочное устройство
Код: plaintext
1.
2.
3.
Segment Summary:
id       key        addr             size             ovhd     class blkused  blkfree 
589824   1381386241 44000000          2779570176        504632   R*    678602   4       
Код: plaintext
1.
2.
free
             total       used       free     shared    buffers     cached
Mem:      15890596    4036684   11853912          0     210472     3305468 

Т.е. мне кажется что все читает и пишет информикс дублируется в кэш линуса. И как это лечить я догадываюсь но не уверен, может гуру подскажут.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048654
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и еще одно замечание: танцы вокруг параметров информикса и параметров системы, обычно дают выигрыш 10-15%, исправление неоптимальных планов и устранение проблем с блокировками дают 10-100 раз. Поэтому когда пользователи жалуются на что-то надо смотреть что делает его конкретная сессия.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048775
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PS: Справочник администратора IBM Informix Dynamic Server
DIRECT_IO (UNIX) - http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.adref.doc/adref69.htm

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Производительность сервера
    #35048917
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GVF112GVFPS: Справочник администратора IBM Informix Dynamic Server
DIRECT_IO (UNIX) - http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.adref.doc/adref69.htm

С уважением,
Вадим.
http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.adref.doc/adref69.htm
Новые возможности в IBM Informix Dynamic Server версии 11.10
Прямой ввод-вывод можно задать при помощи нового параметра конфигурации DIRECT_IO.
Ура. Дождались.
Еще бы авторасширение датафайлов.
...
Рейтинг: 0 / 0
Производительность сервера
    #35049152
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисОдин большой дибиспейс это круто, но обслуживается одним клинерс
Точнее скажем один большой чанк.
Топикстартер не внял моему совету, и не привел рекомендованные FAQ-ом параметры onstat-a. Тогда можно было бы судить справляется ли этот один cleaners (официант) или нет с одним большим чанком (столом), а не гадать на кофейной гуще.
...
Рейтинг: 0 / 0
Производительность сервера
    #35049266
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE...
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)Я бы увеличил эти параметры - навряди эти значения подходят для вашей систьемы. Покажите onstat -l, тогда станет ясно, насколько.
Присоединяюсь к Daugava - покажите onstat -a.
...
Рейтинг: 0 / 0
Производительность сервера
    #35049371
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денискак мне кажется есть еще одна маленькая проблема -- двойная буферизация
ls -l /dev/sdb3
b rw-rw----
блочное устройство
Код: plaintext
1.
2.
3.
Segment Summary:
id       key        addr             size             ovhd     class blkused  blkfree 
589824   1381386241 44000000          2779570176        504632   R*    678602   4       
Код: plaintext
1.
2.
free
             total       used       free     shared    buffers     cached
Mem:      15890596    4036684   11853912          0     210472     3305468 

Т.е. мне кажется что все читает и пишет информикс дублируется в кэш линуса. И как это лечить я догадываюсь но не уверен, может гуру подскажут.

Я не считаю себя гуру, но знаю как.

1. Внимательно читаем man raw если он есть в системе.
Останавливаем Informix.

2. Для автоматического мапинга блочных девайсов в raw при старте системы
в файле /etc/sysconfig/rawdevices добавляем строчку
/dev/raw/raw1 /dev/sdb3

/etc/sysconfig/rawdevices
# This file and interface are deprecated.
# Applications needing raw device access should open regular
# block devices with O_DIRECT.
# raw device bindings
# format: <rawdev> <major> <minor>
# <rawdev> <blockdev>
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5
/dev/raw/raw1 /dev/sdb3



Команду raw 1 раз можно выполнить руками.
raw /dev/raw/raw1 /dev/sdb3

3. выполняем
rm -f /dev/dbs
ln -s /dev/raw/raw1 /dev/dbs

chown informix:informix /dev/raw/raw1
chmod 660 /dev/raw/raw1
chown -h informix:informix /dev/dbs

4. Перезагружаем сервер, для контроля мапинга raw при старте системы через /etc/sysconfig/rawdevices.

5. Если Informix не стоит в автостарте , поднимаем базу.

з.ы. В версии 9.4 это срабатывало на ура.
...
Рейтинг: 0 / 0
Производительность сервера
    #35049422
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе всем утро и спасибо за внимание!

onstat -a получился аж на 12 метров, может из него что конкретное надо ?
Сегодня поднял еше кол-во буферов до 2000000 и перезапустил Информикс.
Вчерашние запросы выполнявшиеся по 2 мин, отрабатывают сегодня за 40 сек.
После отработки запроса, повторные его запуски отрабатывают за 1-2 сек.

onstat -l
IBM Informix Dynamic Server Version 10.00.FC3R1 -- On-Line (CKPT REQ) -- Up 01:46:22 -- 6552712 Kbytes
Blocked:CKPT

Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 0 16 2672530 179354 14.90
phybegin physize phypos phyused %used
1:263 5000 4996 3753 75.06

Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-1 0 16 777 765 765 1.0 1.0
Subsystem numrecs Log Space used
OLDRSAM 777 28148

address number flags uniqid begin size used %used
1b0b02920 1 U-B---- 1 1:15263 5000 5000 100.00
1b0b02988 2 U-B---- 2 1:20263 5000 5000 100.00
1b0b029f0 3 U-B---- 3 1:25263 5000 5000 100.00
1b0b02a58 4 U-B---- 4 1:30263 5000 5000 100.00
1b0b02ac0 5 U-B---- 5 1:35263 5000 5000 100.00
1b0b02b28 6 U-B---- 6 1:40263 5000 5000 100.00
1b0b02b90 7 U-B---- 7 1:45263 5000 5000 100.00
1b0b02bf8 8 U-B---- 8 1:50263 5000 5000 100.00
1b0b02c60 9 U-B---- 9 1:55263 5000 5000 100.00
1b0b02cc8 10 U-B---- 10 1:60263 5000 5000 100.00
1b0b02d30 11 U-B---- 11 1:65263 5000 5000 100.00
1b0b02d98 12 U-B---- 12 1:70263 5000 5000 100.00
1b0b02e00 13 U-B---- 13 1:75263 5000 5000 100.00
1b0b02e68 14 U-B---- 14 1:80263 5000 5000 100.00
1b0b02ed0 15 U-B---- 15 1:85263 5000 5000 100.00
1b0b02f38 16 U-B---- 16 1:90263 5000 5000 100.00
1b0b02fa0 17 U-B---- 17 1:95263 5000 5000 100.00
1b0aecc50 18 U-B---- 18 1:100263 5000 5000 100.00
1b0aeccb8 19 U-B---- 19 1:105263 5000 5000 100.00
1b0aecd20 20 U-B---- 20 1:110263 5000 5000 100.00
1b0aecd88 21 U-B---- 21 1:115263 5000 5000 100.00
1b0aecdf0 22 U-B---- 22 1:120263 5000 5000 100.00
1b0aece58 23 U---C-L 23 1:125263 5000 1163 23.26
1b0aecec0 24 A------ 0 1:130263 5000 0 0.00
1b0aecf28 25 A------ 0 1:135263 5000 0 0.00
1b0aecf90 26 A------ 0 1:140263 5000 0 0.00
1b02fe230 27 A------ 0 1:145263 5000 0 0.00
1b02fe298 28 A------ 0 1:150263 5000 0 0.00
1b02fe300 29 A------ 0 1:155263 5000 0 0.00
1b02fe368 30 A------ 0 1:160263 5000 0 0.00
1b02fe3d0 31 A------ 0 1:165263 5000 0 0.00
1b02fe438 32 A------ 0 1:170263 5000 0 0.00
1b02fe4a0 33 A------ 0 1:175263 5000 0 0.00
33 active, 33 total
...
Рейтинг: 0 / 0
Производительность сервера
    #35049460
Фотография sysmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE

IBM Informix Dynamic Server Version 10.00.FC3R1 -- On-Line (CKPT REQ) -- Up 01:46:22 -- 6552712 Kbytes
Blocked:CKPT


А сколько времени у вас занимает выполнение контрольной точки?
...
Рейтинг: 0 / 0
Производительность сервера
    #35049482
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEДоброе всем утро и спасибо за внимание!

onstat -a получился аж на 12 метров, может из него что конкретное надо ?
пожать и выложить на slil.ru

KrukovSE
Сегодня поднял еше кол-во буферов до 2000000 и перезапустил Информикс.
что теперь free показывает?

KrukovSE
Вчерашние запросы выполнявшиеся по 2 мин, отрабатывают сегодня за 40 сек.
После отработки запроса, повторные его запуски отрабатывают за 1-2 сек.
А до перехода сколько они выполнялись? Может статистика не собрана? План запроса съехал?
...
Рейтинг: 0 / 0
Производительность сервера
    #35049485
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE



Если посмотреть на конфигурацию которую вы сделали
в ней ИМХО есть несколько неприятных моментов:

1. Объединив все диски в один большой том вы потенциально сделали бутылочное горлышко в драйвере ОС.
когда iostat -x >iostat.log в поле avgqu-sz будет иметь значение больше 10 считайте что вы в него попали.

2. Уменьшив размер страницы до 2 К вы будете иметь потенциальную проблему с исчерпыванием количества страниц табличном пространстве.
Это значение ограничено приблизительно 16 000 000 страниц.
Когда они исчерпаются записи в таблицу вы добавить не сможете.
Точно ошибку я не помню, звучит она что то типа "no more extents"
Посмотреть количество страниц в табличном пространстве можно через oncheck -pt ......
...
Рейтинг: 0 / 0
Производительность сервера
    #35049494
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
1. Объединив все диски в один большой том вы потенциально сделали бутылочное горлышко в драйвере ОС.
С 10-ю дисками? Не думаю. В дисковый массив раньше упрется.
...
Рейтинг: 0 / 0
Производительность сервера
    #35049545
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу чекпоинтов -

10:44:25 Maximum server connections 182
10:44:27 Checkpoint Completed: duration was 0 seconds.
10:44:27 Checkpoint loguniq 23, logpos 0x586018, timestamp: 0xd799cd7

10:44:27 Maximum server connections 182
10:44:29 Checkpoint Completed: duration was 1 seconds.
10:44:29 Checkpoint loguniq 23, logpos 0x587018, timestamp: 0xd79f6d7

10:44:29 Maximum server connections 182
10:44:31 Checkpoint Completed: duration was 1 seconds.
10:44:31 Checkpoint loguniq 23, logpos 0x588018, timestamp: 0xd7a5c63

10:44:31 Maximum server connections 182
10:44:33 Checkpoint Completed: duration was 1 seconds.
10:44:33 Checkpoint loguniq 23, logpos 0x589018, timestamp: 0xd7ab8cc

10:44:33 Maximum server connections 182
10:44:35 Checkpoint Completed: duration was 1 seconds.
10:44:35 Checkpoint loguniq 23, logpos 0x58a018, timestamp: 0xd7b1035

Дисковый массив 10 рейд на DS4300 - 14 Fiber SCSI 15.000 по 36G - довольно быстрая железяка :)

В предыдущем варианте МАХ у нас работал на IDS7 и Unixware масив был разбит на чанки
по 2г.
Приобрели RedHat 4(64) b Informix 10 вендор разбил дисковый массив на 2 раздела DBS и USR
Со временем размеры баз выросли и места стало на DBS нехватать, поэтому и объединили
в 1 раздел.
Массив разбил fdisk на rootdbs, tmpdbs, dbs. Неформатировал разделы.


Код: plaintext
1.
2.
3.
4.
-sh-3.00$ free                                                           
             total       used       free     shared    buffers     cached
Mem:      15890596    8402804    7487792          0     218052    7594264
-/+ buffers/cache:     590488   15300108                                 
Swap:      2032212          0    2032212          


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
iostat -i
Linux 2.6.9-22.ELsmp (max) 	09.01.2008

CPU-average:%user   %nice    %sys %iowait   %idle
           6,64    0,00    5,02    0,03   88,32

Devices: rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda          0,01  21,31  0,13  8,62    2,83  239,43     1,42   119,72    27,71     0,10   11,51   0,34   0,30
sdb          0,04   0,39 455,35 82,91 6385,13 2535,54  3192,56  1267,77    16,57     2,32    4,30   0,88  47,62
sdc          0,00   0,00  0,00  0,00    0,00    0,00     0,00     0,00    48,86     0,00    2,19   2,19   0,00
...
Рейтинг: 0 / 0
Производительность сервера
    #35049561
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat -a

http://slil.ru/25332757
...
Рейтинг: 0 / 0
Производительность сервера
    #35049600
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис onstat-
1. Объединив все диски в один большой том вы потенциально сделали бутылочное горлышко в драйвере ОС.
С 10-ю дисками? Не думаю. В дисковый массив раньше упрется.

В этой конфигурации тяжело сказать где раньше упрется.
Если даже упрется в контроллер то большая очередь операций ВВ как раз об этом и говорит.
Большая очередь это следствие, а не причина.
Причины глубже.
Утилиты контролера могут показывать что там еще полно свободных ресурсов, но из за
сериализации доступа( например на операции записи) к единственному тому контроллер
их просто задействовать их не сможет. Было бы несколько томов( второй том контролеер мог бы паралельно читать), и очередь в дарйвере была бы короче и контроллер
нагружен лучше, а следственно и производительность выше.
...
Рейтинг: 0 / 0
Производительность сервера
    #35049791
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEonstat -l
IBM Informix Dynamic Server Version 10.00.FC3R1 -- On-Line (CKPT REQ) -- Up 01:46:22 -- 6552712 Kbytes
Blocked:CKPT

Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 0 16 2672530 179354 14.90
phybegin physize phypos phyused %used
1:263 5000 4996 3753 75.06

Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-1 0 16 777 765 765 1.0 1.0
Subsystem numrecs Log Space used
OLDRSAM 777 28148
...Я бы увеличил PHYZBUF до 128 (возможно и больше, смотря по результатам...). На большинстве запросов это не скажется, но некоторые могут заметно ускориться.
Из Ваших предыдущих сообщений я понял, что раньше база данных лежала в dbspace'е с размером страницы 16Кб, а ныне - с размером 2 Кб - это правильно? И данные и индексы лежат в одном dbspace'е? Переход к меньшему размеру страницы для индексов мог привести к значительному увеличению их высоты и, как следствие, к замедлению выполнения запроса. Часто ли вы обновляете статистику? Можете выполнить такой запрос к Вашей базе данных:
SELECT idxname, owner, tabid, idxtype, clustered, levels, leaves, nunique, clust FROM sysindexes ORDER BY levels DESC
...
Рейтинг: 0 / 0
Производительность сервера
    #35049928
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Статистику обновляем редко - работа круглосуточная :(
Результат запроса (часть):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
idxname		owner	tabid	idxtype	clustered	levels	leaves	nunique	clust
nvtrn_keyciss	informix	285	U		6	704234	6101839	4614795
nvtrn_serkey	maxmast	285	D		5	184417	2724337	15199270
nvtrn_serkey1	maxmast	285	D		5	199677	2724337	15167747
nvtrn_to	maxmast	285	D		5	102183	122883	15743744
imcst_key	maxmast	212	U		5	1527142	409004	2495810
nvtrs_listkey	maxmast	286	U		5	9005	96	11249
nvtrs_listkey2	maxmast	286	U		5	9454	96	11249
mftrn_key	maxmast	235	D		5	29784	3	204772
imsur_remser	maxmast	222	D		5	37254	61359	96752
imsur_conitmser	maxmast	222	D		5	31193	889	189254
nvtrn_origkey	maxmast	285	D		5	404909	6102027	4615167
imsu_key	maxmast	220	U		5	131198	156228	1804723
imctp_key	maxmast	214	U		5	94337	413526	210638
nvtrn_latest	maxmast	285	U		5	614442	122883	15723447
crrel_itemkey	maxmast	162	U		5	8672	11105	8891
nvtrn_postkey	maxmast	285	U		5	307056	2	4613385
nvtrn_key	maxmast	285	U		5	297440	6101839	4614614
nvtrn_glrefkey	maxmast	285	U		5	614272	116	4625640
nvtrn_fromto	maxmast	285	D		5	109353	122883	15743321
nvtrn_from	maxmast	285	D		5	101253	122883	15740976
nvtrn_datekey	maxmast	285	D		5	354880	122883	15723209
nvtrn_datecurr	maxmast	285	U		5	404426	1523	3348484
glt_yroperkey	maxmast	207	U		5	285800	4	1943990
glt_uzkey	maxmast	207	U		5	420314	4	1589615
glt_linkkey	maxmast	207	U		5	246379	14198540	1590063
glt_key5	maxmast	207	U		5	304046	20376	1593211
glt_key2	maxmast	207	U		5	317565	1825	1663073
glt_key	maxmast	207	U		5	386219	1825	1663060
uzmfo_uzworkkey	maxmast	486	D		5	41167	2	1078706
rtop_key	maxmast	358	U		5	41985	199042	253203
rtres_key	maxmast	359	U		5	101328	198572	189242
pst_uokey	maxmast	342	U		5	40080	193797	644686
rtres_opkey	maxmast	359	D		5	48229	198572	189242
pst_orgkey	maxmast	342	U		5	40102	1	259019
rthed_key	maxmast	356	U		4	5530	216245	44653
imsul_storekey	maxmast	539	D		4	5312	173	32996
uzmfo_key2	maxmast	486	U		4	30828	22658	303319
uzmfo_key3	maxmast	486	U		4	30828	22658	303319
rtop_hedkey	maxmast	358	D		4	11723	199042	253203
purel_datekey	maxmast	349	U		4	2872	29720	22530
prhed_extkey	maxmast	338	U		4	1857	4508	16425
prhed_key1	maxmast	338	U		4	1985	1374	19411
purel_imskey	maxmast	349	U		4	3618	29720	22528
uzmfo_workkey	maxmast	486	D		4	24829	2	1181830
uzprk_key	maxmast	497	U		4	3822	11044	4608
purel_revkey	maxmast	349	U		4	2872	29720	22530
uzrb_key	maxmast	500	U		4	32770	26796	599104
imsul_serbinkey	maxmast	539	D		4	5356	138664	32894
imsul_key2	maxmast	539	U		4	9414	173	32901
colin_item	maxmast	150	D		4	1749	30247	41319
txt_key	maxmast	435	U		4	2636	2	7842
pst_main_key	maxmast	342	U		4	25313	344015	259019
imsul_key	maxmast	539	U		4	9389	32325	34957
imast_itmanf	maxmast	210	U		4	8314	413136	265647
imsul_binkey	maxmast	539	U		4	9413	173	32929
satrn_key	maxmast	361	U		4	668	9336	4668
saytd_sakey	maxmast	362	U		4	519	9334	934
uzmfoh_key	maxmast	524	U		4	17073	6081	161862
uzmfoh_uzworkkey	maxmast	524	D		4	14492	2	334211

physbuf - 128 попробую попозже, окошко будет.

Спасибо.
...
Рейтинг: 0 / 0
Производительность сервера
    #35050340
Алексан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEСтатистику обновляем редко - работа круглосуточная :(Это Вы зря. Если статистика неадекватная, никакие настройки сервера не помогут.

KrukovSEРезультат запроса (часть):

idxname owner tabid idxtype clustered levels leaves nunique clust
nvtrn_keyciss informix 285 U 6 704234 6101839 4614795
nvtrn_serkey maxmast 285 D 5 184417 2724337 15199270
nvtrn_serkey1 maxmast 285 D 5 199677 2724337 15167747
... Ничего особо выдающегося, как хорошего, так и плохого. В большой базе ничего другого ожидать не приходится...
А то, что после заполнения кэша запросы выполняются за 1-2 секунды, решило ваши проблемы?
...
Рейтинг: 0 / 0
Производительность сервера
    #35050485
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На данный момент жалоб нет, посмотрим когда запустят расчеты MRP (пока их непроизводили)
А вообсче, благодаря этой проблемке, у меня сложилось впечатление что из нашего сервера
можно было выжать гораздо больше чем было со с настройками продавца ПО. :)

Спасибо всем, за помощь :)


Есче мыслишка...
Есть у нас еше SATA стойка и места на ней хватает, как промежуточный вариант можно сделать
есче один дбспейс слить туда базы и переделать основной массив :)
Только есть проблема: заливка баз и создание индексов идут двое суток.
Можно попробовать onunload вместо dbimport, но это тоже время.
Можно ли каким-либо другим образом переместить базу с одного dbspace в другой вместе с индексами?
...
Рейтинг: 0 / 0
Производительность сервера
    #35050630
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEНа данный момент жалоб нет, посмотрим когда запустят расчеты MRP (пока их непроизводили)
А вообсче, благодаря этой проблемке, у меня сложилось впечатление что из нашего сервера
можно было выжать гораздо больше чем было со с настройками продавца ПО. :)

Спасибо всем, за помощь :)


Есче мыслишка...
Есть у нас еше SATA стойка и места на ней хватает, как промежуточный вариант можно сделать
есче один дбспейс слить туда базы и переделать основной массив :)
Только есть проблема: заливка баз и создание индексов идут двое суток.
Можно попробовать onunload вместо dbimport, но это тоже время.
Можно ли каким-либо другим образом переместить базу с одного dbspace в другой вместе с индексами?

Если стоит задача минимизировать простой то можно, только очень акуратно,
с помощью alter fragment превести заполнение таблиц
в новый dbspace( на новом массиве), и через несколько месяцев когда старыми данными никто ( или практически никто)
активно пользоваться уже не будет, сделать detach старого фрагмента в отдельную таблицу,
затем через insert ... select перенести записи в новую.
Едиственное нужно будет перестроить уникальные индексы, потому как они фрагментируются только тогда, когда условие фрагментации таблицы присутствует в индексе.
То есть уникальные индексы полность останутся в старом dbspace.

Если делать все внимательно и все зараннее просчитав и протестировав , проблем быть не должно.
...
Рейтинг: 0 / 0
Производительность сервера
    #35051402
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEЕсче мыслишка...
Есть у нас еше SATA стойка и места на ней хватает, как промежуточный вариант можно сделать
есче один дбспейс слить туда базы и переделать основной массив :)
Только есть проблема: заливка баз и создание индексов идут двое суток.
Можно попробовать onunload вместо dbimport, но это тоже время.
Можно ли каким-либо другим образом переместить базу с одного dbspace в другой вместе с индексами?
Можно.
Использовать зеркалирование средствами Информикс.
Создать зеркало всех пространств того же размера на новом массиве , подождать пока синхронизируется (на это время производительность просядет, но можно сделать ночью), а затем разорвать зеркало, отключив основной массив (не физически, конечно :)
К сожалению, потом, для возврата на основной, уже переразбитый массив, уже нельзя будет применить ту же технологию.
Кстати, если есть допол.массив, то выполнить переразбивку можно сразу - создать там несколько dbspaces с нужными размерами страниц (и с чанками размером по 10-20Г) и переносить таблицы по одной стандартным alter fragment (вместе с индексами). Для больших таблиц могут быть длинные транзакции (добавить лог.жуурналов) и блокировки, но на ночь можно оставлять.
А затем использовать зеркалирование для возврата на основной массив.
На всякий случай напомню, что при любых операциях желательно страховаться бэкапами :)
...
Рейтинг: 0 / 0
Производительность сервера
    #35051479
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из беглого анализа информации могу заметить:
- очень маленький размер физжурнала (10М для такой нагрузки могут вылезти боком)
- недопустимо маленькое число LRUS (обязательно увеличить для такого размера кеша)
- обязательно увеличить CLEANERS
- можно вообще убрать кеш для 16К страниц, раз их пока нет в ДБ-пространствах (только зря память расходуется)
- обязательно хорошо увеличить SHMVIRTSIZE (кажется, кто то уже говорил)
- советовал бы установит RA_PAGES и RA_THRESHOLD в значения хотя бы 64 32
- странно маленькое число транзакций (то ли у вас не OLTP, то ли специфика приложения...)
- довольно странное (как для меня) соотношение usercpu и syscpu (78002.31 41276.13)
обычно на тех тяжелых системах, что я вижу, соотношение не ниже 80 к 20, а здесь в основном идет работа с дисками (в том числе и tempdbs). Я бы лучше сделал 2 или 3 tempdbs суммарно того же размера.
И несколько вопросов:
"после переразбивки 240г залили бызы" - как залили ? dbimport-ом ?
А статистика там точно собиралась или сократили за недостатком времени на миграцию ?
Почему то мне кажется, что оптимальный сбор статистики вам бы очень помог :)
А процов 8 честных или это 4-е 2-х ядерных или два по 4 ?
А системный /tmp на 5-м рейде ? А не стоит ли в окружении PSORT_DBTEMP на него ?
И почему бы не поставить PSORT_NPROCS=4 (например) ?
...
Рейтинг: 0 / 0
Производительность сервера
    #35051982
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Упс, столько вопросов...
Продолжаем изучать информикс :)

После переразбивки 240г залили бызы dbimport-ом.
Cтатистика точно собиралась.
Процессоров - 8 честных ( 2 ящика IBMx460 по 4CPU) (нравится мне эта железяка :) )
Системный tmp точно на 5 рейде из 3х дисков, там же и swap для системы.
В окружении PSORT_DBTEMP и PSORT_NPROCS=4 вообще не выставлены .......
как я прочитал
"Необходимо отметить, что, если установлен параметр DBSPACETEMP или переменная окружения DBSPACETEMP, то для записи временных файлов при сортировках используются указанные dbspace’ы. Если они не установлены и не установлена переменная PSORT_DBTEMP, то используется директория /tmp".

На тему дбспейсов: у нас на массиве из 14 дисков - 1рейд 10го уровня, затем ентот
большой диск разбит на rootdbs, tmpdbs, dbs. В плане производительности это нормальный вариант
или лучше создать например 2массива 10 рейда например rootdbs+tmpdbs и dbs?

На счет изменения остальных переменных - обязательно попробую, только ввот время на остановку
сервера выбить очень тяжело.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052009
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHYSFILE маловат, из-за этого имеем достаточно частые чекпоинты.
Я так понимаю, смысла увеличивать CLEANERS нету, поскольку все "официанты" (CLEANERS-ы) будут толкаться все равно за одним "столом" (чанком). Т.е. до добавления новых чанков смысла нет.
LRUS все равно не используется и если не трогать LRU_MAX_DIRTY, LRU_MIN_DIRTY использоватся скорее всего не будет.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052110
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит учесть, что с параметрами надо играться комплексно. Увеличив PHYSFILE без разбиения чанков, увеличения cleanears и игры с LRUS-ами, у вас получится скорее всего следующая ситуация. Общая производительность системы вырастет. Но появится проблема "длинный чекпоинт", во время которой запросы пользователей будут терпеливо ждать, пока он закончится. Для длительных запросов скорее всего время ожидания будет несущественно, но для коротеньких оно вылезет боком. Поэтому впервую очередь, я задумался бы о создании нового dbspace и постепенного переноса туда хотя бы маленьких табличех.
Учитывая, что любый табличные операции вызовут простой системы, получаем, что без особого ущерба и длительной остановки все что можно сделать - выполнить советы Василия по temp-у. Ну и PHYSFILE, только не меняйте его слишком резко, помониторьте как изменятся чекпоинты (их частота и длительность).
...
Рейтинг: 0 / 0
Производительность сервера
    #35052147
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексан... Переход к меньшему размеру страницы для индексов мог привести к значительному увеличению их высоты и, как следствие, к замедлению выполнения запроса.
LOG(100000000;16348) =~ 2
LOG(100000000;2048) =~ 2

А еще возможно уменьшилась конкуренция за хотблоки поэтому возможно многие олтп запросы ускорились.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052163
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE...
Есче мыслишка...
Есть у нас еше SATA стойка и места на ней хватает, как промежуточный вариант можно сделать
есче один дбспейс слить туда базы и переделать основной массив :)
Только есть проблема: заливка баз и создание индексов идут двое суток.
Можно попробовать onunload вместо dbimport, но это тоже время.
Можно ли каким-либо другим образом переместить базу с одного dbspace в другой вместе с индексами?Зачем вам этот гемор? Если вы не знаете в чем ваши проблемы, зачем пробовать все лекарства подряд? Это может вас убить.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052170
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
Большая очередь это следствие, а не причина.
Вот именно. Длинная очередь говорит о кривой базе и запросах, а не проблемах в ВВ
...
Рейтинг: 0 / 0
Производительность сервера
    #35052202
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а /dev/sdb -- это tempdbs временный спейс? Если в нем толкаются сорт и хеш таблицы то надо DS_NONPDQ_QUERY_MEM 256 , потом можно еще увеличить если озу свободное останется
...
Рейтинг: 0 / 0
Производительность сервера
    #35052235
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
LOG(100 000 000;16348) =~ 2
LOG(100 000 000;2048) =~ 2
Ступил.
В таблице 100 млн. записей, size ключа индекса 20 байт
LOG(100 000 000;16348/20) = 3
LOG(100 000 000;2048/20) = 4
...
Рейтинг: 0 / 0
Производительность сервера
    #35052468
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
1. Объединив все диски в один большой том вы потенциально сделали бутылочное горлышко в драйвере ОС.
когда iostat -x >iostat.log в поле avgqu-sz будет иметь значение больше 10 считайте что вы в него попали.
Поддерживаю. Поэтому я бы сделал несколько 10-х рейдов (как минимум два) и один уровня 0 (страйпинг) или просто пару отдельных дисков, на которые положил бы несколько tempdbs
onstat-
2. Уменьшив размер страницы до 2 К вы будете иметь потенциальную проблему с исчерпыванием количества страниц табличном пространстве.
Это значение ограничено приблизительно 16 000 000 страниц.
Когда они исчерпаются записи в таблицу вы добавить не сможете.
Я бы уточнил, что это ограничение на кол-во страниц в ОДНОМ ФРАГМЕНТЕ таблицы.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052572
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaugavaLRUS все равно не используется и если не трогать LRU_MAX_DIRTY, LRU_MIN_DIRTY использоватся скорее всего не будет.
Не понял выражения "LRUS все равно не используется".
Возможно, ты имел ввиду "LRU Writes" ?
Но я имел ввиду именно количество очередей LRUS, которое очень сильно даже влияет, особенно при таких больших объемах буферного пула. Ведь даже для поиска свободного буфера в цепочке из 100 тыс требуется значительно время и на это время вся эта цепочка буферов (очередь) будет залочена.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052600
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaugavaСтоит учесть, что с параметрами надо играться комплексно. Увеличив PHYSFILE без разбиения чанков, увеличения cleanears и игры с LRUS-ами, у вас получится скорее всего следующая ситуация. Общая производительность системы вырастет. Но появится проблема "длинный чекпоинт", во время которой запросы пользователей будут терпеливо ждать, пока он закончится.
Пусть эта проблема сначала появится :)
А бороться с ней можно другими способами, но уж никак не маленьким размером PHYSFILE.
На более старых версиях я наблюдал крах системы из=за переполнения физжурнала.
Подозреваю, что в новых версиях что то на эту тему сделали безопасней, но я бы не рисковал.
DaugavaУчитывая, что любый табличные операции вызовут простой системы, получаем, что без особого ущерба и длительной остановки все что можно сделать - выполнить советы Василия по temp-у. Ну и PHYSFILE, только не меняйте его слишком резко, помониторьте как изменятся чекпоинты (их частота и длительность).
Представленная статистика показывает, что КТ возникает каждые 2 (!) секунды, а физжурнал заполнен на 75%. Это очень не нормально и, возможно, именно КТ и являются одним из тормозов системы (посмотрите только на ckpwaits=2459 при numckpts=648).
Поэтому предлагаю увеличить PHYSFILE сразу и существенно, хотя бы до 200М.
Мониторить длительность КТ, конечно же, нужно.
...
Рейтинг: 0 / 0
Производительность сервера
    #35052691
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisИз беглого анализа информации могу заметить:
- довольно странное (как для меня) соотношение usercpu и syscpu (78002.31 41276.13)
обычно на тех тяжелых системах, что я вижу, соотношение не ниже 80 к 20
Понял, откуда такое соотношение.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Virtual processor summary:
 class       vps       usercpu   syscpu    total   
 cpu          7           8973 . 02     1640 . 55     10613 . 57 
 aio          6           0 . 00        0 . 04        0 . 04     
 lio          1           0 . 00        0 . 01        0 . 01     
 pio          1           0 . 00        0 . 00        0 . 00     
 adm          1           0 . 03        0 . 75        0 . 78     
 soc          1           380 . 33      3984 . 43     4364 . 76  
 msc          1           2 . 22        1 . 73        3 . 95     
 total        18          9355 . 60     5627 . 51     14983 . 11 
По CPU оно как раз нормальное, а вот SOC для меня странный.
К сожалению, нет под рукой текущей статистики для Линукс-платформы, поэтому подскажите - это нормально, или может говорить о каких сетевых проблемах ?
...
Рейтинг: 0 / 0
Производительность сервера
    #35053065
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем дня!
На данный момент интересные результаты появились:
(увеличил buffers до 2 000 000 и SHMVIRTSIZE вчера)
некоторые отчеты выпускавшиеся до 30мин стали выполняться за 5-6 мин.
загрузка процессоров в пределах 60-70%.

Сейчас увеличил
PHYSBUFF c 32 до 128
PHYSFILE c 10000 до 100000
перезапустил Информикс, на данный момент чекпоинты выросли до 3-7сек.
...
Рейтинг: 0 / 0
Производительность сервера
    #35053072
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Дениса /dev/sdb -- это tempdbs временный спейс? Если в нем толкаются сорт и хеш таблицы то надо DS_NONPDQ_QUERY_MEM 256 , потом можно еще увеличить если озу свободное останется
Насколько я помню, это в КБ.
Тогда 256 маловато будет. Можно хотя бы 1М. При наличии 16Г на сервере грех не воспользоваться возможностями :)
...
Рейтинг: 0 / 0
Производительность сервера
    #35053138
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEНа данный момент интересные результаты появились:
(увеличил buffers до 2 000 000 и SHMVIRTSIZE вчера)
некоторые отчеты выпускавшиеся до 30мин стали выполняться за 5-6 мин.
загрузка процессоров в пределах 60-70%.
Отлично. Даже не думал, что так резко подскочит.
Желательно представить onstat -p за пару часов работы.
KrukovSE
Сейчас увеличил
PHYSBUFF c 32 до 128
PHYSFILE c 10000 до 100000
перезапустил Информикс, на данный момент чекпоинты выросли до 3-7сек.
Не страшно, если КТ стала выполняться один раз в 5 минут (а ранее по 1 сек. но 100 раз за те же 5 минут).
Тем не менее, можно будет уменьшить.
Нужна статистика и отрезок из лога за последние пару часов, после изменения параметров.
Итак, желательно пр5едставить:
- новый действующий onconfig
- последних несколько десятков записей из общего журнала сообщений
- onstat -l
- onstat -p
- результат запроса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
-------------------------------------------------
-- Logs (Physical and Logical) profile 
--  (whole instance)
--
-- V.Shulzhenko DBA_Tools Last modify: 2006-04-07
-------------------------------------------------
set isolation to dirty read;
select  
 '===== Logs Profile ============' ______________
  ,DBINFO('dbhostname') hostname 
  ,(select cf_effective from sysconfig where cf_name='DBSERVERNAME')    dbserver_name    
  ,current year to second - 
    EXTEND(dbinfo('utc_to_datetime',sh_pfclrtime),year to second)      statistic_time
 ,'-------------------------------' ______________
 ,'--Onconfig Effective--' __________
 ,(select cf_effective from sysconfig where cf_name='PHYSBUFF') physlog_buffer_kb
 ,(select cf_effective from sysconfig where cf_name='PHYSDBS')  physlog_dbs
 ,(select cf_effective from sysconfig where cf_name='PHYSFILE') physlog_size_kb
 ,'----' ____
 ,(select cf_effective from sysconfig where cf_name='LOGBUFF')  llog_buffer_kb
 ,(select cf_effective from sysconfig where cf_name='LOGFILES') log_files
 ,(select count(*) from syslogs) _Real_logs
 ,(select cf_effective from sysconfig where cf_name='LOGSIZE') llog_sizes_kb
 ,round((select sum(size) from syslogs)*sh_pagesize/ 1024 )       _Real_size_logs_kb
 ,'----' ____
 ,(select cf_effective from sysconfig where cf_name='LOG_BACKUP_MODE') log_backup_mode
 ,(select cf_effective from sysconfig where cf_name='LTAPEDEV') ltapedev
 ,(select cf_effective from sysconfig where cf_name='LOGSMAX')  logsmax
 ,(select cf_effective from sysconfig where cf_name='LTXHWM')   ltxhwm
 ,(select cf_effective from sysconfig where cf_name='LTXEHWM')  ltxehwm

 ,'-------------------------------' ______________
 ,'-- Physical_log --' __________
  ,round(((select value from sysprofile where name='plgpagewrites')/
          (select value from sysprofile where name='plgwrites'))/
    ((select cf_effective from sysconfig where cf_name='PHYSBUFF')/
      (sh_pagesize/ 1024 )), 2 )                                    _phbuff_utiliz
  ,(select value from sysprofile where name='plgpagewrites')    page_writes
  ,(select value from sysprofile where name='plgwrites')        writes
  ,round((select value from sysprofile where name='plgpagewrites')/
    (select value from sysprofile where name='plgwrites'), 2 )    __pages_per_write
  ,round((select value from sysprofile where name='plgpagewrites')/
    (sh_curtime-sh_pfclrtime)* 60 , 2 )                             _pages_per_min
  ,round((select value from sysprofile where name='plgwrites')/
    (sh_curtime-sh_pfclrtime)* 60 , 2 )                             _writes_per_min
 ,'-- Logical_logs --' __________
 -- Logical log buffer utilization
 -- (llgpagewrites/llgwrites) / (LOGBUFF/page_size_in_K) is good if > 0.75
  ,round(((select value from sysprofile where name='llgpagewrites')/
          (select value from sysprofile where name='llgwrites'))/
    ((select cf_effective from sysconfig where cf_name='LOGBUFF')/
      (sh_pagesize/ 1024 )), 2 )                                    _logbuff_utiliz
  ,(select value from sysprofile where name='llgrecs')          records
  ,round((select value from sysprofile where name='llgrecs')/
    (sh_curtime-sh_pfclrtime)* 60 , 2 )                             _records_per_min
  ,(select value from sysprofile where name='llgpagewrites')    page_writes
  ,round((select value from sysprofile where name='llgrecs')/
    (select value from sysprofile where name='llgpagewrites'), 2 ) _records_per_page
  ,round((select value from sysprofile where name='llgpagewrites')/
    (sh_curtime-sh_pfclrtime)* 60 , 2 )                             _pages_per_min
  ,(select value from sysprofile where name='llgwrites')        writes
  ,round((select value from sysprofile where name='llgrecs')/
    (select value from sysprofile where name='llgwrites'), 2 )    _records_per_write
  ,round((select value from sysprofile where name='llgpagewrites')/
    (select value from sysprofile where name='llgwrites'), 2 )    __pages_per_write
  ,round((select value from sysprofile where name='llgwrites')/
    (sh_curtime-sh_pfclrtime)* 60 , 2 )                             _writes_per_min
  ,sh_lastlogfreed      last_log_freed 
 ,'-- Transactions --' __________
  ,(select value from sysprofile where name='iscommits')        iscommits
  ,(select value from sysprofile where name='isrollbacks')      isrollbacks
  ,round((select value from sysprofile where name='llgrecs')/
        ((select value from sysprofile where name='iscommits')
        +(select value from sysprofile where name='isrollbacks')), 2 ) _records_per_tranx
  ,sh_longtx            long_trans
from sysshmvals;
...
Рейтинг: 0 / 0
Производительность сервера
    #35053463
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При использовании DS_NONPDQ_QUERY_MEM надо также смотреть за значением PDQPRIORITY. Должно быть установлено в 0 (для всего сервера или для конкретной сессии) если хотим использовать сортировки в памяти.
...
Рейтинг: 0 / 0
Производительность сервера
    #35053745
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
От пользователей пока тишина..... привыкли видать к тормозам :)
свежая статистика:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
onstat -a
http://slil.ru/25339625

onstat -l
IBM Informix Dynamic Server Version 10.00.FC3R1   -- On-Line -- Up 03:04:08 -- 6552904 Kbytes
Physical Logging
Buffer bufused  bufsize  numpages   numwrits   pages/io
  P-2  0        64       4925623    78507      62.74
      phybegin         physize    phypos     phyused    %used   
      1:182793         50000      4069       17984      35.97   
Logical Logging
Buffer bufused  bufsize  numrecs    numpages   numwrits   recs/pages pages/io
  L-3  0        16       6778       764        344        8.9        2.2     
	Subsystem    numrecs    Log Space used
	OLDRSAM      6778       999264        

address          number   flags    uniqid   begin                size     used    %used
1b0b32920        1        U-B----  1        1:15263              5000     5000   100.00
1b0b32988        2        U-B----  2        1:20263              5000     5000   100.00
1b0b329f0        3        U-B----  3        1:25263              5000     5000   100.00
1b0b32a58        4        U-B----  4        1:30263              5000     5000   100.00
1b0b32ac0        5        U-B----  5        1:35263              5000     5000   100.00
1b0b32b28        6        U-B----  6        1:40263              5000     5000   100.00
1b0b32b90        7        U-B----  7        1:45263              5000     5000   100.00
1b0b32bf8        8        U-B----  8        1:50263              5000     5000   100.00
1b0b32c60        9        U-B----  9        1:55263              5000     5000   100.00
1b0b32cc8        10       U-B----  10       1:60263              5000     5000   100.00
1b0b32d30        11       U-B----  11       1:65263              5000     5000   100.00
1b0b32d98        12       U-B----  12       1:70263              5000     5000   100.00
1b0b32e00        13       U-B----  13       1:75263              5000     5000   100.00
1b0b32e68        14       U-B----  14       1:80263              5000     5000   100.00
1b0b32ed0        15       U-B----  15       1:85263              5000     5000   100.00
1b0b32f38        16       U-B----  16       1:90263              5000     5000   100.00
1b0b32fa0        17       U-B----  17       1:95263              5000     5000   100.00
1b0b1cc50        18       U-B----  18       1:100263             5000     5000   100.00
1b0b1ccb8        19       U-B----  19       1:105263             5000     5000   100.00
1b0b1cd20        20       U-B----  20       1:110263             5000     5000   100.00
1b0b1cd88        21       U-B----  21       1:115263             5000     5000   100.00
1b0b1cdf0        22       U-B----  22       1:120263             5000     5000   100.00
1b0b1ce58        23       U-B----  23       1:125263             5000     5000   100.00
1b0b1cec0        24       U-B----  24       1:130263             5000     5000   100.00
1b0b1cf28        25       U---C-L  25       1:135263             5000     4764    95.28
1b0b1cf90        26       A------  0        1:140263             5000        0     0.00
1b032e230        27       A------  0        1:145263             5000        0     0.00
1b032e298        28       A------  0        1:150263             5000        0     0.00
1b032e300        29       A------  0        1:155263             5000        0     0.00
1b032e368        30       A------  0        1:160263             5000        0     0.00
1b032e3d0        31       A------  0        1:165263             5000        0     0.00
1b032e438        32       A------  0        1:170263             5000        0     0.00
1b032e4a0        33       A------  0        1:175263             5000        0     0.00
 33 active, 33 total 

onstat -p
IBM Informix Dynamic Server Version 10.00.FC3R1   -- On-Line -- Up 03:05:45 -- 6552904 Kbytes
Profile
dskreads   pagreads   bufreads   %cached dskwrits   pagwrits   bufwrits   %cached
6867750    13317298   3013993870 99.77   6930933    17871849   132392679  95.55  

isamtot    open       start      read       write      rewrite    delete     commit     rollbk
1053176307 10017111   56778266   637640734  53629808   21896728   989775     651        0

gp_read    gp_write   gp_rewrt   gp_del     gp_alloc   gp_free    gp_curs   
0          0          0          0          0          0          0         

ovlock     ovuserthread ovbuff     usercpu  syscpu   numckpts   flushes   
0          0            0          13912.01 5513.70  149        600       

bufwaits   lokwaits   lockreqs   deadlks    dltouts    ckpwaits   compress   seqscans  
1341716    0          1743028826 0          0          1270       117512     1924601   

ixda-RA    idx-RA     da-RA      RA-pgsused lchwaits  
1228716    195933     2912705    4320744    268099  

Результат жуткого запроса :) почему-то в одну строчку (могет из-за ISQL)
===== Logs Profile ============|max|max| 0 02:06:51|-------------------------------|--Onconfig Effective--|128|rootdbs|100000|----|32|33|33.0|10000|330000.0|----|MANUAL|/dev/null||70|80|-------------------------------|-- Physical_log --|0.98|3298471|52543|62.78|26002.92|414.21|-- Logical_logs --|0.15|6196|48.85|686|9.03|5.41|282|21.97|2.43|2.22|24|-- Transactions --|637|0|9.73|0|
...
Рейтинг: 0 / 0
Производительность сервера
    #35054176
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE
http://slil.ru/25339625

Так я же столько и не просил, я же всего то хотел onconfig и вырезку из лога для контроля КТ.

KrukovSE
onstat -l
IBM Informix Dynamic Server Version 10.00.FC3R1 -- On-Line -- Up 03:04:08 -- 6552904 Kbytes
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 0 64 4925623 78507 62.74
phybegin physize phypos phyused %used
1:182793 50000 4069 17984 35.97
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-3 0 16 6778 764 344 8.9 2.2
Subsystem numrecs Log Space used
OLDRSAM 6778 999264

Физжурналу значительно полегчало, хотя можно еще увеличить буфер (до 256)
А вот буфера логического журнала слабо нагружены - похоже, что у вас БД в unbuffered logging

KrukovSE
Результат жуткого запроса :) почему-то в одну строчку (могет из-за ISQL)
===== Logs Profile ============|max|max| 0 02:06:51|-------------------------------|--Onconfig Effective--|128|rootdbs|100000|----|32|33|33.0|10000|330000.0|----|MANUAL|/dev/null||70|80|-------------------------------|-- Physical_log --|0.98|3298471|52543|62.78|26002.92|414.21|-- Logical_logs --|0.15|6196|48.85|686|9.03|5.41|282|21.97|2.43|2.22|24|-- Transactions --|637|0|9.73|0|
Ой, что то страшное и непонятное :)
Должно было быть типа такого (красивого и понятного :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
______________      ===== Logs Profile ============
hostname            master-s2k
dbserver_name       ol_master
statistic_time               4   12 : 45 : 52 
______________      -------------------------------
__________          --Onconfig Effective--
physlog_buffer_kb    128 
physlog_dbs         rootdbs
physlog_size_kb      20000 
____                ----
llog_buffer_kb       64 
log_files            158 
_real_logs           158 
llog_sizes_kb        10000 
_real_size_logs_kb   1580000 
____                ----
log_backup_mode     MANUAL
ltapedev            NUL
logsmax
ltxhwm               46 
ltxehwm              54 
______________      -------------------------------
__________          -- Physical_log --
_phbuff_utiliz       0 . 54 
page_writes          4670 
writes               269 
__pages_per_write    17 . 36 
_pages_per_min       0 . 72 
_writes_per_min      0 . 04 
__________          -- Logical_logs --
_logbuff_utiliz      0 . 36 
records              95047 
_records_per_min     14 . 56 
page_writes          4119 
_records_per_page    23 . 08 
_pages_per_min       0 . 63 
writes               722 
_records_per_write   131 . 64 
__pages_per_write    5 . 70 
_writes_per_min      0 . 11 
last_log_freed       62966 
__________          -- Transactions --
iscommits            2002 
isrollbacks          2 
_records_per_tranx   47 . 43 
long_trans           0 
Тем не менее, кое-какие цифры я расшифровал.
И для меня очень неожиданное соотношение:
- очень большая нагрузка на физжурнал (около 7 раз в секунду сбрасывается практически полный буфер , т.е. около 130К*7)
- в то же время мизерная нагрузка на логический журнал (2 раза в минуту (!) по 2,5 страницы)
Мне непонятен такой дисбаланс. Может кто то объяснит, что это за странные транзакции такие ?
...
Рейтинг: 0 / 0
Производительность сервера
    #35057595
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis
Тем не менее, кое-какие цифры я расшифровал.
И для меня очень неожиданное соотношение:
- очень большая нагрузка на физжурнал (около 7 раз в секунду сбрасывается практически полный буфер , т.е. около 130К*7)
- в то же время мизерная нагрузка на логический журнал (2 раза в минуту (!) по 2,5 страницы)
Мне непонятен такой дисбаланс. Может кто то объяснит, что это за странные транзакции такие ?Либо база без транзакций, либо в апдейтятся таблицы с очень длинными строками (row), при этом само содержимое не меняется, поэтому дельта пишущаяся в лог. журнал равна нулю.
...
Рейтинг: 0 / 0
Производительность сервера
    #35057609
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEперезапустил Информикс, на данный момент чекпоинты выросли до 3-7сек.Что с кешем и батарейкой у DS4300? У вас какой вариант?

DS4300Базовая модель: 256 МБ (с одним контроллером) или 512 МБ (с двумя контроллерами), защищен батареей В варианте Turbo: в общей сложности 2 ГБ, защищен батареей
...
Рейтинг: 0 / 0
Производительность сервера
    #35057694
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис vasilis
Тем не менее, кое-какие цифры я расшифровал.
И для меня очень неожиданное соотношение:
- очень большая нагрузка на физжурнал (около 7 раз в секунду сбрасывается практически полный буфер , т.е. около 130К*7)
- в то же время мизерная нагрузка на логический журнал (2 раза в минуту (!) по 2,5 страницы)
Мне непонятен такой дисбаланс. Может кто то объяснит, что это за странные транзакции такие ?Либо база без транзакций, либо в апдейтятся таблицы с очень длинными строками (row), при этом само содержимое не меняется, поэтому дельта пишущаяся в лог. журнал равна нулю.
Логично. О базе без транзакций в данном случае (явно промышленное использование) я даже не подумал. Хотя, каких то 600 штук за 2 часа все таки комиттится.

Может посмотрим транзакционную нагрузку ? (если автор позволит выполнить еще один запросик :)
Вот только бы результат получить уже в нормальном виде :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
-------------------------------------------------
--  Weight of transaction (System profile)
--  (whole instance)
--  0.03 - условный коэффициент приведения операций в памяти и на диске 
--
-- V.Shulzhenko DBA_Tools 
-- Last modify: 2007-04-05
-------------------------------------------------
set isolation to dirty read;
select  
   '===== Weight of transaction ====' ______________
  ,DBINFO('dbhostname') hostname 
  ,(select cf_effective from sysconfig where cf_name='DBSERVERNAME')    dbserver_name    
  ,current year to second - 
    EXTEND(dbinfo('utc_to_datetime',sh_pfclrtime),year to second)      statistic_time
  ,'-------------------------------' ______________
  ,'-- All-Transactions --' __________
  ,(select value from sysprofile where name='iscommits')                commits
  ,round(((select value from sysprofile where name='iscommits')+ 
        (select value from sysprofile where name='isrollbacks'))/
        (sh_curtime-sh_pfclrtime), 2 )                                    __trans_per_sec
  ,round(((select value from sysprofile where name='iscommits')+ 
        (select value from sysprofile where name='isrollbacks'))/
        (sh_curtime-sh_pfclrtime)* 60 , 1 )                                 __trans_per_min
  ,round((sh_curtime-sh_pfclrtime)/
         ((select value from sysprofile where name='iscommits')+ 
          (select value from sysprofile where name='isrollbacks')
         ), 2 )                                                           __aver_sec_trans
  ,(select value from sysprofile where name='isrollbacks')              rollbacks
  ,round((select value from sysprofile where name='llgrecs')/
        ((select value from sysprofile where name='iscommits')
        +(select value from sysprofile where name='isrollbacks')), 1 )    _logrecords_per_t
  ,sh_longtx                                                            long_transact

  ,'--Read-Write-per-Transaction--' __________
  ,round((select value from sysprofile where name='dskreads')/   
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _disk_reads_per_t
  ,round((select value from sysprofile where name='pagreads')/
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _page_reads_per_t
  ,round((select value from sysprofile where name='bufreads')/
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _buff_reads_per_t

  ,round((select value from sysprofile where name='pagreads')/
        (select value from sysprofile where name='dskreads'), 1 )         _pages_per_read
  ,round((select value from sysprofile where name='pagreads')/
        (sh_curtime-sh_pfclrtime)* 60 , 2 )                                 _page_reads_pmin
  ,round((select value from sysprofile where name='bufreads')/
        (sh_curtime-sh_pfclrtime)* 60 , 2 )                                 _buf_reads_pmin

        ,'--' __________
  ,round((select value from sysprofile where name='dskwrites')/   
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _disk_writ_per_t
  ,round((select value from sysprofile where name='pagwrites')/
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _page_writ_per_t
  ,round((select value from sysprofile where name='bufwrites')/
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _buf_writes_per_t
  
  ,round((select value from sysprofile where name='pagwrites')/
        (select value from sysprofile where name='dskwrites'), 1 )        _pages_per_writes
  ,round((select value from sysprofile where name='pagwrites')/
         (sh_curtime-sh_pfclrtime)* 60 , 2 )                                _page_writes_pmin

  ,round((select value from sysprofile where name='bufwrites')/
         (sh_curtime-sh_pfclrtime)* 60 , 2 )                                _buf_writes_pmin
        ,'-----' __________
  ,round((select value from sysprofile where name='lockreqs')/
         ((select value from sysprofile where name='iscommits')+ 
          (select value from sysprofile where name='isrollbacks')
        ))                                                      _lockreq_per_trans
 ,round((select value from sysprofile where name='totalsorts')/
        ((select value from sysprofile where name='iscommits')+ 
         (select value from sysprofile where name='isrollbacks')
        ), 2 )                                                    _sorts_per_trans

  ,'--Weight--' __________
-- Условный объем (в попугаях) операций чтения на одну транзакцию
  ,round(((select value from sysprofile where name='pagreads')+
          (select value from sysprofile where name='bufreads')* 0 . 03 )/
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _Weight_reads_ptr
-- Условный объем (в попугаях) операций записи на одну транзакцию
  ,round(((select value from sysprofile where name='pagwrites')+
          (select value from sysprofile where name='bufwrites')* 0 . 03 )/
        ((select value from sysprofile where name='iscommits')+
        (select value from sysprofile where name='isrollbacks')), 1 )     _Weight_writes_ptr
-- Условный объем (в попугаях) всех операций чтения-записи на одну транзакцию
  ,round(((select value from sysprofile where name='pagreads')+
          (select value from sysprofile where name='pagwrites')+
          (select value from sysprofile where name='bufreads')* 0 . 03  +
          (select value from sysprofile where name='bufwrites')* 0 . 03 
         )/
        ((select value from sysprofile where name='iscommits')+
         (select value from sysprofile where name='isrollbacks')), 1 )    __Weight_per_trans
-- Условный объем (в попугаях) операций чтения-записи за секунду
  ,round(((select value from sysprofile where name='pagreads')+
          (select value from sysprofile where name='pagwrites')+
          (select value from sysprofile where name='bufreads')* 0 . 03  +
          (select value from sysprofile where name='bufwrites')* 0 . 03 
         )/
         (sh_curtime-sh_pfclrtime), 2 )                                   __Weight_per_sec
  ,'-------------------------------' ______________
from sysshmvals;
...
Рейтинг: 0 / 0
Производительность сервера
    #35059216
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кэш включен, батарейки только поменяли.
DS4300 TURBO.

Результат запроса:
______________ ===== Weight of transaction ====
hostname max
dbserver_name max
statistic_time 3 20:45:57
______________ -------------------------------
__________ -- All-Transactions --
commits 1503
__trans_per_sec 0.00
__trans_per_min 0.3
__aver_sec_trans 222.19
rollbacks 0
_logrecords_per_t 11.9
long_transact 0
__________ --Read-Write-per-Transaction--
_disk_reads_per_t 21181.9
_page_reads_per_t 53639.0
_buff_reads_per_t 16984776.9
_pages_per_read 2.5
_page_reads_pmin 14484.40
_buf_reads_pmin 4586480.24
__________ --
_disk_writ_per_t 93715.8
_page_writ_per_t 203150.5
_buf_writes_per_t 1235175.6
_pages_per_writes 2.2
_page_writes_pmin 54857.70
_buf_writes_pmin 333540.34
__________ -----
_lockreq_per_trans 7081839
_sorts_per_trans 66.01
__________ --Weight--
_weight_reads_ptr 563182.3
_weight_writes_ptr 240205.8
__weight_per_trans 803388.1
__weight_per_sec 3615.71
______________ -------------------------------
...
Рейтинг: 0 / 0
Производительность сервера
    #35068993
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за помощь, за 2 дня работы жалоб от пользователей нет!

В некоторых случаях, например формирование отчетов раз в 6 быстрее.
А запросы с которых и началась разборка, вместо 40 сек - 5сек

Так что весьма признателен :)

Но как всегда, хочется лучше...
на данный момент CPU загружены на 40-50% и памяти еще 5г свободно.

onstat -g mgm
IBM Informix Dynamic Server Version 10.00.FC3R1 -- On-Line -- Up 1 days 23:39:30 -- 4935500 Kbytes
Memory Grant Manager (MGM)
--------------------------
MAX_PDQPRIORITY: 100
DS_MAX_QUERIES: 14
DS_MAX_SCANS: 1048576
DS_NONPDQ_QUERY_MEM: 128 KB
DS_TOTAL_MEMORY: 1792 KB

Queries: Active Ready Maximum
0 0 14
Memory: Total Free Quantum
(KB) 1792 1792 128
Scans: Total Free Quantum
1048576 1048576 1

Load Control: (Memory) (Scans) (Priority) (Max Queries) (Reinit)
Gate 1 Gate 2 Gate 3 Gate 4 Gate 5
(Queue Length) 0 0 0 0 0

Active Queries: None

Ready Queries: None

Free Resource Average # Minimum #
-------------- --------------- ---------
Memory 0.0 +- 0.0 224
Scans 0.0 +- 0.0 1048576

Queries Average # Maximum # Total #
-------------- --------------- --------- -------
Active 0.0 +- 0.0 0 0
Ready 0.0 +- 0.0 0 0
Resource/Lock Cycle Prevention count: 0

То есть параллельные запросы отсутствуют? Это прописывается в самих запросах или
можно принудительно попробовать?
И куда можно еще оперативку использовать?
...
Рейтинг: 0 / 0
Производительность сервера
    #35069486
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Параллельные запросы не будут использоваться если не выполняется ряд условий, в частности фрагментация таблицы участвующей в запросе, установка переменной окружения для программы PDQPRIORITY не в 0, или выполнение в сессии оператора "set pdqpriority значение".

В случае использования PDQ вы практически не используете имеющуюся память поскольку DS_TOTAL_MEMORY: 1792 KB это очень мало! Сделайте для начала DS_TOTAL_MEMORY = 25 % от объема SHMVIRTSIZE. Это можно сделать без перезагрузки информикса например:

onmode -M 128000 (делает общий размер памяти выделяемый под PDQ 128000 Кб)

Теперь для не PDQ запросов. Что показывает на вашей системе onstat -g env|grep PDQ ? если при старте информикса переменная PDQPRIORITY была установлена в 0 то вполне можете воспользоваться сортировками в памяти, сделав для начала DS_NONPDQ_QUERY_MEM = 512 (ее также можно в онлайне переустановить).
...
Рейтинг: 0 / 0
Производительность сервера
    #35069648
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE
на данный момент CPU загружены на 40-50% и памяти еще 5г свободно.

........
И куда можно еще оперативку использовать?



Не торопитесь сильно использовать.

Эта оперативка очень пригодится здесь:

Журавлев Денискак мне кажется есть еще одна маленькая проблема -- двойная буферизация
ls -l /dev/sdb3
b rw-rw----
блочное устройство
Код: plaintext
1.
2.
3.
Segment Summary:
id       key        addr             size             ovhd     class blkused  blkfree 
589824   1381386241 44000000          2779570176        504632   R*    678602   4       
Код: plaintext
1.
2.
free
             total       used       free     shared    buffers     cached
Mem:      15890596    4036684   11853912          0     210472     3305468 

Т.е. мне кажется что все читает и пишет информикс дублируется в кэш линуса. И как это лечить я догадываюсь но не уверен, может гуру подскажут.

Как лечить я описывал на первой странице.
Когда полечите тогда можете использовать, иначе недостаток памяти для кеша ФС может очень сильно повысить syscpu или хуже того система начнет лезть в своп.
...
Рейтинг: 0 / 0
Производительность сервера
    #35070408
KrukovSE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, попробую разобраться сначала с блочным устройством
Спасибо.
...
Рейтинг: 0 / 0
Производительность сервера
    #35080509
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSE(увеличил buffers до 2 000 000 и SHMVIRTSIZE вчера)
некоторые отчеты выпускавшиеся до 30мин стали выполняться за 5-6 мин.
...
перезапустил Информикс, на данный момент чекпоинты выросли до 3-7сек.
KrukovSEКэш включен, батарейки только поменяли.
DS4300 TURBO.Ну таки и сколько кеш на запись?

Предположим он равен гигабайту, сделаем так чтобы во время чекпоинта на диск скидывалось приблизительно 750мб
0.75/4*100%=18,75%
т.е. выставьте
BUFFERPOOL size=2K,buffers=2000000,lrus=128, lru_min_dirty=18.75,lru_max_dirty=25
и чекпоинты снизятся до 0 сек.
...
Рейтинг: 0 / 0
Производительность сервера
    #35080529
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndronВ случае использования PDQ вы практически не используете имеющуюся память поскольку DS_TOTAL_MEMORY: 1792 KB это очень мало! Сделайте для начала DS_TOTAL_MEMORY = 25 % от объема SHMVIRTSIZE. Это можно сделать без перезагрузки информикса например:
onmode -M 128000 (делает общий размер памяти выделяемый под PDQ 128000 Кб)Он не пользуется pdq у него MAX, это хреновина типа Baan там pdq разработчики никогда использовать не будут.

Andronдля начала DS_NONPDQ_QUERY_MEM = 512 (ее также можно в онлайне переустановить).это хорошая мысль:
onmode -wm DS_NONPDQ_QUERY_MEM=512
...
Рейтинг: 0 / 0
Производительность сервера
    #35080548
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrukovSEОт пользователей пока тишина..... привыкли видать к тормозам :)
свежая статистика:

Код: plaintext
1.
2.
3.
onstat -a
http://slil.ru/25339625

уже удалили :(, не успел посмотреть.
...
Рейтинг: 0 / 0
67 сообщений из 67, показаны все 3 страниц
Форумы / Informix [игнор отключен] [закрыт для гостей] / Производительность сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]