|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Есть 2 железячных сервера с зонами на каждом. sun4u SPARC Enterprise M5000 Server sun4v SPARC T3-1B на обоих solaris 11.3. В зонах установлен оракл 12.2.0.1. БД везде используют память в osm (хотя походу это неважно). Но на первом сервере при старте экземпляра в свопе ничего не резервируется: Код: plaintext 1. 2. 3.
а на втором очень даже: Код: plaintext 1. 2.
Читал, что есть какие-то заморочки с NUMA памятью на суперкластере, но у меня t3, а там t4, t5... Но на всякий проверил настройки, на обоих серверах: _enable_NUMA_optimization Enable NUMA specific optimizations FALSE FALSE Отчего такая разница в работе со свопом? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 03:38 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
ism\dism? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 12:50 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
я ж написал: и там и там используется osm. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 04:25 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Ты проверил? pmap -xs `pgrep -f smon` | grep ism ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2019, 05:00 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, Ну конечно же проверил: Тут просто 4 инстанса. и все 4 при старте по чуть-чуть отжирают из свопа и все 4 используют osm: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
А вот это типичная картина на большинстве других серверов - своп не резервируется при старте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
На том где резервируется (ds-d2) я отключал использование osm. Но при dism он так же лочил своп. мысль появилась - на ds-d2 SGA мелкие и большая часть памяти выделяется 8к страницами, на других же серверах 4M и 256М. возможно алгоритм резервирует место в своп для мелких страниц и не делает этого для больших. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 04:49 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
При dism он и должен лочить своп Есть еще просто System V Shared Memory ([ shmid=...]), она тоже своп резервирует В принципе можно поискать и так (нет флажка R) pmap -xs `pgrep -f smon` | grep shmid= | grep -v R Таких тоже полно (и 8k, и 64k, и 4M) Мож и найдешь большие (а ты уверен, что это именно Oracle резервирует?) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 06:42 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
х.з., а в /tmp точно ничего нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2019, 23:15 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров а ты уверен, что это именно Oracle резервирует?) ну я ж df -h смотрю сразу перед стартом инстанса и сразу после. авторх.з., а в /tmp точно ничего нет? см. выше авторПри dism он и должен лочить своп чет мне покалось ты неправ. глянул: Код: 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.
"- 256M" значит что он пытался выделить и у него не получилось? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2019, 07:09 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Ты не df смотри, а swap -s DISM (в отличие от ISM и OSM) обязательно резервирует аналогичный размер в swap. Это совсем не означает, что он занят и виден через df Вот меня смутило, что у тебя /tmp и /system/volatile показывают одинаковый (с точностью до погрешности) занятый объем Т.е. это не файлик в /tmp, например Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2019, 09:33 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
х.з. "- 256M" значит что он пытался выделить и у него не получилось? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2019, 09:35 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
А покажите зонные конфиги для обоих зон в части capped-memory. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2019, 14:27 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Привет А не подскажешь, как такое происходит? Вячеслав Любомудров /tmp и /system/volatile показывают одинаковый (с точностью до погрешности) занятый объем ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2019, 14:34 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Летсми спик фром май харт ин инглиш! Код: 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.
ФС типа tmpfs создаётся в момент монтирования и уничтожается - при размонтировании. Иначе говоря, /tmp и /system/volatile - это разные ФС , использующие один бэкэнд (swap). Но в зоне дела обстоят немного по-другому при наличии capped-memory по swap - в таком случае аллокации и резервации в swap будут учитываться от одного rctl, общего для всех ФС типа tmpfs в зоне. Проверить легко, добавляя/удаляя swap в capped-memory для зоны (применяется на лету через zoneadm apply). А вот почему в зоне с таким rctl (по swap) в swap видны якобы аллокации от ISM/OSM-сегментов - я не знаю. Но это факт. Если убрать этот rclt на лету, то сразу всё встаёт на свои места. Баг какой-то, скорее всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2019, 00:24 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров х.з. "- 256M" значит что он пытался выделить и у него не получилось? ) я подозревал что 256М это размер страницы. вопрос был про "-" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2019, 12:20 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Спасибо, Алексей(?) Похоже дело именно в зонах Я как-то упустил это дело (У меня есть такой экземпляр, но не в моей зоне ответственности) Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2019, 16:47 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
х.з. Вячеслав Любомудров пропущено... Это размер страницы я подозревал что 256М это размер страницы. вопрос был про "-" Про один конкретный "-" или про каждый в выводе? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 02:09 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
SuperCluster - Why is oradism (ora_dism*) started on Solaris? (Doc ID 1599721.1) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 02:11 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
DВА, это потому что в суперкластере нельзя своп по-человечески (объёмом, равным RAM) сделать. Что касается первоначального вопроса - я покурил исходник (ниже выдержки из кода Illumos, в Solaris всё то же самое), и пришёл к выводу, что в swap-capped зоне оно и должно отображаться так, как отображается. Дело в том, что при наличии rctl на swap в коде функции statvfs(), специфичной для TMPFS, выполняется совсем другой код, чем при отсутствии такого rctl: https://github.com/illumos/illumos-gate/blob/30df210350904179c6f4c809c371bbb1319e3b6c/usr/src/uts/common/fs/tmpfs/tmp_vfsops.c#L621 Код: 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.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Иначе говоря, allocated в выводе 'swap -s' - это не "allocated" на самом деле, а несвободная виртуальная память. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 01:37 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
..., и поэтому 'swap -s' показывает ISM/OSM-сегменты в allocated, и поэтому 'df' показывает ISM/OSM-сегменты в used для зон, у которых в capped-memory есть ограничение на swap (в реализации его отсутствие задаётся значением, равным UINT64_MAX). Dixi. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 01:48 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
х.з. Вячеслав Любомудров пропущено... Это размер страницы я подозревал что 256М это размер страницы. вопрос был про "-" Это значит, что физическая память под эти страницы не выделена, что к ним не обращались ещё. Норма для DISM. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 02:03 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Scott Tiger А покажите зонные конфиги для обоих зон в части capped-memory. на той машинке где osm резервировала своп было ограничение Код: plaintext 1.
убрал, перегрузил зону: теперь вот такая забавная штука: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
**** Есть еще странная штука которая мне непонятна. В зоне 3 инстанса с примерно одинаковыми настройками. Так вот при старте первого инстанса(вне зависимости от того какой конкретно, но всегда тот что стартую первым) всегда выделяется куча сегментов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и при этом в алертлоге первого инстанса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
хотя по факту в 130 строчках 8к и 64к страницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 02:28 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Scott Tiger х.з. пропущено... я подозревал что 256М это размер страницы. вопрос был про "-" Это значит, что физическая память под эти страницы не выделена, что к ним не обращались ещё. Норма для DISM. я почему спросил: где-то у себя видел в выводе для одного инстанса несколько строк с dism и все с "-", и там же ism, но уже с конкретным указанием страниц. Как будто пытался dism, потом плюнул выделил ism, но попытки выделения почему-то оставил в мониторинге. Примера к сожалению сейчас не нахожу ( ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 02:33 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
х.з., при отсутствии swap cap в зоне в выводе 'df' и 'swap -s' будет выводиться, по сути, статистика глобальной зоны. Поскольку swap в Solaris состоит из swap-устройств(разделы, zfs-тома и/или файлы) и свободной физической памяти, вполне нормально, что его общий размер может поменяться в случае активной потребности и недостатка в объёме swap-устройств. Экземпляр при запуске заказывает размер страниц, которые хочет использовать под OSM, но выделение запрошенным размером может быть невозможно из-за фрагментации физической памяти - возможно, в этом дело. Покажите полный вывод 'pmap -xasl' и фрагмент алертлога с параметрами экземпляра и сообщением о выделении страниц при запуске. У экземпляра fico_d1 SGA действительно 2 Гб? Наличие одновременно и DISM- и ISM-сегментов в одном экземпляре мне представляется странным. Ибо непонятно зачем. Ибо функционал DISM никак тривиально не реализуешь при помощи ISM. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 11:49 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
Scott Tiger Экземпляр при запуске заказывает размер страниц, которые хочет использовать под OSM, но выделение запрошенным размером может быть невозможно из-за фрагментации физической памяти - возможно, в этом дело. Покажите полный вывод 'pmap -xasl' и фрагмент алертлога с параметрами экземпляра и сообщением о выделении страниц при запуске. У экземпляра fico_d1 SGA действительно 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. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248.
Код: 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.
Scott Tiger Наличие одновременно и DISM- и ISM-сегментов в одном экземпляре мне представляется странным. Ибо непонятно зачем. Ибо функционал DISM никак тривиально не реализуешь при помощи ISM. повторюсь. не наличие, а скорее неудачные попытки выделить dism. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2019, 06:16 |
|
oracle on solaris and swap
|
|||
---|---|---|---|
#18+
х.з., хз. Наверное, предиктор виртуальной памяти как-то не так как надо работает. Покажите vm20.out от запуска guds перед стартом первого экземпляра, после старта первого экземпляра и после старта второго, т.е., статистику vm2.0 в трёх состояниях - на спокойной пустой системе, на системе, которую встряхнул запуск первого экземпляра (но ему выделилилсь маленькие страницы) и после запуска во встряхнутой системе второго экземпляра (которому пришли большие страницы. Не уходит ли проблема, если первый экземпляр после запуска сразу остановить и запустить его заново? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2020, 22:02 |
|
|
start [/forum/topic.php?fid=52&msg=39908261&tid=1881691]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 177ms |
0 / 0 |