Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Jul 30, 2024

Conversation

shirou
Copy link
Owner

@shirou shirou commented Jul 21, 2024

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
45 checks passed
@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://github.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://github.com/shirou/gopsutil/releases/tag/v4.24.7)

[Compare
Source](https://github.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://github.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://github.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://github.com/coderZoe) in
[https://github.com/shirou/gopsutil/pull/1670](https://github.com/shirou/gopsutil/pull/1670)

##### mem

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

##### Other Changes

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

#### New Contributors

- [@&#8203;coderZoe](https://github.com/coderZoe) made their first
contribution in
[https://github.com/shirou/gopsutil/pull/1670](https://github.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 <[email protected]>
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://github.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://github.com/shirou/gopsutil/releases/tag/v4.24.7)

[Compare
Source](https://github.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://github.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://github.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://github.com/coderZoe) in
[https://github.com/shirou/gopsutil/pull/1670](https://github.com/shirou/gopsutil/pull/1670)

##### mem

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

##### Other Changes

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

#### New Contributors

- [@&#8203;coderZoe](https://github.com/coderZoe) made their first
contribution in
[https://github.com/shirou/gopsutil/pull/1670](https://github.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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

windows's swap mem wrong
1 participant