Как убрать кэши, используемые ядром Linux

Используйте FlashWindowEx , чтобы специально мигать только значок на панели задач. Для обычного консольного окна получите дескриптор окна через GetConsoleWindow. Это может не работать для альтернативных консолей, таких как ConEmu, если только это не одна из функций API, которую они взламывают.

Например:

import ctypes
from ctypes import wintypes

kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
user32 = ctypes.WinDLL('user32', use_last_error=True)

FLASHW_STOP = 0
FLASHW_CAPTION = 0x00000001
FLASHW_TRAY = 0x00000002
FLASHW_ALL = 0x00000003
FLASHW_TIMER = 0x00000004
FLASHW_TIMERNOFG = 0x0000000C

class FLASHWINFO(ctypes.Structure):
    _fields_ = (('cbSize', wintypes.UINT),
                ('hwnd', wintypes.HWND),
                ('dwFlags', wintypes.DWORD),
                ('uCount', wintypes.UINT),
                ('dwTimeout', wintypes.DWORD))
    def __init__(self, hwnd, flags=FLASHW_TRAY, count=5, timeout_ms=0):
        self.cbSize = ctypes.sizeof(self)
        self.hwnd = hwnd
        self.dwFlags = flags
        self.uCount = count
        self.dwTimeout = timeout_ms

kernel32.GetConsoleWindow.restype = wintypes.HWND
user32.FlashWindowEx.argtypes = (ctypes.POINTER(FLASHWINFO),)

def flash_console_icon(count=5):
    hwnd = kernel32.GetConsoleWindow()
    if not hwnd:
        raise ctypes.WinError(ctypes.get_last_error())
    winfo = FLASHWINFO(hwnd, count=count)
    previous_state = user32.FlashWindowEx(ctypes.byref(winfo))
    return previous_state

28
задан Guss 26 April 2016 в 14:22
поделиться

3 ответа

Можно хотеть увеличиться vfs_cache_pressure а также набор swappiness кому: 0.

Выполнение, которое заставит ядро исправить кэш быстрее при предоставлении равных процессов или больше пользы при решении того, что разбито на страницы.

Можно только хотеть сделать это, если процессы, о которых Вы заботитесь, делают очень мало диска ввод-вывод.

Если бы сеть I/O связала процесс, то должен загрузить для обслуживания запросов, это - проблема, и действительное решение состоит в том, чтобы поместить его на менее конкурентоспособный сервер.

Со значением по умолчанию swappiness при установке ядро почти всегда собирается способствовать остающемуся связанному с FS кэшу в реальной памяти.

По сути, если Вы увеличиваете давление кэша, убедиться одинаково корректироваться swappiness.

17
ответ дан nyedidikeke 28 November 2019 в 03:18
поделиться

Содержание /proc/meminfo говорит Вам, для чего ядро использует RAM.

можно использовать /proc/sys/vm/vfs_cache_pressure, чтобы вынудить ядро исправить память, которая используется для связанных с файловой системой кэшей более лениво или нетерпеливо.

Примечание, которому Ваше приложение может только извлечь выгоду из настройки этого параметра, если это делает минимальный дисковый ввод-вывод.

16
ответ дан hillu 28 November 2019 в 03:18
поделиться

Вы могли бы найти ответ John Nilsson на мой Вопрос полезным для чистки кэша, чтобы протестировать, связано ли это с Вашей проблемой:

sync && echo 1 > /proc/sys/vm/drop_caches

Хотя я предполагаю, что единственная реальная разница 1 по сравнению с 3

15
ответ дан Community 28 November 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: