Skip to content

[windows][mem]: change to use Performance Counter on SwapMemory. - #1677

Merged
shirou merged 1 commit into
masterfrom
feat/win_mem_use_performance_counter_on_swap_memory
Jul 30, 2024
Merged

[windows][mem]: change to use Performance Counter on SwapMemory.#1677
shirou merged 1 commit into
masterfrom
feat/win_mem_use_performance_counter_on_swap_memory

Conversation

@shirou

@shirou shirou commented Jul 21, 2024

Copy link
Copy Markdown
Owner

Fixes: #1511

SwapMemory on windows was incorrect. This PR change SwapMemory to adjust psutil implementation. It is a method of calculating the actual value by using the Paging File(_Total)% Usage from the Performance Counter to determine the value.

Note: This PR will significantly change the value of SwapMemory on windows.

  • psutil
PS gopsutil\mem> python3 -c "import psutil; print(psutil.swap_memory())"
sswap(total=15569256448, used=119250944, free=15450005504, percent=0.8, sin=0, sout=0)
  • Before
PS gopsutil\mem> go test -run TestSwapMemory -v
=== RUN   TestSwapMemory
    mem_test.go:81: {"total":32110739456,"used":17000914944,"free":15109824512,"usedPercent":52.944638560241316,"sin":0,"sout":0,"pgIn":0,"pgOut":0,"pgFault":0,"pgMajFault":0}
  • After
PS gopsutil\mem> go test -run TestSwapMemory -v
=== RUN   TestSwapMemory
    mem_test.go:81: {"total":15569256448,"used":119250944,"free":15450005504,"usedPercent":0.8,"sin":0,"sout":0,"pgIn":0,"pgOut":0,"pgFault":0,"pgMajFault":0}
@shirou
shirou merged commit 1915e93 into master Jul 30, 2024
@shirou
shirou deleted the feat/win_mem_use_performance_counter_on_swap_memory branch July 30, 2024 13:18
codeboten referenced this pull request in open-telemetry/opentelemetry-collector Aug 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/shirou/gopsutil/v4](https://togithub.com/shirou/gopsutil)
| `v4.24.6` -> `v4.24.7` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.6/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.6/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>shirou/gopsutil (github.com/shirou/gopsutil/v4)</summary>

###
[`v4.24.7`](https://togithub.com/shirou/gopsutil/releases/tag/v4.24.7)

[Compare
Source](https://togithub.com/shirou/gopsutil/compare/v4.24.6...v4.24.7)

<!-- Release notes generated using configuration in .github/release.yml
at v4.24.7 -->

#### **Important Notice Regarding Value Changes on mem.SwapMemory() on
Windows**

In change
[#&#8203;1677](https://togithub.com/shirou/gopsutil/issues/1677), the
values returned by `mem.SwapMemory()` on Windows have been significantly
revised. Previously, these values were calculated from the
[`PERFORMANCE_INFORMATION`](https://learn.microsoft.com/en-us/windows/win32/api/psapi/ns-psapi-performance_information)
structure of the
[`GetPerformanceInfo`](https://learn.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-getperformanceinfo)
win32 function, but this calculation was incorrect. Consequently, it has
been adjusted to align with the [psutil
implementation](https://togithub.com/giampaolo/psutil/blob/c034e6692cf736b5e87d14418a8153bb03f6cf42/psutil/\_pswindows.py#L250-L273).
As a result, the values returned by `mem.SwapMemory()` are expected to
differ greatly from previous values.

#### What's Changed

##### docker

- fix: docker_memory in centos\_7.5 & docker\_1.13.1 by
[@&#8203;coderZoe](https://togithub.com/coderZoe) in
[https://github.com/shirou/gopsutil/pull/1670](https://togithub.com/shirou/gopsutil/pull/1670)

##### mem

- \[windows]\[mem]: change to use Performance Counter on SwapMemory. by
[@&#8203;shirou](https://togithub.com/shirou) in
[https://github.com/shirou/gopsutil/pull/1677](https://togithub.com/shirou/gopsutil/pull/1677)

##### Other Changes

- fix: read temperature sensors darwin arm by
[@&#8203;Girbons](https://togithub.com/Girbons) in
[https://github.com/shirou/gopsutil/pull/1672](https://togithub.com/shirou/gopsutil/pull/1672)
- fix: remove macos11 and add ubuntu-24.04 on GitHub runner list. by
[@&#8203;shirou](https://togithub.com/shirou) in
[https://github.com/shirou/gopsutil/pull/1676](https://togithub.com/shirou/gopsutil/pull/1676)

#### New Contributors

- [@&#8203;coderZoe](https://togithub.com/coderZoe) made their first
contribution in
[https://github.com/shirou/gopsutil/pull/1670](https://togithub.com/shirou/gopsutil/pull/1670)

**Full Changelog**:
shirou/gopsutil@v4.24.6...v4.24.7

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
codeboten referenced this pull request in open-telemetry/opentelemetry-collector-contrib Aug 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/shirou/gopsutil/v4](https://togithub.com/shirou/gopsutil)
| `v4.24.6` -> `v4.24.7` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.6/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fshirou%2fgopsutil%2fv4/v4.24.6/v4.24.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>shirou/gopsutil (github.com/shirou/gopsutil/v4)</summary>

###
[`v4.24.7`](https://togithub.com/shirou/gopsutil/releases/tag/v4.24.7)

[Compare
Source](https://togithub.com/shirou/gopsutil/compare/v4.24.6...v4.24.7)

<!-- Release notes generated using configuration in .github/release.yml
at v4.24.7 -->

#### **Important Notice Regarding Value Changes on mem.SwapMemory() on
Windows**

In change
[#&#8203;1677](https://togithub.com/shirou/gopsutil/issues/1677), the
values returned by `mem.SwapMemory()` on Windows have been significantly
revised. Previously, these values were calculated from the
[`PERFORMANCE_INFORMATION`](https://learn.microsoft.com/en-us/windows/win32/api/psapi/ns-psapi-performance_information)
structure of the
[`GetPerformanceInfo`](https://learn.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-getperformanceinfo)
win32 function, but this calculation was incorrect. Consequently, it has
been adjusted to align with the [psutil
implementation](https://togithub.com/giampaolo/psutil/blob/c034e6692cf736b5e87d14418a8153bb03f6cf42/psutil/\_pswindows.py#L250-L273).
As a result, the values returned by `mem.SwapMemory()` are expected to
differ greatly from previous values.

#### What's Changed

##### docker

- fix: docker_memory in centos\_7.5 & docker\_1.13.1 by
[@&#8203;coderZoe](https://togithub.com/coderZoe) in
[https://github.com/shirou/gopsutil/pull/1670](https://togithub.com/shirou/gopsutil/pull/1670)

##### mem

- \[windows]\[mem]: change to use Performance Counter on SwapMemory. by
[@&#8203;shirou](https://togithub.com/shirou) in
[https://github.com/shirou/gopsutil/pull/1677](https://togithub.com/shirou/gopsutil/pull/1677)

##### Other Changes

- fix: read temperature sensors darwin arm by
[@&#8203;Girbons](https://togithub.com/Girbons) in
[https://github.com/shirou/gopsutil/pull/1672](https://togithub.com/shirou/gopsutil/pull/1672)
- fix: remove macos11 and add ubuntu-24.04 on GitHub runner list. by
[@&#8203;shirou](https://togithub.com/shirou) in
[https://github.com/shirou/gopsutil/pull/1676](https://togithub.com/shirou/gopsutil/pull/1676)

#### New Contributors

- [@&#8203;coderZoe](https://togithub.com/coderZoe) made their first
contribution in
[https://github.com/shirou/gopsutil/pull/1670](https://togithub.com/shirou/gopsutil/pull/1670)

**Full Changelog**:
shirou/gopsutil@v4.24.6...v4.24.7

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (UTC), Automerge - At any
time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xOC4xNyIsInVwZGF0ZWRJblZlciI6IjM4LjE4LjE3IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJyZW5vdmF0ZWJvdCJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

1 participant