Задать вопрос
  • Виртуализация установленной ОС?

    @amirul
    ntldr тоже с незапамятных времен поддерживает chain loader-ы. Никаких проблем с загрузкой других ОС у него никогда не было
  • Как максимизировать быстродействие Win 7?

    @amirul
    Мой комментарий означает, что «серебряной пули» в повышении производительности не бывает. Вопрос «как ускорить винду» сродни вопросу «как переписать программу, чтоб она стала быстрее».
    Процесс выглядит так

    Без измерений нельзя сделать выводов о том, что нужно подправить. А править все чохом без малейшего понимания происходящего может только навредить
  • Как максимизировать быстродействие Win 7?

    @amirul
    Не знаю насколько высоко Вы оцениваете знания полученные в институте, но в данном случае Вы были введены в заблуждение.
    Есть физическая память, есть диск. Страницы физической памяти могут быть либо «заняты» (относиться к рабочему набору) либо находиться в одном из списков «свободных» страниц: standby, modified, zero, free.

    Занятая страница может относиться либо к memory-mapped файлу (в том числе и кешу) либо к виртуальной памяти (в первом приближении можно считать memory-mapping-ом пейджфайла).

    Когда рабочий набор какого либо процесса (в том числе процесса System) непомерно разрастается (или системе резко требуется много свободной физической памяти), эти рабочие наборы сначала состариваются (aging) а потом самые старые страницы подрезаются (trimming). Страница забирается из рабочего набора и перемещается либо в standby либо в modified список. По таймеру либо когда список измененных страниц разрастается просыпается modified page writer, сбрасывает содержимое страниц на диск и перемещает их из modified списка в standby.

    При внимательном чтении можно заметить, что страница попадает из рабочего набора в standby список неизменной. Если позже системе потребуется прочитать то же место в том же файле (пусть даже и пейджфайле) — она просто подберет страницу из standby списка, соответственно вся свободная физическая память является кешем данных с диска.

    При еще более внимательном чтении можно заметить, что состариваются все физические страницы в рабочем наоборе — невзирая на регалии (вообще то там еще есть приоритеты, но это уже отдельный разговор). Соответственно, если приложение выделяет гигабайт памяти и ничего с ней не делает, я бы ОЧЕНЬ хотел, чтоб система выкинула всю эту память на диск и использовала физическую память для действительно полезных вещей. Это вполне естественное желание, учитывая, что гигабайт места на винчестере стоит 5-7 центов, а гигабайт места в памяти стоит 20-40 баксов.
  • Как максимизировать быстродействие Win 7?

    @amirul
    Да чего там гуглить. «Windows Internals» Solomon/Ionescu/Russinovich в зубы — там целых две главы (одна по кеш-менеджеру, одна по мемори-менеджеру). Если кратко, Balance Set Manager не делает различий между файловым кешем, пейджфайлами и memory-mapped файлами (если немного точнее, кеш и пейджфайл базируются на механизмах мемори меппинга) при анализе того, какие страницы следует подрезать (trim). Соответственно в памяти остаются наиболее «горячие» страницы и если к какой то странице из кучи не было обращений уже неделю — то стоит сбросить ее в пейджфайл и отдать эту страницу под кеширование какого нибудь более нужного файла.

    А если добавить сюда суперфетч, который ведет долгосрочную статистику использования файлов и префетчит их в standby list 7, то вопрос использования пейджфайла становится вообще нерелевантным.
  • Как максимизировать быстродействие Win 7?

    @amirul
    Вот Вы опять пытаетесь скрыть отсутствие знаний за ерничанием. А между тем ответ содержится в моем первом же комментарии: уменьшение количества обращений к свопу != уменьшение обращений к диску. Подумайте как это связано с кеш менеджером
  • Как максимизировать быстродействие Win 7?

    @amirul
    Хм, не помню такого, но вообще да, пни133 сотоварищи испытывали некоторые затруднения с проигрыванием mp3, ну так системные звуки в те времена были обычными wav/pcm.
  • Как максимизировать быстродействие Win 7?

    @amirul
    Эм, вообще то в среднем увеличиваешь. Но для того, чтобы это понять, нужно сначала понять как работает кеш-менеджер в винде.
  • Как максимизировать быстродействие Win 7?

    @amirul
    Блин, опять иксперты. Откуда вообще такое поверие, что нужно минимизировать использование свопфайла, а не использование диска?
  • Windows намертво подвисает на несколько секунд?

    @amirul
    Вспомнил одну деталь. Я ошибся в прошлом комментарии: xperf правильно обрабатывает события от прерываний. То есть он запоминает все входы и выходы в прерывания и никогда не записывает время, проведенное в прерывании на какой то процесс. Соответственно, если Вы видите кучу ISR до, кучу DPC после и ничего кроме ccsvchst в средине, это практически однозначно указывает на симантек. Если у Вас есть линцензия — можете обратиться в их саппорт. Но вообще MSE достаточно неплох: кроме того, что он неплохо показывает себя в тестах антивирусов, в MSFT знают как ПРАВИЛЬНО писать под винду и у меня нет вообще никаких нареканий к его работе (пользуюсь около года — еще с первых пререлизных версий).

    Ну и небольшой повод подумать

    Сносите, проверяйте, пишите саксесс стори на хабр :-)
  • Windows намертво подвисает на несколько секунд?

    @amirul
    О, не заметил:

    Так же я вижу, что в этот промежуток времени проц был занят процессом ccsvchst.exe (1960) (Похоже это процесс антивируса Norton Internet Security. По крайней мере этот файл принадлежит ему).

    Это еще ни о чем однозначно не говорит (прерывания и DPC исполняются в контексте того процесса, которому не повезло, вернее они исполняются вне любого контекста, просто все записи свидетельствуют, что в данный момент должен исполняться такой то поток такого то процесса), но наводит на размышления: например прерывание от устройства каким то образом перенаправляется в юзер мод (в этот самый процесс) и там ожидает обработки. Ясен пень, этот уровень прерываний замаскирован (а это может быть прерывание от диска, например и тогда никаких дисковых операций будет невозможно сделать пока юзермодный процесс не одуплится).
    Пробовали ли Вы отключить антивирус и посмотреть будет ли воспроизводиться глюк?
  • Windows намертво подвисает на несколько секунд?

    @amirul
    trace.etl создается в «merge» фазе (которая «xperf -d»). В ней в частности в лог засовывается информация о символах, так что отсутствие результата от прописывания srv*… вполне ожидаемо (symbol server есть, а вот собственно самой информации о том, какие же символы резолвить — нет). Но не все потеряно, Вы можете смержить etl уже после того, как он собран (но обязательно на той же машине):

    xperf -merge kernel.etl trace.etl

    После чего файл можно анализировать на любой другой (или на той же) машине.

    Никакой активности, если она до этого была — это в любом случае странно. Иногда стоит зайти в summary table. И посмотреть на странности попристальнее.

    100% процессорного времени, потраченного на обработку прерываний это тоже ОЧЕНЬ плохо. В summary table для этого графика можно увидеть какой именно обработчик вызывался (и сколько заняло исполнение). Есть довольно высокая вероятность, что это именно он привел к проблемам (причем проблемы могут быть как программные так и аппаратные, но в любом случае должно быть более менее понятно, какой компонент проблемный).

    «DPC CPU Usage» показывает 1.5 секундный всплеск до ~25%.
    Уточняющий вопрос: у вас машина четырехядерная (подозреваю, что если есть аппаратный RAID, то и проц как минимум i7)? Если да, то 25% — это как раз 100% одного ядра, что тоже весьма нехорошо.

    Кстати, profile interrupt — имеет один из самых высоких уровней, соответственно stack trace-ы могут показать чего нибудь очень интересное (не забудьте сделать zoom на проблемный участок). Я не думаю, что прерывания профайлера будут замаскированы (что случается при IRQL == HIGH_LEVEL, то есть практически не случается), но даже если так — такой результат тоже даст некоторое представление о происходящем.

    Собранный ETL содержит PII (personally identifiable information), но не содержит никаких паролей и прочего. Если захотите, запакуйте смерженый лог с каким нибудь сложным паролем, выложите на файлохостинг с возможностью удаления (скайдрайв, дропбокс, этц) и черкните мне в личку url и пароль. Я хоть никогда и не сталкивался с подобного рода проблемами (аутпост подвешивал только текущий поток при обращении к файлам), есть некоторый шанс, что я замечу в логе чего нибудь странное, чего не заметили Вы.
  • Windows намертво подвисает на несколько секунд?

    @amirul
    Если не сложно — отпишитесь о результатах
  • Отправить файл на почту через консоль Windows?

    @amirul
    У меня гуглаппдомена нет, так что проверить в чем подвох не могу. Думаю где нибудь в хелпе должно быть указаны параметры smtp для аппдомена
  • Отправить файл на почту через консоль Windows?

    @amirul
    Нет, CDO поставляется in-box начиная как минимум с XP (только что проверил на голой системе).
  • Отправить файл на почту через консоль Windows?

    @amirul
    Да ведь есть встроенные скриптовые языки. Зачем велосипедить?
    PowerShell имеет встроенный cmdlet (выше пример использования)
    Вот так это делается на Jscript:
    Copy Source | Copy HTML
    1. var msg = new ActiveXObject("CDO.Message");
    2. var fields = msg.Configuration.Fields;
    3.  
    4. var cdoSendUsingPort = 2;
    5. var cdoBasic = 1;
    6.  
    7. fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort;
    8. fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com";
    9. fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465;
    10. fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true;
    11. fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic;
    12. fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username";
    13. fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password";
    14. fields.Update();
    15.  
    16. msg.Subject = "CDO test";
    17. msg.From = "******@gmail.com";
    18. msg.To = "******@gmail.com";
    19. msg.TextBody = "CDO test body";
    20. msg.Send();


    Если озаботиться импортом typelib-ы (js придется заворачивать в wsf), то все схемы имеют удобные короткие имена (а также не придется вручную определять cdoSendUsingPort и cdoBasic)
  • Куда писать в реестр Windows общие данные при включенном UAC?

    @amirul
    Да вот прям на MSDN и почитать. Вместо Get/SetNamedSecurityInfo можно использовать Get/SetSecurityInfo на уже открытом объекте.
    Можно еще посмотреть как это делают другие. В частности хром. Вот как раз функция AddAccessToKernelObject — практически то, что надо. Можно выбросить обработку «WinSelfSid» (у Вас все равно скорее всего будет WinBuiltinUsersSid), заменить NO_INHERIT на INHERIT_ONLY_ACE (собственно ради наследования это все и затевается), в остальном — без изменений (ключи реестра являются «kernel object»-ами)
  • Отправить файл на почту через консоль Windows?

    @amirul
    465 это насколько я понимаю стандартный порт для SMTP с SSL + аутентификации
    Только что успешно послал себе почту следующим образом:
    PS C:\> send-mailmessage -from "******@gmail.com" -to "******@gmail.com" -subject «test» -smtpserver «smtp.gmail.com» -usessl -credential (get-credential)

    Вместо get-credential можно использовать new-object system.management.automation.pscredential(«user», convertto-securestring -a -f «password»)
  • Отправить файл на почту через консоль Windows?

    @amirul
    Это я так понимаю старая статья. Потому как в PS2 уже есть cmdlet Send-MailMessage
  • Бесплатные сервисы хранения информации

    @amirul
    Хм, отослалось вместо перевода строки:
    Storage. Store up to 25 gigabytes (GB) of photos and files. The SkyDrive storage meter shows how much storage space you've used.